官方JSON参数化关联模块编写的补充
测试用例参数化
不同的地方在于声明变量时对应值只有一个,参数化是多个值,存放在list里面。
如果参数化里面的数据只有一个,对应的值只有一个,使用variables和parameters对应都可以。
parameters:
- user: ["test1", "test2", "test3", "test4"] # 参数化
variables:
psw: 123456
重点:
从 2.0.0 版本开始,HttpRunner 不再支持在测试用例文件中进行参数化配置;参数化的功能需要在 testsuite 中实现
在 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": {...}
}]
变量空间(context)作用域
在测试用例内部,HttpRunner 划分了两层变量空间作用域(context)。
config:作为整个测试用例的全局配置项,作用域为整个测试用例;
test:测试步骤的变量空间(context)会继承或覆盖 config 中定义的内容;
若某变量在 config 中定义了,在某 test 中没有定义,则该 test 会继承该变量
若某变量在 config 和某 test 中都定义了,则该 test 中使用自己定义的变量值
各个测试步骤(test)的变量空间相互独立,互不影响;
如需在多个测试步骤(test)中传递参数值,则需要使用 extract 关键字,并且只能从前往后传递
1、定义带有变量的接口测试用例(demo-quickstart-var.json)
"variables": [ {"device_sn": "${gen_random_string(15)}"}]
运行结果
2、定义测试套件(只有在测试套件才能对上面的接口测试用例进行参数化)
参数化运行结果
3、关联参数 & 引用 CSV 文件
在测试套件中进行参数管理 用 “字段-字段”