前言
实现参数化使用parameters 关键字,数据源有3种方式:
1.在yaml 文件中直接写测试数据源
2.测试数据源写到csv文件
3.自定义函数,函数返回列表形式数据
参数化说明
参数化分两种情况:
1.单个参数进行参数化:如账号不一样,但密码一样,这时把账号作为单个参数名
2.关联性参数化,指的是把多参数进行同时参数化,采用短横线(-)进行连接:
如不同账号对应不同密码:
config: name: 关联性参数化案例 parameters: username-password: - [ admin1, "123456" ] - [ admin1, "123456" ] - [ admin1, "123456" ] - [ admin1, "123456" ]
参数化时,有三种数据源,适合不同的场景:
数据源 | 场景 |
---|---|
YAML/JSON 文件中指定参数列表 | 最为简单,适合参例表比较少的场景。 |
通过内置的 parameterize(可简写为P)函数引用 CSV 文件 | 该种方式需要准备 CSV 数据文件,适合数据量比较大的情况 |
调用 debugtalk.py 中自定义的函数生成参数列表 | 该种方式最为灵活,可通过自定义 Python 函数实现任意场景的数据驱动机制,当需要动态生成参数列表时也需要选择该种方式 |
三种方式可根据实际项目需求进行灵活选择,同时支持多种方式的组合使用。
单个参数进行参数化
密码统一设置为123456,参数username账号数据,设置对应的值 ["admin1", "admin2", "admin3", "admin4"],定义单个参数用variables,定义参数化用parameters
config: name: 案例 parameters: username: [ admin1, admin2, admin3, admin4 ] teststeps: - name: post request: method: POST url: ${ENV(base_url)}/login json: username: ${username} password: "123456" validate: - eq: [status_code, 200] - eq: [headers."Content-Type", "application/json"]
运行:hrp run testcases\login_imos.yml --gen-html-report 生成4条case
关联性参数化
几组账号密码中,如果不同账号对应不同密码,这时候就得用关联性参数化了:
config: name: 关联性参数化案例 parameters: username-password: - [ admin1, "123456" ] - [ admin2, "123456" ] - [ admin3, "123456" ] - [ admin4, "123456" ] teststeps: - name: post request: method: POST url: ${ENV(base_url)}/login json: username: ${username} password: ${password} validate: - eq: [status_code, 200] - eq: [headers."Content-Type", "application/json"]
同时会生成四条case:
笛卡尔积组合
假如测试用例中定义了多个参数,那么测试用例在运行时会对参数进行笛卡尔积组合,覆盖所有参数组合情况。
账号有4种[admin1, admin2, admin3, admin4],
密码有4种 ["123456", "123456", "123456", "123456"]
用笛卡尔积组合的话,就是4*4=16种组合
config: name: 关联性参数化案例 parameters: username: [admin1, admin2, admin3, admin4] password: ["123456", "123456","123456","123456"] teststeps: - name: post request: method: POST url: ${ENV(base_url)}/login json: username: ${username} password: ${password} validate: - eq: [status_code, 200] - eq: [headers."Content-Type", "application/json"]
执行用例:hrp run testcases\login_imos.yml --gen-html-report 查看报告总有16个case生成:
标签:username,password,httprunner,parameters,09,admin1,参数,123456 From: https://www.cnblogs.com/quxue/p/18133618