HttpRunnner2.x介绍
HttpRunner是什么样的框架?
HttpRunner是一款面向HTTP(S)协议的通用开源测试框架,只需要编写维护一份YAML/JSON脚本,即可实现自动化测试、持续集成等多种测试需求。
支持的接口协议:HTTP(S)
不支持的接口协议:websocket dubbo等其他
HttpRunner与其他框架对比有哪些优势?
主流接口自动化工具框架:
工具 | 学习成本 | 录制 | 持续集成 | 测试报告 | 用例管理 | 性能测试 | 扩展难度 | 最低要求 |
---|---|---|---|---|---|---|---|---|
Java+testng+Maven | 高 | 否 | 是 | 是 | 难 | 是 | 中 | Java |
Requests+Python | 低 | 否 | 是 | 是 | 难 | 是 | 中 | Python |
RobotFeamework | 低 | 否 | 是 | 是 | 易 | 否 | 高 | 工具组件 |
HttpRunner | 低 | 是 | 是 | 是 | 易 | 是 | 低 | Python |
HttpRunner的优势在于上手容易(不用太多代码量,也不用考虑代码数据的分离)
只需要维护YAML/JSON脚本即可实现接口自动化
当然复杂的场景需要借助debugtalk.py写辅助函数完成
框架原理-基于requests库发请求
主要特性
- 继承Request是的全部特性,轻松实现HTTP(S)的各种测试需求
- 采用YAML/JSON的形式描述测试场景,保障测试用例描述的统一性和可维护性
- 借助辅助函数(debugtalk.py),在测试脚本中轻松实现复杂的动态计算逻辑
- 支持完善的测试用例分层机制,充分实现测试用例的复用
- 测试前后支持完善的hook机制
- 响应结果支持丰富的校验机制
- 基于HAR实现接口录制和用例生成功能(har2case)
- 结合Locust框架,无需额外的工作即可实现分布式性能测试
- 执行方式采用CLI调用,可与Jenkins等持续集成工具完美结合
- 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
- 极强的可扩展性,轻松实现二次开发和Web平台化
安装
环境准备
- Python v3.6以上版本
- HttpRunner v2.5.7
- 编译器
安装
- 安装指定的版本的 HttpRunner
1
pip install httprunner=2.5.7
- 如果安装超时,可以加豆瓣下载源–index-url
1
pip install httprunner=2.5.7 --index-url https://pypi.douban.com/simple
- 查看安装版本号
1
hrun -V
安装校验:
- 在HttpRunner安装成功后,系统中会新增如下5个命令:
- httprunner:核心命令
- ate:曾经用过的命令(当时框架名称为ApiTestEngie),功能与HttpRunner完全相同
- hrun:HttpRunner的缩写,功能与HttpRunner完全相同
- locusts:基于Locust实现性能测试
- har2case:辅助工具,可将标准通用的HAR格式(HTTP Archive)转换为YAML/JSON格式的测试用例
卸载
1 | pip uninstall httprunner |
命令介绍
使用-h查看相关命令行参数
参数命令 | 参数值 | 参数说明 |
---|---|---|
-h,–help | 不带参数 | 查看帮助信息 |
-V,–version | 不带参数 | 查看版本号 |
–log-level | LOG_LEVEL | 日志等级,默认info级别,如:debug/info/warn/error/critical |
–log-file | LOG_FILE | 指定日志文本保存路径 |
–dot-env-path | DOT_ENV_PATH | 指环境变量.env的详情路径 |
–report-template | REPORT_TEMPLATE | 指定报告模板路径 |
–report-dir | REPORT_DIR | 指定报告保存目录 |
–report-file | REPORT_FILE | 指定报告文件路径,优先级高于保存目录REPORT_DIR |
–save-tests | 不带参数 | 将加载/解析/变量输出/摘要json数据保存到json文件 |
–failfast | 不带参数 | 在出第一个错误或失败时停止测试运行 |
–startproject | STARTPRROJECT | 创建一个hrun项目 |
–validate | [VALIDATE [VALIDATE…]] | 校验json格式 |
–prettify | [PRETTIFY [PRETTIFY…]] | 格式化json文件 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jing's Blog!