快乐学习
前程无忧、中华英才非你莫属!

HttpRunner学习记录----进阶参数化

官方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 文件

在测试套件中进行参数管理 用 “字段-字段”

4、 通过csv 文件进行参数关联

打赏

未经允许不得转载:同乐学堂 » HttpRunner学习记录----进阶参数化

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

特别的技术,给特别的你!

联系QQ:1071235258QQ群:367203382
error: Sorry,暂时内容不可复制!