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 函数实现任意场景的数据驱动机制,当需要动态生成参数列表时也需要选择该种方式