尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

接口测试利器 HttpRunner 全面解析

接口测试利器 HttpRunner 全面解析
📅 发布时间:2026/6/21 2:28:57

HttpRunner 是一款面向测试开发的开源接口自动化测试框架,支持 YAML/JSON/Python 编写测试用例,支持 CLI 和 Python 代码运行,兼容多种主流工具(如 Allure、Jenkins 等),非常适合自动化测试团队使用。

随着微服务、前后端分离架构的普及,接口自动化测试 在软件测试领域变得越来越重要。市面上有诸多接口测试工具和框架可供选择,而其中一款国产开源、功能强大的工具——HttpRunner,因其脚本简单、功能完善、适合 CI/CD 接入等优势,广受国内测试工程师欢迎。

一、HttpRunner 简介

HttpRunner 是一个功能强大、易于使用的开源接口测试框架,支持 HTTP(S)、WebSocket 协议,兼容 API 测试和性能测试,适合各种测试场景:

  • 支持 YAML / JSON / Python 多种测试用例格式

  • 支持测试数据参数化、断言机制、测试用例复用

  • 与pytest、Allure深度集成

  • 支持 CI/CD 集成,适合企业自动化流程

它的设计理念是“测试即代码,代码即测试”,不仅适合功能测试,也非常适合接口自动化开发。

官方地址:

  • GitHub: https://github.com/httprunner/httprunner

  • 文档: https://httprunner.com

二、与其他接口测试工具对比
工具/框架脚本语言主要特点适合人群
HttpRunnerYAML / Python开箱即用,支持 DSL+Python,国产文档全,支持 CI/CD自动化测试工程师
Postman + NewmanJSON操作简洁,适合接口调试,支持环境变量,命令行执行接口初学者 / 手工测试
JMeterXML / GUI支持接口和性能测试,脚本笨重,适合场景化压测性能测试工程师
Pytest + requestsPython灵活强大,适合高度自定义场景,但脚手架需自己搭建开发测试工程师
RestAssuredJavaJava生态下的接口测试框架,代码结构规范,语法较重Java团队

HttpRunner 是一种中间路线,兼具易用性(使用YAML编写用例)与 灵活性(使用Python编写用例),非常适合团队接口测试自动化落地。

三、HttpRunner 版本演进

HttpRunner 自 2017 年发布以来,经历了多个重大版本升级,不断提升其功能、稳定性与可扩展性。

以下版本对比来自官方文档:

版本v1v2v3HttpRunner+v4
发布时间2018.03.072019.01.012020.03.102021.11.182022.05.01
开发语言PythonPythonPythonGolangGolang + Python
版本号规范(semver)❌✅✅✅✅
网络协议HTTP(S)/1.1HTTP(S)/1.1HTTP(S)/1.1HTTP(S)/1.1多协议 HTTP(S)/HTTP2/WebSocket/TCP/RPC
脚本转换工具HARHARHARHARHAR/Postman/Swagger/Curl
工程脚⼿架❌✅✅✅✅
测试⽤例(集)格式v1v2v2v2v2
测试⽤例分层机制v1v2v2v2v2
脚本格式类型YAML/JSONYAML/JSONYAML/JSON/pytestYAML/JSONYAML/JSON/pytest/gotest
脚本格式校验❌jsonschema❌❌TODO
脚本编写语法提示❌❌pytest 链式调用gotest 链式调用gotest 链式调用 + pytest 链式调用
脚本执行引擎Python unittestPython unittestPython pytestGo 自研Go 自研 + Python pytest
插件化语言(debugtalk.xx)PythonPythonPython多语言(Go/Python)多语言(Go/Python/Java/etc.)
参数提取机制regex + 点分隔符jmespath + regex + 点分隔符jmespathjmespath + regexjmespath + regex
skip 机制✅❌❌❌TODO
接口测试报告html 自研(jinja2)html 自研(jinja2)pytest-html/allurehtml 自研(Go template)html 自研(Go template) + pytest-html/allure
性能测试引擎Python LocustPython LocustPython LocustGo BoomerGo Boomer
运行环境依赖Python 2.7/3.3+Python 2.7/3.5+Python 3.7+ pytest无需依赖Go 引擎无需依赖
pytest 引擎依赖 Python 3.7+
网络性能采集❌❌❌❌✅
安装部署方式pippippipcurl/wgetcurl/wget
四、HttpRunner安装和使用

HttpRunner 追求“简单易用”,即使是新用户,也能在 10 分钟内快速跑通第一个接口自动化用例。

一、安装部署

HttpRunner v4 采用 Go 语言开发,已提供跨平台二进制安装包。安装只需一条命令:

bash -c "$(curl -ksSL https://httprunner.com/script/install.sh)"

AI写代码

安装完成后,你将获得命令行工具hrp,通过下面命令查看帮助:

hrp -h

AI写代码

