介绍
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试
官方文档:https://v2.httprunner.org/
核心特性
继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
采用 YAML/JSON 的形式描述测试场景,保障测试用例描述的统一性和可维护性
借助辅助函数(debugtalk.py),在测试脚本中轻松实现复杂的动态计算逻辑
支持完善的测试用例分层机制,充分实现测试用例的复用
运行环境
HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS、Linux、Windows 系统平台上。
HttpRunner 支持 Python 3.4 及以上的所有版本推荐建议使用 Python 3.4 及以上版本。
安装:pip install httprunner
安装校验 :httprunner --version
har2case: 辅助工具:pip install har2case
可将标准通用的 HAR 格式(HTTP Archive)转换为YAML/JSON格式的测试用例
录制生成用例:
在转换生成测试用例之前,需要先将抓取得到的数据包导出为 HAR 格式的文件。使用抓包工具选中所要生成用例的接口,点击右键,选择导出【Export...】,格式选择HTTP Archive(.har)后保存;假设我们保存的文件名称为test.har
转换测试用例
在命令行终端中运行 har2case 命令,即可将 test.har 转换为 HttpRunner 的测试用例文件。 使用 har2case 转换脚本时默认转换为 JSON 格式
加上 -2y参数后转换为 YAML 格式
两种格式完全等价,YAML 格式更简洁以缩进的方式展现,JSON 格式不容易出错适合新手使用
下面为.json和.yml不同格式的对比
运行测试 :hrun命令
使用 hrun指定测试用例路径时,支持多种方式。
- 使用 hrun 命令外加单个测试用例文件名运行单个文件并默认在同级目录下生成测试报告
$ hrun test.yml
- 将多个测试用例文件放置到文件夹中,指定文件夹路径可将文件夹下所有测试用例作为测试用例集进行运行,并生成一个测试报告文件:
$ hrun testcases
若希望测试用例在运行过程中,遇到失败时不再继续运行后续用例,则可通过在命令中添加--failfast实现。如:hrun test.yaml --failfast
若需要查看到更详尽的信息,例如请求的参数和响应的详细内容,可以将日志级别设置为DEBUG,即在命令中添加--log-level debug。如:hrun test.yaml --log-level debug
测试报告
使用 hrun命令执行完测试用例后,会在当前路径的 reports 目录下生成一份 HTML 格式的测试报告。默认情况下,生成的测试报告文件会位于项目根目录的 reports 文件夹中,文件名称为测试开始的时间戳
在 Summary 中,会罗列本次测试的整体信息,包括测试开始时间、总运行时长、运行的Python版本和系统环境、运行结果统计数据。
在 Details 中,会详细展示每一条测试用例的运行结果。
点击测试用例对应的 log 按钮,会在弹出框中展示该用例执行的详细数据,包括请求的 headers 和 body、响应的 headers 和 body、校验结果、响应、响应耗时(elapsed)等信息。