一、在YAML/JSON中直接指定参数列表
- config:
name: 验证百度搜索功能
base_url: https://www.baidu.com
# export:
# - title
- test:
name: 步骤一:调用搜索接口
request:
url: /s
method: GET
headers:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36
Content-Type: text/html;charset=utf-8
Accept-Encoding: gzip, deflate, br
params:
wd: ${search_word}
# extract:
# title: <title>(.+?)</title>
config:
name: 测试套件
testcases:
- name: 用例一:验证百度搜索请求是否正确
testcase: testcases/20220412/baidu_search.yaml
variables:
search_word: 我是丸子
也可如下图使用parameters,使用此方法可让用例随着参数的数量进行循环执行
二、调用debugtalk.py中自定义的函数生成参数列表
1、构建随机字符串作为参数化,先给定一个字符串,如123456789abcdef ,从该字符串中挑10个字符组成随机字符串
2、但是传值的时候需要考虑传多个参数的情况,改造如下
3、在suite中引用debugtalk.py方法
三、通过内置的函数引用CSV文件
1、创建data文件夹存放CSV文件
2、通过debugtalk.py调用faker库
四、pymysql库实现参数化
1、 游标访问数据库,默认为元组类型
2、 编写debugtalk.py函数,将读取的双元组结果转成列表
3、suite引用时,直接引用函数即可$get_data_by_mysql()
五、参数化实现及用例重复执行
【注】从httprunner2.0开始,参数化必须在testsuites层进行实现实现参数化的关键字为variables、parameters