httprunner2.x--HttpRunner参数化:参数化数据驱动概述

HttpRunner参数化:参数化数据驱动概述

 转载:https://blog.csdn.net/weixin_42007999/article/details/105773548

在测试场景中,针对每项功能,经常要准备多种类型的测试数据,以满足测试的覆盖率和充分性。针对自动化测试而言,相当于一份测试脚本要考虑使用不同数据的运行情况。

 

如:注册页面针对输入用户名的测试,我们要考虑有效、无效、最大值、最小值等情况。在以下脚本中,只需要将 name 关键字的取值进行修改,赋值不同数据即可。但我们不可能为每个取值都单独编写这么一个测试用例文件,既费时又重复。

 

 
- test:
 
    name: TestStep
 
    request:
 
    url: http://......
 
    method: POST
 
    data:
 
        # 输入用户名,实际测试时需要选取不同用户名进行测试
 
        name: Jonah
 
    ............

  

 

针对以上问题,通用的解决办法是进行参数化数据处理(驱动)。在用例中将数据赋值为变量,再将测试数据单独存储(如数据库、表格或CSV文件中),用例执行时自动去文件读取测试数据。

 

 

在 HttpRunner 中提供了参数化数据驱动的能力。但是从 2.0.0 版本开始,HttpRunner 不再支持在测试用例文件中进行参数化配置,而是必须要在 testsuite 中实现。

 

关于参数化数据驱动的官方说明:https://docs.httprunner.org/prepare/parameters/

 

 

HttpRunner 在进行参数化处理时,参数类型分两类:

  • 单个独立参数:与其他参数没有关联,不需要组合使用。可以单独定义。
  • 多个具有关联性的参数:要同时考虑这些参数间的关联和组合关系。用短横线(-)方式进行连接。

 

 

在测试用例集合中实现参数化的过程:

  • 需要使用 parameters 关键字
  • 需要指定数据源(内置、csv文件、外置函数)
  • 如果定义了多个参数,运行时会对参数进行笛卡尔积组合,覆盖所有参数组合情况。

 

 

数据源支持三种方式,可根据实际项目需求进行灵活选择,同时支持多种方式的组合使用:

  • 在 YAML/JSON 文件中直接指定参数列表:该种方式最为简单易用,适合参数列表比较小的情况
  • 通过内置的 parameterize(可简写为P)函数引用 CSV 文件:该种方式需要准备 CSV 数据文件,适合数据量比较大的情况
  • 调用 debugtalk.py 中自定义的函数生成参数列表:该种方式最为灵活,可通过自定义 Python 函数实现任意场景的数据驱动机制,当需要动态生成参数列表时也需要选择该种方式

 

 

 

 

 

 
posted @ 2021-06-04 11:04  莫使娇躯空对月  阅读(134)  评论(0编辑  收藏  举报