当前位置: 首页 > news >正文

HttpRunner-7-用例分层-httprunner-7

何为用例分层?

在自动化测试领域,自动化测试用例的可维护性是极其重要的因素,直接关系到自动化测试能否持续有效地在项目中开展。

概括来说,测试用例分层机制的核心是将接口定义、测试步骤、测试用例、测试场景进行分离,单独进行描述和维护,从而尽可能地减少自动化测试用例的维护成本。

逻辑关系图如下所示:

图片摘自 httprunner 官方网站。

几个核心概念

  1. 测试用例(testcase)应该是完整且独立的,每条测试用例应该是都可以独立运行的
  2. 测试用例是测试步骤(teststep)的 有序 集合,每一个测试步骤对应一个 API 的请求描述
  3. 测试用例集(testsuite)是测试用例的 无序 集合,集合中的测试用例应该都是相互独立,不存在先后依赖关系的;如果确实存在先后依赖关系,那就需要在测试用例中完成依赖的处理

HttpRunner 的分层详解

第一层:接口定义

有了接口的定义描述后,我们编写测试场景时就可以直接引用接口定义了。

在测试步骤(teststep)中,可通过 api 字段引用接口定义,引用方式为对应 API 文件的路径,绝对路径或相对路径均可。推荐使用相对路径,路径基准为项目根目录,即 debugtalk.py 所在的目录路径。

为了更好地对接口描述进行管理,推荐使用独立的文件对接口描述进行存储,即每个文件对应一个接口描述。

接口定义描述的主要内容包括:name、variables、request、base_url、validate 等,形式如下:

name: get test
base_url: http://mock.cn
variables:expected_status_code: 200
request:url: /method: GET
validate:- eq: ["status_code", $expected_status_code]- eq: [content.headers.Host, "mock.cn"]

其中,namerequest 部分是必须的,request 中的描述形式与 requests.requestPythonrequests 库中的 request 方法) 完全相同。

另外,API 描述需要尽量保持完整,做到可以单独运行。如果在接口描述中存在变量引用的情况,可在 variables 中对参数进行定义。通过这种方式,可以很好地实现单个接口的调试。

第二层:测试用例中的测试步骤

我们可以在测试用的测试步骤中直接引用接口定义和测试用例。

引用接口定义使用 api 关键字,引用测试用例使用 testcase 关键字。

引用接口定义

- config:name: "test_1"variables:user_agent: 'chrome 56.8'device_sn: "ddd"os_platform: 'chrome'app_version: '56.8'base_url: "http://127.0.0.1:5000"verify: Falseoutput:- session_token- test:name: get token (setup)api: api/api_1.ymlvariables:user_agent: 'chrome 56.8'device_sn: $device_snos_platform: 'chrome'app_version: '56.8'extract:- session_token: content.tokenvalidate:- eq: ["status_code", 200]- len_eq: ["content.token", 16]- test:name: test_2api: api/api_2.ymlvariables:token: $session_token

若需要控制或改变接口定义中的参数值,可在测试步骤中指定 variables 参数,覆盖 API 中的 variables 实现。

同样地,在测试步骤中定义 validate 后,也会与 参数化后,parameters 中的变量将采用笛卡尔积组合形成参数列表,依次覆盖 variables 中的参数,驱动测试用例的运行。 中的 validate 合并覆盖。因此推荐的做法是,在 API 定义中的 validate 只描述最基本的校验项,例如 status_code,对于与业务逻辑相关的更多校验项,在测试步骤的 validate 中进行描述。

引用测试用例

即在用例中引用用例。

- config:name: "config_1"id: config_1base_url: "http://127.0.0.1:5000"variables:uid: 8774device_sn: "xxx"output:- session_token- test:name: test_1testcase: testcases/case_1.ymloutput:- session_token- test:name: test_2variables:token: $session_tokentestcase: testcases/xxx/case_2.yml

测试用例集

当测试用例数量比较多以后,为了方便管理和实现批量运行,通常需要使用测试用例集来对测试用例进行组织。

测试用例集(testsuite)是测试用例的 无序 集合,依赖关系在在测试用例中完成处理。

