# HttpRunner
[![Github Actions](https://github.com/httprunner/httprunner/actions/workflows/unittest.yml/badge.svg)](https://github.com/httprunner/httprunner/actions)
[![codecov](https://codecov.io/gh/httprunner/httprunner/branch/master/graph/badge.svg)](https://codecov.io/gh/httprunner/httprunner)
[![Go Reference](https://pkg.go.dev/badge/github.com/httprunner/httprunner.svg)](https://pkg.go.dev/github.com/httprunner/httprunner)
[![downloads](https://pepy.tech/badge/httprunner)](https://pepy.tech/project/httprunner)
[![pypi version](https://img.shields.io/pypi/v/httprunner.svg)](https://pypi.python.org/pypi/httprunner)
[![pyversions](https://img.shields.io/pypi/pyversions/httprunner.svg)](https://pypi.python.org/pypi/httprunner)
[![TesterHome](https://img.shields.io/badge/TTF-TesterHome-2955C5.svg)](https://testerhome.com/github_statistics)
`HttpRunner` 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型。简单易用,功能强大,具有丰富的插件化机制和高度的可扩展能力。
> HttpRunner [用户调研问卷][survey] 持续收集中,我们将基于用户反馈动态调整产品特性和需求优先级。
![flow chart](https://httprunner.com/image/hrp-flow.jpg)
[版本发布日志] | [English]
## 设计理念
相比于其它 API 测试工具,HttpRunner 最大的不同在于设计理念。
- 约定大于配置:测试用例是标准结构化的,格式统一,方便协作和维护
- 标准开放:基于开放的标准,支持与 [HAR]/Postman/Swagger/Curl/JMeter 等工具对接,轻松实现用例生成和转换
- 一次投入多维复用:一套脚本可同时支持接口自动化测试、性能测试、数字体验监测等多种 API 测试需求
- 融入最佳工程实践:不仅仅是一款测试工具,在功能中融入最佳工程实践,实现面向网络协议的一站式测试解决方案
## 核心特性
- 网络协议:完整支持 HTTP(S)/HTTP2/WebSocket,可扩展支持 TCP/UDP/RPC 等更多协议
- 多格式可选:测试用例支持 YAML/JSON/go test/pytest 格式,并且支持格式互相转换
- 双执行引擎:同时支持 golang/python 两个执行引擎,兼具 go 的高性能和 [pytest] 的丰富生态
- 录制 & 生成:可使用 [HAR]/Postman/Swagger/curl 等生成测试用例;基于链式调用的方法提示也可快速编写测试用例
- 复杂场景:基于 variables/extract/validate/hooks 机制可以方便地创建任意复杂的测试场景
- 插件化机制:内置丰富的函数库,同时可以基于主流编程语言(go/python/java)编写自定义函数轻松实现更多能力
- 性能测试:无需额外工作即可实现压力测试;单机可轻松支撑 `1w+` VUM,结合分布式负载能力可实现海量发压
- 网络性能采集:在场景化接口测试的基础上,可额外采集网络链路性能指标(DNS 解析、TCP 连接、SSL 握手、网络传输等)
- 一键部署:采用二进制命令行工具分发,无需环境依赖,一条命令即可在 macOS/Linux/Windows 快速完成安装部署
## 用户声音
基于 252 份调研问卷的统计结果,HttpRunner 用户的整体满意度评分 `4.3/5`,最喜欢的特性包括:
- 简单易用:测试用例支持 YAML/JSON 标准化格式,可通过录制的方式快速生成用例,上手简单,使用方便
- 功能强大:支持灵活的自定义函数和 hook 机制,参数变量、数据驱动、结果断言等机制一应俱全,轻松适应各种复杂场景
- 设计理念:测试用例组织支持分层设计,格式统一,易于实现测试用例的维护和复用
更多内容详见 [HttpRunner 首轮用户调研报告(2022.02)][user-survey-report]
## 一键部署
HttpRunner 二进制命令行工具已上传至阿里云 OSS,在系统终端中执行如下命令可完成安装部署。
```bash
$ bash -c "$(curl -ksSL https://httprunner.com/script/install.sh)"
```
安装成功后,你将获得一个 `hrp` 命令行工具,执行 `hrp -h` 即可查看到参数帮助说明。
```text
$ hrp -h
██╗ ██╗████████╗████████╗██████╗ ██████╗ ██╗ ██╗███╗ ██╗███╗ ██╗███████╗██████╗
██║ ██║╚══██╔══╝╚══██╔══╝██╔══██╗██╔══██╗██║ ██║████╗ ██║████╗ ██║██╔════╝██╔══██╗
███████║ ██║ ██║ ██████╔╝██████╔╝██║ ██║██╔██╗ ██║██╔██╗ ██║█████╗ ██████╔╝
██╔══██║ ██║ ██║ ██╔═══╝ ██╔══██╗██║ ██║██║╚██╗██║██║╚██╗██║██╔══╝ ██╔══██╗
██║ ██║ ██║ ██║ ██║ ██║ ██║╚██████╔╝██║ ╚████║██║ ╚████║███████╗██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝
HttpRunner is an open source API testing tool that supports HTTP(S)/HTTP2/WebSocket/RPC
network protocols, covering API testing, performance testing and digital experience
monitoring (DEM) test types. Enjoy! ✨ 🚀 ✨
License: Apache-2.0
Website: https://httprunner.com
Github: https://github.com/httprunner/httprunner
Copyright 2017 debugtalk
Usage:
hrp [command]
Available Commands:
adb simple utils for android device management
boom run load test with boomer
build build plugin for testing
completion Generate the autocompletion script for the specified shell
convert convert multiple source format to HttpRunner JSON/YAML/gotest/pytest cases
help Help about any command
ios simple utils for ios device management
pytest run API test with pytest
run run API test with go engine
startproject create a scaffold project
wiki visit https://httprunner.com
Flags:
-h, --help help for hrp
--log-json set log to json format
-l, --log-level string set log level (default "INFO")
--venv string specify python3 venv path
-v, --version version for hrp
Use "hrp [command] --help" for more information about a command.
```
## 用户案例
<a href="https://httprunner.com/docs/cases/dji-ibg"><img src="https://httprunner.com/image/logo/dji.jpeg" title="大疆 - 基于 HttpRunner 构建完整的自动化测试体系" width="60"></a>
<a href="https://httprunner.com/docs/cases/youmi"><img src="https://httprunner.com/image/logo/youmi.png" title="有米科技 - 基于 HttpRunner 建设自动化测试平台" width="60"></a>
<a href="https://httprunner.com/docs/cases/umcare"><img src="https://httprunner.com/image/logo/umcare.png" title="通用环球医疗 - 使用 HttpRunner 实践接口自动化测试" width="100"></a>
<a href="https://httprunner.com/docs/cases/mihoyo"><img src="https://httprunner.com/image/logo/miHoYo.png" title="米哈游 - 基于 HttpRunner 搭建接口自动化测试体系" width="100"></a>
## 赞助商
[<img src="https://testing-studio.com/img/icon.png" alt="霍格沃兹测试开发学社" width="500">](https://qrcode.testing-studio.com/f?from=HttpRunner&url=https://testing-studio.com/)
> 霍格沃兹测试开发学社是中国软件测试开发高端教育品牌,产品由国内顶尖软件测试开发技术专家携手打造,为企业与个人提供专业的技能培训与咨询、测试工具与测试平台、测试外包与测试众包服务。领域涵盖 App/Web 自动化测试、接口自动化测试、性能测试、安全测试、持续交付/DevOps、测试左移、测试右移、精准测试、测试平台开发、测试管理等方向。-> [**联系我们**](http://qrcode.testing-studio.com/f?from=HttpRunner&url=https://ceshiren.com/t/topic/23745)
## Subscribe
关注 HttpRunner 的微信公众号,第一时间获得最新资讯。
<img src="https://httprunner.com/image/qrcode.png" alt="HttpRunner" width="400">
[HttpRunner]: https://github.com/httprunner/httprunner
[boomer]: https://github.com/myzhan/boomer
[locust]: https://github.com/locustio/locust
[jmespath]: https://jmespath.org/
[allure]: https://docs.qameta.io/allure/
[HAR]: https://en.wikipedia.org/wiki/HAR_(file_format)
[hashicorp plugin]: https://github.com/hashicorp/go-plugin
[go plugin]: https://pkg.go.dev/plugin
[版本发布日志]: docs/CHANGELOG.md
[pushgateway]: https://github.com/prometheus/pushgateway
[survey]: https://wj.qq.com/s2/9699514/0d19/
[user-survey-report]: https://httprunner.com/blog/user-survey-report/
[English]: README.en.md
[pytest]: https://docs.pytest.org/
Raw data
{
"_id": null,
"home_page": "https://httprunner.com",
"name": "httprunner",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7,<4.0",
"maintainer_email": "",
"keywords": "HTTP,apitest,perftest,requests",
"author": "debugtalk",
"author_email": "debugtalk@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ea/2b/b930d89e447f7ebdd7b04c864dfc4365d6e29c91ffaf40643227f9e8add3/httprunner-4.3.5.tar.gz",
"platform": null,
"description": "# HttpRunner\n\n[![Github Actions](https://github.com/httprunner/httprunner/actions/workflows/unittest.yml/badge.svg)](https://github.com/httprunner/httprunner/actions)\n[![codecov](https://codecov.io/gh/httprunner/httprunner/branch/master/graph/badge.svg)](https://codecov.io/gh/httprunner/httprunner)\n[![Go Reference](https://pkg.go.dev/badge/github.com/httprunner/httprunner.svg)](https://pkg.go.dev/github.com/httprunner/httprunner)\n[![downloads](https://pepy.tech/badge/httprunner)](https://pepy.tech/project/httprunner)\n[![pypi version](https://img.shields.io/pypi/v/httprunner.svg)](https://pypi.python.org/pypi/httprunner)\n[![pyversions](https://img.shields.io/pypi/pyversions/httprunner.svg)](https://pypi.python.org/pypi/httprunner)\n[![TesterHome](https://img.shields.io/badge/TTF-TesterHome-2955C5.svg)](https://testerhome.com/github_statistics)\n\n`HttpRunner` \u662f\u4e00\u4e2a\u5f00\u6e90\u7684 API \u6d4b\u8bd5\u5de5\u5177\uff0c\u652f\u6301 HTTP(S)/HTTP2/WebSocket/RPC \u7b49\u7f51\u7edc\u534f\u8bae\uff0c\u6db5\u76d6\u63a5\u53e3\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u3001\u6570\u5b57\u4f53\u9a8c\u76d1\u6d4b\u7b49\u6d4b\u8bd5\u7c7b\u578b\u3002\u7b80\u5355\u6613\u7528\uff0c\u529f\u80fd\u5f3a\u5927\uff0c\u5177\u6709\u4e30\u5bcc\u7684\u63d2\u4ef6\u5316\u673a\u5236\u548c\u9ad8\u5ea6\u7684\u53ef\u6269\u5c55\u80fd\u529b\u3002\n\n> HttpRunner [\u7528\u6237\u8c03\u7814\u95ee\u5377][survey] \u6301\u7eed\u6536\u96c6\u4e2d\uff0c\u6211\u4eec\u5c06\u57fa\u4e8e\u7528\u6237\u53cd\u9988\u52a8\u6001\u8c03\u6574\u4ea7\u54c1\u7279\u6027\u548c\u9700\u6c42\u4f18\u5148\u7ea7\u3002\n\n![flow chart](https://httprunner.com/image/hrp-flow.jpg)\n\n[\u7248\u672c\u53d1\u5e03\u65e5\u5fd7] | [English]\n\n## \u8bbe\u8ba1\u7406\u5ff5\n\n\u76f8\u6bd4\u4e8e\u5176\u5b83 API \u6d4b\u8bd5\u5de5\u5177\uff0cHttpRunner \u6700\u5927\u7684\u4e0d\u540c\u5728\u4e8e\u8bbe\u8ba1\u7406\u5ff5\u3002\n\n- \u7ea6\u5b9a\u5927\u4e8e\u914d\u7f6e\uff1a\u6d4b\u8bd5\u7528\u4f8b\u662f\u6807\u51c6\u7ed3\u6784\u5316\u7684\uff0c\u683c\u5f0f\u7edf\u4e00\uff0c\u65b9\u4fbf\u534f\u4f5c\u548c\u7ef4\u62a4\n- \u6807\u51c6\u5f00\u653e\uff1a\u57fa\u4e8e\u5f00\u653e\u7684\u6807\u51c6\uff0c\u652f\u6301\u4e0e [HAR]/Postman/Swagger/Curl/JMeter \u7b49\u5de5\u5177\u5bf9\u63a5\uff0c\u8f7b\u677e\u5b9e\u73b0\u7528\u4f8b\u751f\u6210\u548c\u8f6c\u6362\n- \u4e00\u6b21\u6295\u5165\u591a\u7ef4\u590d\u7528\uff1a\u4e00\u5957\u811a\u672c\u53ef\u540c\u65f6\u652f\u6301\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u3001\u6570\u5b57\u4f53\u9a8c\u76d1\u6d4b\u7b49\u591a\u79cd API \u6d4b\u8bd5\u9700\u6c42\n- \u878d\u5165\u6700\u4f73\u5de5\u7a0b\u5b9e\u8df5\uff1a\u4e0d\u4ec5\u4ec5\u662f\u4e00\u6b3e\u6d4b\u8bd5\u5de5\u5177\uff0c\u5728\u529f\u80fd\u4e2d\u878d\u5165\u6700\u4f73\u5de5\u7a0b\u5b9e\u8df5\uff0c\u5b9e\u73b0\u9762\u5411\u7f51\u7edc\u534f\u8bae\u7684\u4e00\u7ad9\u5f0f\u6d4b\u8bd5\u89e3\u51b3\u65b9\u6848\n\n## \u6838\u5fc3\u7279\u6027\n\n- \u7f51\u7edc\u534f\u8bae\uff1a\u5b8c\u6574\u652f\u6301 HTTP(S)/HTTP2/WebSocket\uff0c\u53ef\u6269\u5c55\u652f\u6301 TCP/UDP/RPC \u7b49\u66f4\u591a\u534f\u8bae\n- \u591a\u683c\u5f0f\u53ef\u9009\uff1a\u6d4b\u8bd5\u7528\u4f8b\u652f\u6301 YAML/JSON/go test/pytest \u683c\u5f0f\uff0c\u5e76\u4e14\u652f\u6301\u683c\u5f0f\u4e92\u76f8\u8f6c\u6362\n- \u53cc\u6267\u884c\u5f15\u64ce\uff1a\u540c\u65f6\u652f\u6301 golang/python \u4e24\u4e2a\u6267\u884c\u5f15\u64ce\uff0c\u517c\u5177 go \u7684\u9ad8\u6027\u80fd\u548c [pytest] \u7684\u4e30\u5bcc\u751f\u6001\n- \u5f55\u5236 & \u751f\u6210\uff1a\u53ef\u4f7f\u7528 [HAR]/Postman/Swagger/curl \u7b49\u751f\u6210\u6d4b\u8bd5\u7528\u4f8b\uff1b\u57fa\u4e8e\u94fe\u5f0f\u8c03\u7528\u7684\u65b9\u6cd5\u63d0\u793a\u4e5f\u53ef\u5feb\u901f\u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b\n- \u590d\u6742\u573a\u666f\uff1a\u57fa\u4e8e variables/extract/validate/hooks \u673a\u5236\u53ef\u4ee5\u65b9\u4fbf\u5730\u521b\u5efa\u4efb\u610f\u590d\u6742\u7684\u6d4b\u8bd5\u573a\u666f\n- \u63d2\u4ef6\u5316\u673a\u5236\uff1a\u5185\u7f6e\u4e30\u5bcc\u7684\u51fd\u6570\u5e93\uff0c\u540c\u65f6\u53ef\u4ee5\u57fa\u4e8e\u4e3b\u6d41\u7f16\u7a0b\u8bed\u8a00\uff08go/python/java\uff09\u7f16\u5199\u81ea\u5b9a\u4e49\u51fd\u6570\u8f7b\u677e\u5b9e\u73b0\u66f4\u591a\u80fd\u529b\n- \u6027\u80fd\u6d4b\u8bd5\uff1a\u65e0\u9700\u989d\u5916\u5de5\u4f5c\u5373\u53ef\u5b9e\u73b0\u538b\u529b\u6d4b\u8bd5\uff1b\u5355\u673a\u53ef\u8f7b\u677e\u652f\u6491 `1w+` VUM\uff0c\u7ed3\u5408\u5206\u5e03\u5f0f\u8d1f\u8f7d\u80fd\u529b\u53ef\u5b9e\u73b0\u6d77\u91cf\u53d1\u538b\n- \u7f51\u7edc\u6027\u80fd\u91c7\u96c6\uff1a\u5728\u573a\u666f\u5316\u63a5\u53e3\u6d4b\u8bd5\u7684\u57fa\u7840\u4e0a\uff0c\u53ef\u989d\u5916\u91c7\u96c6\u7f51\u7edc\u94fe\u8def\u6027\u80fd\u6307\u6807\uff08DNS \u89e3\u6790\u3001TCP \u8fde\u63a5\u3001SSL \u63e1\u624b\u3001\u7f51\u7edc\u4f20\u8f93\u7b49\uff09\n- \u4e00\u952e\u90e8\u7f72\uff1a\u91c7\u7528\u4e8c\u8fdb\u5236\u547d\u4ee4\u884c\u5de5\u5177\u5206\u53d1\uff0c\u65e0\u9700\u73af\u5883\u4f9d\u8d56\uff0c\u4e00\u6761\u547d\u4ee4\u5373\u53ef\u5728 macOS/Linux/Windows \u5feb\u901f\u5b8c\u6210\u5b89\u88c5\u90e8\u7f72\n\n## \u7528\u6237\u58f0\u97f3\n\n\u57fa\u4e8e 252 \u4efd\u8c03\u7814\u95ee\u5377\u7684\u7edf\u8ba1\u7ed3\u679c\uff0cHttpRunner \u7528\u6237\u7684\u6574\u4f53\u6ee1\u610f\u5ea6\u8bc4\u5206 `4.3/5`\uff0c\u6700\u559c\u6b22\u7684\u7279\u6027\u5305\u62ec\uff1a\n\n- \u7b80\u5355\u6613\u7528\uff1a\u6d4b\u8bd5\u7528\u4f8b\u652f\u6301 YAML/JSON \u6807\u51c6\u5316\u683c\u5f0f\uff0c\u53ef\u901a\u8fc7\u5f55\u5236\u7684\u65b9\u5f0f\u5feb\u901f\u751f\u6210\u7528\u4f8b\uff0c\u4e0a\u624b\u7b80\u5355\uff0c\u4f7f\u7528\u65b9\u4fbf\n- \u529f\u80fd\u5f3a\u5927\uff1a\u652f\u6301\u7075\u6d3b\u7684\u81ea\u5b9a\u4e49\u51fd\u6570\u548c hook \u673a\u5236\uff0c\u53c2\u6570\u53d8\u91cf\u3001\u6570\u636e\u9a71\u52a8\u3001\u7ed3\u679c\u65ad\u8a00\u7b49\u673a\u5236\u4e00\u5e94\u4ff1\u5168\uff0c\u8f7b\u677e\u9002\u5e94\u5404\u79cd\u590d\u6742\u573a\u666f\n- \u8bbe\u8ba1\u7406\u5ff5\uff1a\u6d4b\u8bd5\u7528\u4f8b\u7ec4\u7ec7\u652f\u6301\u5206\u5c42\u8bbe\u8ba1\uff0c\u683c\u5f0f\u7edf\u4e00\uff0c\u6613\u4e8e\u5b9e\u73b0\u6d4b\u8bd5\u7528\u4f8b\u7684\u7ef4\u62a4\u548c\u590d\u7528\n\n\u66f4\u591a\u5185\u5bb9\u8be6\u89c1 [HttpRunner \u9996\u8f6e\u7528\u6237\u8c03\u7814\u62a5\u544a\uff082022.02\uff09][user-survey-report]\n\n## \u4e00\u952e\u90e8\u7f72\n\nHttpRunner \u4e8c\u8fdb\u5236\u547d\u4ee4\u884c\u5de5\u5177\u5df2\u4e0a\u4f20\u81f3\u963f\u91cc\u4e91 OSS\uff0c\u5728\u7cfb\u7edf\u7ec8\u7aef\u4e2d\u6267\u884c\u5982\u4e0b\u547d\u4ee4\u53ef\u5b8c\u6210\u5b89\u88c5\u90e8\u7f72\u3002\n\n```bash\n$ bash -c \"$(curl -ksSL https://httprunner.com/script/install.sh)\"\n```\n\n\u5b89\u88c5\u6210\u529f\u540e\uff0c\u4f60\u5c06\u83b7\u5f97\u4e00\u4e2a `hrp` \u547d\u4ee4\u884c\u5de5\u5177\uff0c\u6267\u884c `hrp -h` \u5373\u53ef\u67e5\u770b\u5230\u53c2\u6570\u5e2e\u52a9\u8bf4\u660e\u3002\n\n```text\n$ hrp -h\n\n\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557\n\u2588\u2588\u2551 \u2588\u2588\u2551\u255a\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255d\u255a\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255d\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255d\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\n\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\n\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u255d \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255d \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\n\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u255a\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\n\u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\n\nHttpRunner is an open source API testing tool that supports HTTP(S)/HTTP2/WebSocket/RPC\nnetwork protocols, covering API testing, performance testing and digital experience\nmonitoring (DEM) test types. Enjoy! \u2728 \ud83d\ude80 \u2728\n\nLicense: Apache-2.0\nWebsite: https://httprunner.com\nGithub: https://github.com/httprunner/httprunner\nCopyright 2017 debugtalk\n\nUsage:\n hrp [command]\n\nAvailable Commands:\n adb simple utils for android device management\n boom run load test with boomer\n build build plugin for testing\n completion Generate the autocompletion script for the specified shell\n convert convert multiple source format to HttpRunner JSON/YAML/gotest/pytest cases\n help Help about any command\n ios simple utils for ios device management\n pytest run API test with pytest\n run run API test with go engine\n startproject create a scaffold project\n wiki visit https://httprunner.com\n\nFlags:\n -h, --help help for hrp\n --log-json set log to json format\n -l, --log-level string set log level (default \"INFO\")\n --venv string specify python3 venv path\n -v, --version version for hrp\n\nUse \"hrp [command] --help\" for more information about a command.\n```\n\n## \u7528\u6237\u6848\u4f8b\n\n<a href=\"https://httprunner.com/docs/cases/dji-ibg\"><img src=\"https://httprunner.com/image/logo/dji.jpeg\" title=\"\u5927\u7586 - \u57fa\u4e8e HttpRunner \u6784\u5efa\u5b8c\u6574\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u4f53\u7cfb\" width=\"60\"></a>\n<a href=\"https://httprunner.com/docs/cases/youmi\"><img src=\"https://httprunner.com/image/logo/youmi.png\" title=\"\u6709\u7c73\u79d1\u6280 - \u57fa\u4e8e HttpRunner \u5efa\u8bbe\u81ea\u52a8\u5316\u6d4b\u8bd5\u5e73\u53f0\" width=\"60\"></a>\n<a href=\"https://httprunner.com/docs/cases/umcare\"><img src=\"https://httprunner.com/image/logo/umcare.png\" title=\"\u901a\u7528\u73af\u7403\u533b\u7597 - \u4f7f\u7528 HttpRunner \u5b9e\u8df5\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\" width=\"100\"></a>\n<a href=\"https://httprunner.com/docs/cases/mihoyo\"><img src=\"https://httprunner.com/image/logo/miHoYo.png\" title=\"\u7c73\u54c8\u6e38 - \u57fa\u4e8e HttpRunner \u642d\u5efa\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\u4f53\u7cfb\" width=\"100\"></a>\n\n\n## \u8d5e\u52a9\u5546\n\n[<img src=\"https://testing-studio.com/img/icon.png\" alt=\"\u970d\u683c\u6c83\u5179\u6d4b\u8bd5\u5f00\u53d1\u5b66\u793e\" width=\"500\">](https://qrcode.testing-studio.com/f?from=HttpRunner&url=https://testing-studio.com/)\n\n> \u970d\u683c\u6c83\u5179\u6d4b\u8bd5\u5f00\u53d1\u5b66\u793e\u662f\u4e2d\u56fd\u8f6f\u4ef6\u6d4b\u8bd5\u5f00\u53d1\u9ad8\u7aef\u6559\u80b2\u54c1\u724c\uff0c\u4ea7\u54c1\u7531\u56fd\u5185\u9876\u5c16\u8f6f\u4ef6\u6d4b\u8bd5\u5f00\u53d1\u6280\u672f\u4e13\u5bb6\u643a\u624b\u6253\u9020\uff0c\u4e3a\u4f01\u4e1a\u4e0e\u4e2a\u4eba\u63d0\u4f9b\u4e13\u4e1a\u7684\u6280\u80fd\u57f9\u8bad\u4e0e\u54a8\u8be2\u3001\u6d4b\u8bd5\u5de5\u5177\u4e0e\u6d4b\u8bd5\u5e73\u53f0\u3001\u6d4b\u8bd5\u5916\u5305\u4e0e\u6d4b\u8bd5\u4f17\u5305\u670d\u52a1\u3002\u9886\u57df\u6db5\u76d6 App/Web \u81ea\u52a8\u5316\u6d4b\u8bd5\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u3001\u5b89\u5168\u6d4b\u8bd5\u3001\u6301\u7eed\u4ea4\u4ed8/DevOps\u3001\u6d4b\u8bd5\u5de6\u79fb\u3001\u6d4b\u8bd5\u53f3\u79fb\u3001\u7cbe\u51c6\u6d4b\u8bd5\u3001\u6d4b\u8bd5\u5e73\u53f0\u5f00\u53d1\u3001\u6d4b\u8bd5\u7ba1\u7406\u7b49\u65b9\u5411\u3002-> [**\u8054\u7cfb\u6211\u4eec**](http://qrcode.testing-studio.com/f?from=HttpRunner&url=https://ceshiren.com/t/topic/23745)\n\n## Subscribe\n\n\u5173\u6ce8 HttpRunner \u7684\u5fae\u4fe1\u516c\u4f17\u53f7\uff0c\u7b2c\u4e00\u65f6\u95f4\u83b7\u5f97\u6700\u65b0\u8d44\u8baf\u3002\n\n<img src=\"https://httprunner.com/image/qrcode.png\" alt=\"HttpRunner\" width=\"400\">\n\n[HttpRunner]: https://github.com/httprunner/httprunner\n[boomer]: https://github.com/myzhan/boomer\n[locust]: https://github.com/locustio/locust\n[jmespath]: https://jmespath.org/\n[allure]: https://docs.qameta.io/allure/\n[HAR]: https://en.wikipedia.org/wiki/HAR_(file_format)\n[hashicorp plugin]: https://github.com/hashicorp/go-plugin\n[go plugin]: https://pkg.go.dev/plugin\n[\u7248\u672c\u53d1\u5e03\u65e5\u5fd7]: docs/CHANGELOG.md\n[pushgateway]: https://github.com/prometheus/pushgateway\n[survey]: https://wj.qq.com/s2/9699514/0d19/\n[user-survey-report]: https://httprunner.com/blog/user-survey-report/\n[English]: README.en.md\n[pytest]: https://docs.pytest.org/\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "One-stop solution for HTTP(S) testing.",
"version": "4.3.5",
"project_urls": {
"Documentation": "https://httprunner.com/docs",
"Homepage": "https://httprunner.com",
"Repository": "https://github.com/httprunner/httprunner"
},
"split_keywords": [
"http",
"apitest",
"perftest",
"requests"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bf193cc1b8d26d25b24c95656ebab50e4d294df4363f270e2d22f16d3f9a7b00",
"md5": "1f48d6bf7818f1d2b3ce5782cc96ac91",
"sha256": "fde963232bcb477f15b24caae3945b2db164aaf8b390c3bcf12b9054a9ccd356"
},
"downloads": -1,
"filename": "httprunner-4.3.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1f48d6bf7818f1d2b3ce5782cc96ac91",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7,<4.0",
"size": 87789,
"upload_time": "2023-07-23T06:59:10",
"upload_time_iso_8601": "2023-07-23T06:59:10.310060Z",
"url": "https://files.pythonhosted.org/packages/bf/19/3cc1b8d26d25b24c95656ebab50e4d294df4363f270e2d22f16d3f9a7b00/httprunner-4.3.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ea2bb930d89e447f7ebdd7b04c864dfc4365d6e29c91ffaf40643227f9e8add3",
"md5": "88f13890f9d97f2f85356e98ff1dee19",
"sha256": "397bf6fb871ff05b8b466981c9bd7af574ce575541f0ea49535720a416891383"
},
"downloads": -1,
"filename": "httprunner-4.3.5.tar.gz",
"has_sig": false,
"md5_digest": "88f13890f9d97f2f85356e98ff1dee19",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7,<4.0",
"size": 77456,
"upload_time": "2023-07-23T06:59:13",
"upload_time_iso_8601": "2023-07-23T06:59:13.043770Z",
"url": "https://files.pythonhosted.org/packages/ea/2b/b930d89e447f7ebdd7b04c864dfc4365d6e29c91ffaf40643227f9e8add3/httprunner-4.3.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-23 06:59:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "httprunner",
"github_project": "httprunner",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "httprunner"
}