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库发请求

image-20210809153613173

主要特性

  1. 继承Request是的全部特性,轻松实现HTTP(S)的各种测试需求
  2. 采用YAML/JSON的形式描述测试场景,保障测试用例描述的统一性和可维护性
  3. 借助辅助函数(debugtalk.py),在测试脚本中轻松实现复杂的动态计算逻辑
  4. 支持完善的测试用例分层机制,充分实现测试用例的复用
  5. 测试前后支持完善的hook机制
  6. 响应结果支持丰富的校验机制
  7. 基于HAR实现接口录制和用例生成功能(har2case)
  8. 结合Locust框架,无需额外的工作即可实现分布式性能测试
  9. 执行方式采用CLI调用,可与Jenkins等持续集成工具完美结合
  10. 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
  11. 极强的可扩展性,轻松实现二次开发和Web平台化

安装

环境准备

  • Python v3.6以上版本
  • HttpRunner v2.5.7
  • 编译器

安装

  1. 安装指定的版本的 HttpRunner
    1
    pip install httprunner=2.5.7
  2. 如果安装超时,可以加豆瓣下载源–index-url
    1
    pip install httprunner=2.5.7 --index-url https://pypi.douban.com/simple
  3. 查看安装版本号
    1
    hrun -V
    image-20210808173310720
    安装校验:
  • 在HttpRunner安装成功后,系统中会新增如下5个命令:
    • httprunner:核心命令
    • ate:曾经用过的命令(当时框架名称为ApiTestEngie),功能与HttpRunner完全相同
    • hrun:HttpRunner的缩写,功能与HttpRunner完全相同
    • locusts:基于Locust实现性能测试
    • har2case:辅助工具,可将标准通用的HAR格式(HTTP Archive)转换为YAML/JSON格式的测试用例

卸载

1
pip uninstall httprunner

命令介绍

使用-h查看相关命令行参数
image-20210808173445472

参数命令 参数值 参数说明
-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文件