PewpewHTTP 压力测试器

联合创作 · 2023-10-01 19:55

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:gzipContent-Type:application/json

  • 每个请求在 2.5 秒后超时。


有关命令行选项的完整列表,请运行pewpew helppewpew help stress

浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报