Pewpew

HTTP 压力测试器
授权协议 MIT
开发语言 Google Go
所属分类 开发工具、 性能测试和优化
软件类型 开源软件
地区 不详
投 递 者 卢元龙
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

 相关资料
  • 概述 Web压力测试 工具 LoadRunner LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案。企业通过LoadRunner能最大限度地缩短测试时间,优化性能并加速应用系统的发布周期。 LoadRunner提供了3大

  • APM 厂商「云智慧」是 DaoCloud 的合作伙伴,云智慧提供了用于应用压力测试的产品「压测宝」,可供 DaoCloud 上部署的应用进行分布式压力测试。以下内容由云智慧公司提供。 压测宝介绍 云智慧压测宝: 自动化全链路云测试,模拟真实压力 压测宝可以利用全球的云资源,快速灵活地部署测试,使任何客户都可以根据需求进行互联网和移动应用的性能测试,帮助客户找出系统瓶颈和潜在问题,改善和提升网站品

  • 测试环境: 系统:debian 6.0 64位 内存:64G cpu:Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz (2颗物理cpu,6核心,2线程) Workerman:开启200个Benchark进程 压测脚本:benchmark 业务:发送并返回hello字符串 普通PHP(版本5.3.10)压测 短连接(每次请求完成后关闭连接,下次请求建立新的连接):

  • 测试环境: 系统:debian 6.0 64位 内存:64G cpu:Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz (2颗物理cpu,6核心,2线程) Workerman:开启200个Benchark进程 压测脚本:benchmark 业务:发送并返回hello字符串 普通PHP(版本5.3.10)压测 短链接(每次请求完成后关闭链接,下次请求建立新的链接):

  • 压力测试很有趣,一开始好像压测的目的是找出系统在负载下能不能工作。现实中,系统在负载下确实能工作,但在负载足够重的某些情况下不能工作。我把这叫做碰壁或撞响[1]。可能会有例外,但大多数情况下会有这么一堵“墙”。压测的目的是为了指出墙在哪里,然后弄清楚怎么把墙移得更远些。 压测计划需要在工程的早期就规划好,因为它经常有助于弄清楚到底什么是被期望的。两秒的网页请求是一个悲伤的失败还是一个了不起的成功?

  • 本文向大家介绍压力测试和负载测试的区别相关面试题,主要包含被问及压力测试和负载测试的区别时的应答技巧和注意事项,需要的朋友参考一下 负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问

  • 我必须在一个网站上对500名用户进行压力测试。我如何接近这个。我需要控制的命中/秒Jeter使服务器或我只需要斜坡上的线程,让它做任何它能做的最大命中。我的用户步骤应该是什么延迟(例如:一个用户/线程每15秒或20秒启动一次)。样本之间应该有什么延迟。 提前感谢。

  • 仅使用单元测试很难在 Java 应用程序中发现所有瓶颈、死锁和内存泄漏。 我想为我的应用程序添加一定程度的压力测试。我想测试应用程序的极限,并确定它在高负载下的反应。 我想衡量以下几点: 高负载下的可用性 高负载下的性能 高负载下的内存/CPU/磁盘使用情况 是高负载下死机还是反应优雅 测量和对比正常负载下的这些特性也是令人感兴趣的。 他们是众所周知的,解决压力测试的标准技术。我正在寻找建立这样一