httprunner3.X 基本使用
一、Httprunner简单介绍
httprunner是一个面向https协议的接口自动化测试框架。它只需要维护一份json,yaml文件那么就可以实现自动化测试,性能测试,线上监控,持续集成。HttpRunner 主要包含下列特征:
继承 Requests 库的全部特性,轻松实现 HTTP(S) 的各种测试需求以 YAML 和 JSON 定义测试用例,通过 pytest 去运行基于 HAR 文件,实现接口的录制及用例的生成功能支持 variables、extract、validate、hook 等关键字,可以创建复杂的测试场景借助辅助插件 debugtalk.py,在测试脚本中轻松实现复杂的动态计算逻辑集成 jmespath,方便提取变量、验证 JSON 响应集成 pytest,支持大量的插件集成 allure 生成强大的测试报告集成 locust,非常方便做性能测试执行方式采用 CLI 调用形式,可以和 Jenkins 等持续集成工具完美结合使用 pip 安装 HttpRunner 稳定版本
httprunner架构:
1.Fiddler抓包,生成HAR文件
2.由HAR文件转化成YAML,JSON,PY文件
3.标准化的JSON数据格式
4.拼接转换
5.测试用例集
6.自动化测试,requests
7.性能测试:locust
二、httprunner安装
安装python3.7
pip install httprunner==3.1.4
hrun -V 验证版本
pip install har2case
har2case -V验证版本
遇到的坑:hrun -V ,报错
ImportError: cannot import name ‘soft_unicode’ from ‘markupsafe’ (D:\Anaconda\envs\vt_api_test\lib\site-packages\markupsafe_init_.py)
明明装了 markupsafe 这个模块了。为什么还会报错呢?
(vt_api_test) E:\code\vt_api_frame>pip install markupsafe
Requirement already satisfied: markupsafe in d:\anaconda\envs\vt_api_test\lib\site-packages (2.1.1)
当前这个markupsafe包的版本是2.1.1版本。
解决方法:查看版本会出现报错问题,查看是哪个包报错,重新定义版本安装对应包,可尝试指定低版本安装。比如:pip install markupsafe==2.0.1
三、基本使用
1. 创建项目 httprunner startproject dahai_demo
2. 抓包导出har文件,放在har文件下
如果使用的是fiddler工具抓包,在保存文件时选择文件格式为:HTTPArchive v1.2
3. har2case转换成json/yaml用例文件,放在testcases文件下
har2case har/XXX.har
har2case har/XXX.har -2y
har2case XXX.har -2j
4. make转换成pytest用例文件
hmake testcases/XXX.yml
hmake testcases
5. hrun运行用例
hrun testcases/XXX.yml
hrun testcases
如果想看到request和response、提取和断言的详细信息,可以增加-s
(--capture=no
的缩写),加入后结果就日志中就不会出现句柄错误的报错了
hrun -s testcases/list.yml
6. hrun运行并生成报告
hrun -s testcases --html=./reports/result.html
7. pytest生成报告
用 hrun 运行生成的报告会出现一大堆的报错: OSError: [WinError 6] 句柄无效。并且无法显示 request 和 response 内容。
hrun 执行pytest用例还不太完善,尽量用pytest去执行py脚本
pytest testcases --html=./reports/result.html --self-contained-html
参考中文文档