如何使用jmeter每秒加载测试10k请求?

问题描述 投票:0回答:3

我需要使用JMeter以10k req / sec的速度测试我的网站1小时。我对循环计数,线程数,启动周期和持续时间的值感到困惑。

我的笔记本电脑(i5 8GB)还能做到这一点吗?如果不是,那有什么替代方法。

PS:为此,我检查了关于stackoverflow的每个问题/答案,但找不到任何帮助。请不要标记它重复的问题。

jmeter load-testing
3个回答
0
投票

您可以使用“恒定吞吐量计时器”并定义目标吞吐量,并根据“所有活动线程”选择吞吐量。

定义脚本中的最大用户数,使其足以满足10K req / sec。

此外,如果您使用的是Windows机器,那么我想您将面对此问题[https://www.baselogic.com/2011/11/23/solved-java-net-bindexception-address-use-connect-issue-windows/]

我建议使用分布式测试或使用一台以上的计算机。


0
投票
  1. 配置JMeter每秒发送X个请求的最简单方法是将Precise Troughput TimerThroughput Shaping TimerConcurrency Thread Group结合使用。线程数需要为[[sufficient,确切的数量主要取决于您的应用程序响应时间,如果响应时间为1秒-您将需要10k线程,如果它是500ms-您将需要5k线程,如果是2秒-您将需要20k线程,等等。
  2. [您只能回答笔记本电脑是否可以启动所需数量的虚拟用户,因为要考虑的因素太多:测试的性质,请求/响应的大小,前置/后置处理器和断言的数量等。确保遵循JMeter Best Practices并使用JMeter PerfMon Plugin来监视CPU,RAM,网络等的使用,仿佛您的笔记本电脑会过载-JMeter将无法足够快地发送请求,并且您将无法即使服务器支持,每秒也会处理1万个请求。如果您的笔记本电脑硬件规格对于测试场景而言过低,则必须使用Distributed Testing

0
投票
您正在处理许多问题

    测试设计。使用多个负载生成器。实际上,使用不少于三个,并且在硬件上平均匹配。取一个,每种类型仅加载一个用户。这是您的控制集。如果此集合的降级速率与其他负载生成器的降级速率相同,那么您将遇到一个常见问题,可能是该站点。如果控制集不会降级,而其他负载生成器会降级,则可能是发电机过载。在栅栏的商用测试工具侧,从未考虑过从一个主机生成所有负载的性能测试是一种好习惯。
  • 每秒1万个请求。这是实质性的。我在前20个顶级电子商务网站上工作过,我可以告诉您,即使它们不接收到原始服务器的此类流量。为什么?快取!这可能是一个内容分发网络,其中负载分布在整个县中;或者在站点的负载均衡器(S)的正前方有一个缓存节点(等效的varnishcache东西),或者对于多阶段缓存都都存在。当且仅当(IFF)您的目标是代表最终用户的行为时,您才可能需要在生产中寻找客观参考,以将其固定为验证点。运行来自HTTP访问日志的按秒分组的请求计数,应该能够验证该数目。另外,检查缓存计划中的固定资产-可能管理不善,仅通过更好地管理客户端的站点缓存设置,负载就会大大下降。如果您的目标只是使SOAP / REST接口达到破坏的目的,那么您可能会有更好的路径。
  • 如果您希望将一组特定的SOAP或REST远程过程调用带到破坏点,请考虑进行经典的压力测试。在零负载下开始测试,并在尽可能长的时间内以最小的步长间隔进行增加。物理上类似于传统的医院式压力测试,护士每分钟都要四处走动,并提高速度或跑步机上的倾斜度,或者两者都增加,直到达到测试条件的某种程度。对于正在陷入氧气短缺的医院风格测试,无法跟上步伐等……对于您的应用程序/界面,响应时间可能会比可接受的时间增加一倍,有限资源池中的资源会饱和(后端主机等上的CPU,磁盘,内存,网络)...
© www.soinside.com 2019 - 2024. All rights reserved.