-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
218 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
# 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` 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. Simple and easy to use, powerful, with rich plug-in mechanism and high scalability. | ||
|
||
> HttpRunner [用户调研问卷][survey] 持续收集中,我们将基于用户反馈动态调整产品特性和需求优先级。 | ||
![flow chart](docs/assets/hrp-flow.jpg) | ||
|
||
[CHANGELOG] | [中文] | ||
|
||
## Key Features | ||
|
||
### API Testing | ||
|
||
- [x] Full support for HTTP(S)/1.1 and HTTP/2 requests. | ||
- [ ] Support more protocols, WebSocket, TCP, RPC etc. | ||
- [x] Testcases can be described in multiple formats, `YAML`/`JSON`/`Golang`, and they are interchangeable. | ||
- [x] Use Charles/Fiddler/Chrome/etc to record HTTP requests and generate testcases from exported [`HAR`][HAR]. | ||
- [x] Supports `variables`/`extract`/`validate`/`hooks` mechanisms to create extremely complex test scenarios. | ||
- [x] Data driven with `parameterize` mechanism, supporting sequential/random/unique strategies to select data. | ||
- [ ] Built-in 100+ commonly used functions for ease, including md5sum, max/min, sleep, gen_random_string etc. | ||
- [x] Create and call custom functions with `plugin` mechanism, support [hashicorp plugin] and [go plugin]. | ||
- [x] Generate html reports with rich test results. | ||
- [x] Using it as a `CLI tool` or a `library` are both supported. | ||
|
||
### Load Testing | ||
|
||
Base on the API testing testcases, you can run professional load testing without extra work. | ||
|
||
- [x] Inherit all powerful features of [`locust`][locust] and [`boomer`][boomer]. | ||
- [x] Report performance metrics to [prometheus pushgateway][pushgateway]. | ||
- [x] Use `transaction` to define a set of end-user actions that represent the real user activities. | ||
- [x] Use `rendezvous` points to force Vusers to perform tasks concurrently during test execution. | ||
- [x] Load testing with specified concurrent users or constant RPS, also supports spawn rate. | ||
- [ ] Support mixed-scenario testing with custom weight. | ||
- [ ] Simulate browser's HTTP parallel connections. | ||
- [ ] IP spoofing. | ||
- [ ] Run in distributed mode to generate unlimited RPS. | ||
|
||
### Digital Experience Monitoring (DEM) | ||
|
||
You can also monitor online services for digital experience assessments. | ||
|
||
- [ ] HTTP(S) latency statistics including DNSLookup, TCP connections, SSL handshakes, content transfers, etc. | ||
- [ ] `ping` indicators including latency, throughput and packets loss. | ||
- [ ] traceroute | ||
- [ ] DNS monitoring | ||
|
||
## Install | ||
|
||
You can install HttpRunner via one curl command. | ||
|
||
```bash | ||
$ bash -c "$(curl -ksSL https://httprunner.com/script/install.sh)" | ||
# backup | ||
$ bash -c "$(curl -ksSL https://httprunner.oss-cn-beijing.aliyuncs.com/install.sh)" | ||
``` | ||
|
||
Then you will get a `hrp` CLI tool. | ||
|
||
```bash | ||
$ 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 2021 debugtalk | ||
|
||
Usage: | ||
hrp [command] | ||
|
||
Available Commands: | ||
boom run load test with boomer | ||
completion generate the autocompletion script for the specified shell | ||
har2case convert HAR to json/yaml testcase files | ||
help Help about any command | ||
run run API test | ||
startproject create a scaffold project | ||
|
||
Flags: | ||
-h, --help help for hrp | ||
--log-json set log to json format | ||
-l, --log-level string set log level (default "INFO") | ||
-v, --version version for hrp | ||
|
||
Use "hrp [command] --help" for more information about a command. | ||
``` | ||
|
||
## Subscribe | ||
|
||
关注 HttpRunner 的微信公众号,第一时间获得最新资讯。 | ||
|
||
<img src="docs/assets/qrcode.jpg" alt="HttpRunner" width="200"> | ||
|
||
如果你期望加入 HttpRunner 核心用户群,请填写[用户调研问卷][survey]并留下你的联系方式,作者将拉你进群。 | ||
|
||
[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]: http://httparchive.org/ | ||
[hashicorp plugin]: https://github.com/hashicorp/go-plugin | ||
[go plugin]: https://pkg.go.dev/plugin | ||
[CHANGELOG]: docs/CHANGELOG.md | ||
[pushgateway]: https://github.com/prometheus/pushgateway | ||
[survey]: https://wj.qq.com/s2/9699514/0d19/ | ||
[中文]: README.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters