接口自动化工具之httprunner的实战应用(一)
一、什么是Httprunner
1.httprunner是一个面向http协议的通用测试框架 2.它的思想是只需要维护yaml/json/py文件就可以实现接口自动化测试,性能测试,线上监控,持续集成
二、httprunner的设计理念
1.充分复用开源项目,不追求重复的造轮子,而是将市面强大的轮子转成战车,降低框架的开发成本以及学习成本。 2.遵循约定大于临时配置的准则。(合同,考勤) 3.配置文件组织测试用例。
三、httprunner环境安装
1.安装httprunner ????pip install httprunner ????验证:hrun -V 2.5个关键命令 ????httprunner:主命令,用于所有功能 ????hrun:用于运行yaml/json/pytest测试用例。 ????hmake:用于将yaml/json测试用例转化成pytest文件。 ????har2case:用于将har文件转化成yaml/json/pytest测试用例。 ????locusts:用于性能测试
四、httprunner快速上手
1.使用抓包工具:fiddler、charles操作一遍抓包。导出har文件
2.通过har2case命令把har文件转化成yaml/json/pytest文件格式。 ????har2case get_token.har 生成pytest文件格式的测试用例 ????har2case get_token.har -2y 生成yaml格式的测试用例 ????har2case get_token.har -2j 生成json格式的测试用例
运行: hrun get_token.yml hrun get_token.json hrun get_token_test.py 发现运行完成之后py文件里面的断言自动的去掉了,说明不管是运行yml、json其实最终都会重新成py文件运行。
五、YAML测试用例结构分析
每一个测试用例都是一个list of dict(字典列表)结构,其中包括config【配置】和teststeps【步骤】 [{},{},{}]
cofig:配置
name:用例名称
variables:全局变量
verify:是否开启https验证
teststeps:步骤
name: /cgi-bin/token 步骤名称
request: 请求
headers: 请求头
Accept: '*/*'
Accept-Encoding: gzip, deflate, br
Cache-Control: no-cache
Connection: keep-alive
Host: api.weixin.qq.com
Postman-Token: 50f8bb1a-7826-49f8-835e-ec889063b7cc
User-Agent: PostmanRuntime/7.28.0
method: GET 请求方式
params: 请求参数
appid: wx74a8627810cfa308
grant_type: client_credential
secret: e40a02f9d79a8097df497e6aaf93ab80
url: https://api.weixin.qq.com/cgi-bin/token 请求路径
validate:断言
- eq:
- status_code
- 200
- eq:
- headers.Content-Type
- application/json; encoding=utf-8
六、接口关联
在request标签下(extract:标签需和resquest标签平级)加一个extract标签提取返回值,通过content或body提取。 extract: ????aaa: content.access_token params: ????access_token: $aaa
七、动态参数:通过debugtalk.py的热加载的方式实现。
第一步:创建一个debugtalk.py文件,然后再里面写一个函数。 第二步:在yaml文件中通过${函数名()}的方式调用。
八、环境变量
开发环境,测试环境,线上环境。预发布环境。 在config下加入: base_url: https://api.weixin.qq.com
九、全局变量和局部变量
config下的variables是全局变量 teststeps:下的variables是局部变量 有两种写法: 1.换行的键值对 2.{}的方式 ### 十、生成HTML格式的报告 hrun httprunnerdemo --html=httprunnerdemo/report.html
|