
测试用例格式
HttpRunner 的测试用例支持两种文件格式:YAML 和 JSON。
JSON 和 YAML 格式的测试用例完全等价,包含的信息内容也完全相同。
对于选择哪种格式取决于您的心情。
测试用例结构
 在 
在 HttpRunner 中,测试用例组织主要基于三个概念:
- 测试套(testsuite):对应一个文件夹,包含一个或者多个测试用例文件(YAML/JSON)
- 测试用例(testcase):对应一个YAML/JSON 文件,包含单个或多个测试步骤
- 测试步骤(teststep):对应YAML/JSON 文件中的一个test,描述单次接口测试的、接口请求、解析响应结果、校验结果等
对于单个 YAML/JSON 文件来说,数据存储结构为 list of dict 的形式,其中可能包含一个全局配置项(config)和若干个测试步骤(test)。
- config:作为整个测试用例的全局配置项
- test:对应单个测试步骤(teststep),测试用例存在顺序关系,运行时将从前往后依次运行各个测试步骤
对应的json格式如下:
[
{
"config": {...}
},
{
"test": {...}
},
{
"test": {...}
}
]
变量上下文
在测试用例内部,HttpRunner 划分了两种变量上下文类型(context)。
config:作为整个测试用例的全局配置项,作用域为整个测试用例;test:作用于测试步骤、会继承或覆盖 config 中定义的内容;即:test中的定义的变量比config中定义的变量优先级高。
各个测试步骤(test)的变量空间相互独立,互不影响;如需在多个测试步骤(test)中传递参数值,则需要使用 extract 关键字,并且只能从前往后传递。
config
样例:
config:
name: "demo testcase"
variables:
device_sn: "ABC"
username: ${ENV(USERNAME)}
password: ${ENV(PASSWORD)}
base_url: "https://getman.cn/mock"
setup_hooks:
- ${hook_print(setup)}
teardown_hooks:
- ${hook_print(teardown)}
test
样例:
-
name: demo step 1
api: api/demo_api.yml
variables:
user_agent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
device_sn: $device_sn
extract:
- token:
validate:
- eq: ["status_code", 200]
setup_hooks:
- ${hook_print(setup)}
teardown_hooks:
- ${hook_print(teardown)}
常用字段说明
extract
用于数据提取和传递。
支持多种提取方式:
响应结果为 JSON 结构,可采用.运算符的方式,例如headers.Content-Type、content.success;响应结果为 text/html 结构,可采用正则表达式的方式,例如blog-motto\">(.*)</h2>。
validate
用于断言。
支持两种格式:
{"comparator_name": [check_item, expect_value]}
{"check": check_item, "comparator": comparator_name, "expect": expect_value}hooks
钩子函数,在特定的地方进行特定的调用。
完
 
 
                     
            
        













 
                    

 
                 
                    