每个测试用例集文件中,第一层级存在两类字段:

  • config: 测试用例集的总体配置参数
  • testcases: 值为字典结构(无序),key 为测试用例的名称,value 为测试用例的内容;在引用测试用例时也可以指定 variables,实现对引用测试用例中 variables 的覆盖。

非参数化场景

config:name: config_suitevariables:device_sn: ${gen_random_string(15)}var_a: ${gen_random_string(5)}var_b: $var_abase_url: "http://127.0.0.1:5000"testcases:case_1:testcase: testcases/case_1.ymlvariables:uid: 1000var_c: ${gen_random_string(5)}var_d: $var_ccase_2:testcase: testcases/case_2.ymlvariables:uid: 1001var_c: ${gen_random_string(5)}var_d: $var_c

参数化场景

对于参数化场景,可通过 parameters 实现,描述形式如下所示

config:name: config_suitevariables:device_sn: ${gen_random_string(15)}base_url: "http://127.0.0.1:5000"testcases:case_1:testcase: testcases/case.ymlvariables:uid: 1000device_sn: xxxparameters:uid: [101, 102, 103]device_sn: [sn_1, sn_2]

参数化后,parameters 中的变量将采用笛卡尔积组合形成参数列表,依次覆盖 variables 中的参数,驱动测试用例的运行。

http://www.jsqmd.com/news/27592/

相关文章:

  • HttpRunner-6-环境变量-httprunner-6
  • HttpRunner-5-DebugTalk-httprunner-5
  • 制造业运营管理新突破:Tita 赋能下的精益生产与协同发展
  • 2025年10月上海装修公司对比榜:五强真实口碑与工期排名
  • 测试开发必看!JVM调优10大技巧,性能瓶颈瞬间搞定
  • Dify入门实战:5分钟搭建你的第一个AI测试用例生成器
  • .NET Core + Docker 部署:Serilog 日志配置与查看全攻略
  • 2025年10月国内环保工程设备厂家前5名推荐榜单
  • 测试同学要求我们产品写用例,然后你们照着测?
  • 光伏支架冲孔机生产厂家:探索高效制造解决方案
  • 2025年光伏支架冲孔机源头厂家推荐榜单:技术革新与市场格局深度解析
  • 2025年克拉玛依壁挂炉公司权威推荐榜单:燃气壁挂炉/万家乐壁挂炉/威能壁挂炉服务商精选
  • weblogic、thinkphp、shiro反序列化漏洞
  • PandaCoder 2.4.3 震撼发布!
  • 2025年油污泥脱水机制造企业权威推荐榜单:洗煤污泥脱水机/带式浓缩污泥脱水机/尾矿污泥脱水机源头厂家精选
  • 2025 年洗墙灯厂家最新推荐榜,技术实力与市场口碑深度解析,严选高品质户外照明品牌防尘洗墙灯/酒店洗墙灯/建筑洗墙灯公司推荐
  • 2025 年加药装置厂家最新推荐榜,技术实力与市场口碑深度解析,精选高适配性优质品牌加药装置/江苏加药装置公司推荐
  • 钢坝闸厂家:创新水工解决方案的领导者
  • 2025年衡水出租救护车公司权威推荐榜单:短途救护车出租/跨省救护车出租/私家救护车出租源头服务商精选
  • 2025 年叠螺机生产厂家最新推荐榜,聚焦企业技术实力与市场口碑深度解析食品厂污泥脱水叠螺机/畜牧养殖污泥处理叠螺机公司推荐
  • 9619
  • 2025年泉州下水疏通机公司权威推荐榜单:管道疏通机/下水道高压疏通机/高压疏通机源头公司精选
  • 2025年10月工业期皮带厂家前五强权威排行榜
  • 2025年10月教育资源好的学习机品牌推荐:销量榜评测报告
  • 《星球大战:克隆人战争》中的片头格言
  • 首页进来的天翼云广告
  • matlab byte 转 bit 函数编写
  • 2025年10月教育资源好的学习机品牌推荐:实力榜全面评测
  • 深入解析:嵌入式硬件——基于IMX6ULL的GPT(通用定时器)实现
  • 2025年10月31日最新权威最新公布工业皮带厂家推荐:素博(上海)工业皮带有限公司