测试用例(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 | 用于定义一个事务 |
标签:02,websocket,api,步骤,request,testcase,用例,测试用例,httprunner4 From: https://www.cnblogs.com/quxue/p/18115338