绍兴市网站建设_网站建设公司_VS Code_seo优化
2025/12/23 22:20:31 网站建设 项目流程

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

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

一、HttpRunner 简介

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

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

官方地址:

二、与其他接口测试工具对比
工具/框架脚本语言主要特点适合人群
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
脚本格式校验jsonschemaTODO
脚本编写语法提示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


三、快速预览测试用例

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"]

说明:


四、自定义函数示例(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()


五、运行接口测试

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

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

AI写代码

AI写代码


六、查看测试报告

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


七、性能压测(Boomer)

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

示例命令:

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

AI写代码

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

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

软件测试面试文档

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询