McK*_*ken 1 apache jmeter httprequest
我正在使用 JMeter 来测试我配置的 Apache2 服务器。我想测试服务器是否可以处理每秒总共出现的 200 个 HTTP 请求,并重复处理很长的秒数(例如 1 分钟,甚至更长)。我阅读了 JMeter 文档,但在理解计时器功能方面有点困难。我配置了测试
- Numbers of Threads 200
- Ramp-up period 1
- Loop Count 100
Run Code Online (Sandbox Code Playgroud)
现在,据我理解和注意到,JMeter的行为是尝试在1秒内提升200个线程,然后尽可能快地执行200*100=20000个请求(或者至少这是我的行为)在我的服务器上遇到),每次 200 个请求块。这意味着服务器可能(实际上确实)每秒接收超过 200 个请求。我想要重现的行为是每秒恰好有 200 个请求。我不在乎它们是否在第二个窗口开始时聚集在一起,或者它们以随机方式出现,分布在第二个窗口中(每 5 毫秒一个,或其他)。所以我尝试了一些定时器,但没有成功。我试过:
Constant Timer线程延迟为 5 毫秒。计算一下,它应该每 5 毫秒发送一个请求,并且有 200 个线程,它应该每秒发送 200 个请求 (200*5 = 1000ms)。Constant Throughput Timer目标吞吐量为 12000.0。也许我错了,但这应该是每分钟的样本,所以每 60 秒 200 个请求是 200*20 = 12000(如果样本是一个请求)。我不理解“计算吞吐量基于”选项,我尝试了“仅此线程”(哪一个?)和“所有活动线程”。无论如何,这些配置都没有达到我的需要。
您可以通过使用恒定吞吐量计时器来实现此目的。
恒定吞吐量计时器只能暂停线程以达到指定的“目标吞吐量”值,因此请确保提供足够的虚拟用户(线程)来生成所需的“每分钟请求数”值。
因此,要获得200 个请求/秒,您必须考虑以下事项:
确保您的线程组中有足够数量的虚拟用户(线程)。
吞吐量计时器在“分钟”级别上相当准确,您需要“等待”60 秒才能按预期开始工作。确保您有足够的持续时间。
使用恒定吞吐量计时器test plan level。
使用“计算吞吐量基于”值作为“所有活动线程”。
另外,请记住,测试计划中的其他元素(例如,其他计时器、指定线程的数量等)可能会影响获得所需的吞吐量。
因此,您可以遵循以下技术:
首先,使用以下配置并观察吞吐量结果。
Numbers of Threads : 200
Ramp-up period : 60 seconds
Loop Count : Check "Forever".
Duration (seconds) : 360
Run Code Online (Sandbox Code Playgroud)
如果不符合预期(低于预期),则逐渐增加Number of threads并观察吞吐量结果是否增加。
您必须增加线程数,直到获得所需的吞吐量。
通过这样做,如果您无法获得所需的吞吐量(200 个请求/秒),那么您的应用程序每秒无法处理超过 200 个请求。
| 归档时间: |
|
| 查看次数: |
10015 次 |
| 最近记录: |