HttpRunner简介
HttpRunner简介
HttpRunner是一款面向HTTP协议的通用开源测试框架
支持三种格式的用例,YAML/JSON/Pytest代码
可实现自动化测试、持续集成等多种测试需求
可支持的接口协议:HTTP(S)
不支持的接口协议:websocker、dubbo等
主流接口自动化工具框架
工具
|
学习成本
|
录制
|
持续集成
|
测试报告
|
用例管理
|
性能测试
|
扩展难度
|
最低要求
|
Java+testng+Maven
|
高
|
否
|
是
|
是
|
难
|
是
|
中
|
Java
|
Requests+Python
|
低
|
否
|
是
|
是
|
难
|
是
|
中
|
Python
|
RobotFramework
|
低
|
否
|
是
|
是
|
易
|
否
|
高
|
工具组件
|
HttpRunner
|
低
|
是
|
是
|
是
|
易
|
是
|
低
|
Python
|
HttpRunner3的优势
上手简单,只需要维护YAML/JSON脚本即可实现接口自动化;
HttpRunner3可以直接写Pytest风格的测试用例
但对于复杂场景,需要借助debugtalk.py写辅助函数完成
HttpRunner3.x 框架原理
基于python的requests库发送请求
HttpRunner3的主要特征
1.继承Requests的全部特性,轻松实现HTTP(S)的各种测试需求
2.以YAML或JSON格式定义测试用例,Pytest以简洁优雅的方式运行
3.在HAR支持下记录并生成测试用例
4.支持variables/extract/validate/hooks机制,以创建非常复杂的测试方案
5.使用debugtalk.py插件,任何功能都可以在测试用例的任何部分使用
6.使用jmespath,提取和验证json响应简单
7.有了pytest,数百个插件随时可用
8.使用Allure,测试报告可以非常强大
9.通过重复使用Locust,可以进行性能测试,无需额外的工作
10.支持CLI命令,与CI/CD完美结合
HttpRunner3.x支持的格式脚本
Json
Yaml
Pytest
Json和Yaml的差异不大,两个可以相互转(https://oktools.net/json2yaml)
HttpRunner最大的特点就是使用pytest框架
HttpRunner3.x的环境准备
pip install httprunner
查看版本号:
hrun -V
同时用pip show har2case查看har2case是否安装,如果未安装,则需安装:pip install har2case
httprunner有四个命令
run 运行文件
har2case 转换成yaml/json格式的测试用例
startproject 快速创建一个新的项目
make 把项目中的yaml文件转换为pytest测试用例
执行run的时候,会先执行make,把yaml文件转为测试用例
HttpRunner3.x框架
python3基础语法
requests库,发http(https)请求基本库
yaml/json文件语法
jmespath提取返回结果,类似于jsonpath库
pytest框架,执行用例最终用的框架
allure测试报告用的allure框架
httprunner2.x语法,在2.x的语法基础上,学3.x更容易一些
locust做性能测试
har2case Fiddler 抓包录制生成用例
Fiddler 抓包生成.har文件
har2case生成Yaml格式用例脚本
har2case生成Json格式用例脚本
har2case生成Pytest格式用例脚本
har2case指令
-h 帮助指令
-2y 转换成yaml格式的文件,如果没有,则转换成pytest格式的文件
-2j 转换成Json格式的文件,如果没有,则转换成pytest格式的文件
-- filter 抓到接口之后,可以通过Filter过滤出自己想要的
--exclude 抓到接口之后,可以通过exclude过滤掉自己不要的