httprunner4.x学习 - 02-用例结构
测试用例(TestCase)
一条测试用例(testcase)应该是为了测试某个特定的功能逻辑而精心设计的,并且至少包含如下几点:
- 明确的测试目的(achieve a particular software testing objective)
- 明确的输入(inputs)
- 明确的运行环境(execution conditions)
- 明确的测试步骤描述(testing procedure)
- 明确的预期结果(expected results)
对应地,HttpRunner 的测试用例描述方式进行如下设计:
- 测试用例应该是完整且独立的,每条测试用例应该是都可以独立运行的
- 在 HttpRunner 中,每个
YAML/JSON/pytest/go test文件对应一条测试用例 - HttpRunner 以
TestCase为核心,将任意测试场景抽象为有序步骤的集合
config配置
YAML/JSON 格式用例(testcase)结构延续了之前的config 和 teststeps 两个部分
config: name: "login_imos_case" variables: username: admin password: quxue2023 headers: User-Agent: ${get_user_agent()} verify: False export: [ "foo3" ]
config属性说明:
属性名称
|
是否必填 | 说明 |
name
|
是 | 测试用例名称 |
| variables | 否 | 指定测试用例的公共变量 |
| headers | 否 | 公共请求头部 |
| verify | 否 | https请求时,是否校验证书,默认True,忽略证书校验可以设置为False |
| export | 否 | 指定导出的测试用例会话变量,把变量暴露出来,设置为全局变量 |
| parameters | 否 | 参数化设置,对整个文件生效 |
除了上面的一些自动化会用到的参数,4.x 版本新增了一些关键字
| 属性名称 | 是否必填 | 作用 |
|---|---|---|
| websocket | 否 | WebSocket 断开重连的最大次数和间隔等 |
| think_time | 否 | 针对性能测试用,设置思考时间 |
| weight | 否 | 针对性能测试用到,分配给当前测试用例的虚拟用户权重优先级 |
| parameters_setting | 否 | 参数驱动的具体策略 |
| environs | 否 | 环境变量,如果未指定则会从 .env 文件导入 |
| path | 否 | 当前测试用例所在路径 |
测试步骤
测试步骤 teststep 属性
| 名称 | 说明 |
|---|---|
| name | 名称 |
| api | 引用接口的步骤类型 |
| testcase | 引用其他testcase的步骤类型 |
| request | 发起 http请求的步骤类型 |
每个步骤可以添加以下属性
| 名称 | 说明 | 适用范围 |
|---|---|---|
| setup_hooks | 前置函数 | request/api/websocket |
| extract | 参数提取 | request/api/websocket |
| teardown_hooks | 后置函数 | request/api/websocket |
| validate | 结果校验 | request/api/websocket |
| export | 导出变量 | testcase |
| variables | 局部变量 | 通用 |
4.x 版本新增其它关键字
| 名称 | 说明 |
|---|---|
| think_time | 思考时间 |
| rendezvous | 集合点 |
| websocket | 用于发起 WebSocket 请求的步骤类型 |
| transaction | 用于定义一个事务 |

浙公网安备 33010602011771号