一、httprunner如何实现数据驱动
3.X开始,使用parameters定义数据源。应用于测试用例层。
第一种:直接在脚本里面指定参数列表,最简单。适合于参数比较少的情况。
config:
name: 测试用例
parameters:
appid‐grant_type‐secret‐assert_str:
‐ ["wx74a8627810cfa308","client_credential","e40a02f9d79a8097df497e6aaf93ab80","access_token"]
‐ ["","client_credential","e40a02f9d79a8097df497e6aaf93ab80","errcode"]
‐ ["wx74a8627810cfa308","","e40a02f9d79a8097df497e6aaf93ab80","errmsg"]
teststeps:
‐ name: 获得token鉴权码API
api: api/get_token.yml
第二种:使用CSV文件,适合于参数比较大的情况。
config:
name: 测试用例
parameters:
appid‐grant_type‐secret‐assert_str: ${P(data/get_token_data.csv)}
teststeps:
‐ name: 获得token鉴权码API
api: api/get_token.yml
appid,grant_type,secret,assert_str
"wx74a8627810cfa308","client_credential","e40a02f9d79a8097df497e6aaf93ab80","access_token"
"","client_credential","e40a02f9d79a8097df497e6aaf93ab80","errcode"
"wx74a8627810cfa308","","e40a02f9d79a8097df497e6aaf93ab80","errmsg"
注意:
1.csv文件中第一行必须放参数名称,并且参数名称必须和测试用例里面的名称一致。
2.csv文件中第二行放数据,每一组数据占一行。
3.parameters指定的参数顺序可以不一致,个数也可以不一致。
第三种方式:使用函数生成数据,适用于数据变化大的情况。
# 生成数据
def get_token_data():
return [
{"appid":"wx74a8627810cfa308","grant_type":"client_credential","secret":"e40a02f9d79a8097df497e6aaf93ab80","assert_str":"access_token"},
{"appid": "", "grant_type": "client_credential", "secret": "e40a02f9d79a8097df497e6aaf93ab80","assert_str": "errcode"},
{"appid": "wx74a8627810cfa308", "grant_type": "", "secret": "e40a02f9d79a8097df497e6aaf93ab80","assert_str": "errmsg"}
]
config:
name: 测试用例
parameters:
appid‐grant_type‐secret‐assert_str: ${get_token_data()}
teststeps:
‐ name: 获得token鉴权码API
api: api/get_token.yml
二、httprunner文件上传
前提条件:需要安装如下两个包
pip install requests_toolbelt filetype
pip install “httprunner[upload]”
三、如何生成allure报告
第一步
1.官网下载allure文件:https://github.com/allure-framework/allure2/releases
2.下载之后解压到非中文的目录
3.把bin路径配置到系统变量path中:E:\allure-2.13.7\bin (注意分号不要是中文的)
第二步:
安装allure报告:pip install allure-pytest
验证:allure —version
注意:可能需要重启pycharm。
第三步:
1.在reports目录下生成temps目录,并且在temps目录下生产临时的json格式的临时报告。
os.system("hrun testsuites/test_suites.yml ‐‐alluredir=reports/temps ‐‐clean‐alluredir")
加上—clean-alluredir表示:每执行一次把原来的清除。
2.根据临时json报告生成allure报告
os.system("allure generate reports/temps ‐o reports/allures ‐‐clean")
四、接口自动化框架文件对应关系
一个接口对应一个yaml文件,一个yaml文件对应一个csv文件。
优点:相对来说比较成熟,唯一的,不需要写脚本。
缺点:规则太难了,小心翼翼,报错机制不完善。有些功能不齐全。