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

浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报