繁体   English   中英

使用 JMeter 以精确的时间间隔发送 HTTP 请求

[英]Sending HTTP Request at precise time intervals with JMeter

我正在使用 JMeter 来测试我配置的 Apache2 服务器。 我想测试服务器是否可以每秒处理 200 个 HTTP 请求,并重复大量秒(如 1 分钟,甚至更多)。 我阅读了 JMeter 文档,但在理解计时器功能方面有点困难。 我配置了测试

 - Numbers of Threads 200
 - Ramp-up period 1
 - Loop Count 100

现在,据我了解和注意到,JMeter 的行为是尝试在 1 秒内提升 200 个线程,然后尽可能快地执行 200*100=20000 个请求(或者至少这是我的行为)在我的服务器上体验),每次 200 个请求。 这意味着服务器可能(实际上确实)每秒接收超过 200 个请求。 我想要重现的行为是每秒准确地有 200 个请求。 我不在乎它们是在第二个开始时聚集在一起,还是它们以随机方式出现,分布第二个窗口(每 5 毫秒一个,或其他)。 所以我尝试了一些计时器,但没有成功。 我试过了:

  • 线程延迟为 5 毫秒的Constant Timer 算一下,它应该每 5 毫秒发送一个请求,如果是 200 个线程,它应该每秒发送 200 个请求(200*5 = 1000 毫秒)。
  • 目标吞吐量为 12000.0 的Constant Throughput Timer 也许我在这里错了,但这应该是每分钟的样本,所以每 60 秒 200 个请求是 200*20 = 12000(如果样本是请求)。 我不明白“基于计算吞吐量”选项,我尝试了“仅此线程”(哪个?)和“所有活动线程”。

无论如何,这些配置都不是我需要的。

您可以通过使用Constant Throughput Timer来实现这一点。

恒定吞吐量计时器只能暂停线程以达到指定的“目标吞吐量”值,因此请确保提供足够的虚拟用户(线程)以生成所需的“每分钟请求数”值。

因此,要获得200 个请求/秒,您必须考虑以下事项:

  1. 确保您的线程组中有足够数量的虚拟用户(线程)

  2. 吞吐量计时器在“分钟”级别上非常准确,您需要“等待”它按预期开始工作 60 秒。 确保您有足够的持续时间

  3. test plan level使用恒定吞吐量计时器

  4. 使用“基于”值计算吞吐量作为“所有活动线程”。

此外,请记住,测试计划中的其他元素(例如,其他计时器、指定线程的数量等)可能会影响获得所需的吞吐量

因此,您可以遵循以下技术:

首先,使用以下配置并观察吞吐量结果。

Numbers of Threads : 200

Ramp-up period : 60 seconds

Loop Count : Check "Forever".

Duration (seconds) : 360

如果不符合预期(低于预期) ,则逐渐增加Number of threads观察吞吐量结果是否增加。

您必须增加线程数,直到获得所需的吞吐量

通过这样做,如果您无法获得所需的吞吐量(200 请求/秒),那么您的应用程序每秒无法提供超过 200 的请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM