PewpewHTTP 压力测试器
Pewpew 是一个适用于网站和 Web 服务的灵活的 HTTP 命令行压力测试器,它可以通过多种配置来冲击多个目标,模拟真实世界的负载并绕过缓存。
注意:Pewpew 旨在帮助开发网络服务和网站的人,请负责任地使用它。
特性
- 多种服务器测量模式
- 支持正则表达式定义的目标
- 可同时冲击多个目标
- 没有 runtime 依赖,单个二进制文件
- 有关计时、数据传输、状态代码等的统计信息
- 将原始数据导出为 TSV / JSON 以进行分析、图表等。
- HTTP2 支持
- IPV6 支持
- 大量命令行和配置文件选项(任意 header、cookie、用户代理、timeout ;忽略 SSL 证书、HTTP 身份验证、Keep-Alive、DNS 预取等)
模式
Pewpew 具有两种独立的模式:压力和基准。
压力模式 ( pewpew stress
) 以服务器可以响应的速度发送请求(受并发限制)。这种模式通常最适合回答诸如“服务器返回 1000 个请求的速度有多快?”、“服务器是否会出现 OOM?”、“我可以让服务器达到 503 吗?”,以及更多与过载相关的问题。
基准模式 ( pewpew benchmark
) 以固定速率(每秒请求数)发送请求。这种模式通常最适合回答诸如“在延迟超过 1 秒之前服务器可以处理多少流量?”、“如果到服务器的流量被限制在 100 rps 的速率,是否会有 503 秒?”,以及其他可测量的问题控制流量测试。
例子
pewpew stress -n 50 www.example.com
向http://www.example.com发出 50 个请求。
pewpew benchmark --rps 100 --duration 60 www.example.com
60 秒内,每秒向 www.example.com 发送 100 个请求
pewpew stress -X POST --body '{"hello": "world"}' -n 100 -c 5 -t 2.5s -H "Accept-Encoding:gzip, Content-Type:application/json" https://www.example.com:443/path localhost 127.0.0.1/api
向 https://www.example.com:443/path 、http://localhost 、http://127.0.0.1/api 三个目标都发出请求:
- 每个目标 100 个请求总数(总共 300 个)
- 每个目标 5 个并发请求(同时发 15 个)
- 内容: body
{"hello": "world"}
- 两个标题:
Accept-Encoding:gzip
和Content-Type:application/json
- 每个请求在 2.5 秒后超时。
有关命令行选项的完整列表,请运行pewpew help
或pewpew help stress
评论