示例输出(简略):​​​​​

  1. Usage:

  2. hrp [command]

  3. Available Commands:

  4. boom run load test with boomer

  5. convert convert JSON/YAML testcases to pytest/gotest scripts

  6. har2case convert HAR to json/yaml testcase files

  7. pytest run API test with pytest

  8. run run API test with go engine

  9. startproject create a scaffold project

  10. ...


二、创建项目脚手架

执行以下命令初始化一个示例项目,项目目录结构自动生成:

hrp startproject demo

AI写代码

示例输出日志会显示创建过程,完成后你会看到:

  1. demo/

  2. ├── .env

  3. ├── .gitignore

  4. ├── debugtalk.py

  5. ├── har/

  6. │ └── .keep

  7. ├── reports/

  8. │ └── .keep

  9. └── testcases/

  10. ├── demo_requests.yml

  11. ├── demo_ref_testcase.yml

  12. └── demo_with_funplugin.json

  • testcases/:存放测试用例

  • debugtalk.py:自定义函数脚本

  • reports/:测试报告目录


三、快速预览测试用例

以demo_requests.yml为例,里面包含多个 HTTP 请求测试步骤。

示例节选:

  1. config:

  2. name: "request methods testcase with functions"

  3. base_url: "https://postman-echo.com"

  4. variables:

  5. foo1: config_bar1

  6. foo2: config_bar2

  7. expect_foo1: config_bar1

  8. expect_foo2: config_bar2

  9. verify: False

  10. export: ["foo3"]

  11. teststeps:

  12. - name: get with params

  13. variables:

  14. foo1: bar11

  15. foo2: bar21

  16. sum_v: "${sum_two(1, 2)}"

  17. request:

  18. method: GET

  19. url: /get

  20. params:

  21. foo1: $foo1

  22. foo2: $foo2

  23. sum_v: $sum_v

  24. headers:

  25. User-Agent: HttpRunner/${get_httprunner_version()}

  26. extract:

  27. foo3: "body.args.foo2"

  28. validate:

  29. - eq: ["status_code", 200]

  30. - eq: ["body.args.foo1", "bar11"]

  31. - eq: ["body.args.sum_v", "3"]

  32. - eq: ["body.args.foo2", "bar21"]

说明:

  • config定义全局配置,如基本 URL、变量、SSL 校验等。

  • teststeps是有序的测试步骤列表,每步代表一个 HTTP 请求和校验

  • 变量支持定义和覆盖,支持${函数名(参数)}调用自定义函数。

  • 断言(validate)用于校验返回状态码和响应体字段。


四、自定义函数示例(debugtalk.py)

debugtalk.py允许你定义业务相关的函数,并在 YAML 中调用。

示例代码:

  1. import funppy

  2. def get_httprunner_version():

  3. return "v4.0.0-alpha"

  4. def sum_two_int(a: int, b: int) -> int:

  5. return a + b

  6. if __name__ == '__main__':

  7. funppy.register("get_httprunner_version", get_httprunner_version)

  8. funppy.register("sum_two", sum_two_int)

  9. funppy.serve()

  • 通过funppy.register注册函数后,YAML 用例就能调用${sum_two(1,2)}。

  • 这是基于“约定优于配置”的设计,方便逻辑复用。


五、运行接口测试

执行以下命令,运行项目中的测试用例,并生成 HTML 报告:

hrp run demo/testcases/demo_requests.yml demo/testcases/demo_ref_testcase.yml --gen-html-report

AI写代码

AI写代码

  • 支持同时运行多个用例文件

  • --gen-html-report会在reports/目录生成可视化测试报告


六、查看测试报告

打开reports/目录中生成的 HTML 文件,浏览器打开后即可查看:

  • 每条用例请求和响应详情

  • 断言结果和错误信息

  • 用例执行耗时、状态统计


七、性能压测(Boomer)

利用已有接口用例,快速做性能压测,无需额外改造。

示例命令:

hrp boom demo/testcases/demo_requests.yml --spawn-count 100 --spawn-rate 10

AI写代码

  • --spawn-count:并发用户数

  • --spawn-rate:每秒启动用户数

  • 压测过程实时输出统计数据

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

相关新闻

  • 【Unity】URP中的UGUIShader实现
  • 【VSCode】插件开发笔记
  • Apache Ignite 广告实时竞拍系统架构全攻略

最新新闻

  • Ubuntu 14.04下WordPress XML-RPC四层防御实战
  • M2-PALE:融合过程挖掘与LLM的可解释混合智能体框架
  • Quanto量化实战:让Transformer在CPU/边缘设备高效运行
  • 基于流匹配与复值自编码器的脑肿瘤MRI生成式数据增强实战
  • 【技术干货】AI应用构建器实战:用大模型规划并生成创作者赞助管理后台
  • Ubuntu 20.04 安装 TensorFlow 的三大兼容性陷阱与生产级解决方案

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号