我们用1个用户以及更多用户执行JMeter Test时的测试持续时间

时间:2014-10-03 09:57:26

标签: performance testing jmeter load-testing

我对执行 JMeter测试场景的持续时间感到担忧。

事实上,如果我们在1小时内对1位用户执行手动测试,我们会发现3位用户的持续时间相同或更多。 但是,使用 JMeter 测试时,1位用户的持续时间将乘以用户数。

在使用此工具编写脚本时,我注意到JMeter始终等待请求的响应传递给另一个请求。这就像我们有1个用户在做多个用户的工作。

是否有任何机构对此问题有解释?
我们是否可以将JMeter配置为像// @

中的x用户一样执行

2 个答案:

答案 0 :(得分:0)

在理想情况下,如果您使用1位用户测试您的网站,则所有操作集都会在1小时内完成。如果您再添加100个用户 - 仍然是一小时,1000个用户 - 1小时。

在现实世界中,服务器响应时间随着并发线程数的增加而增加。但它不是像

那样的东西
  • 1位用户 - 平均响应时间10ms
  • 2位用户 - 20 ms
  • 3位用户 - 30 ms

但是

  • 1位用户 - 10毫秒
  • 2位用户 - 10毫秒
  • 3位用户 - 10毫秒
  • 10位用户 - 11 ms

性能测试的整个想法是确定服务器负载的上限,并确定在负载下发生的瓶颈和问题,以便您可以声明:使用此硬件和此配置,应用程序能够服务500并发用户没有严重的延误。如果1000个用户的响应时间将超过15秒。

关于线程,JMeter线程启动,逐个执行样本以定义循环和退出的数量。它适用于每个独立的线程。基本吞吐量控制可以通过加速和循环计数完成(参见详细信息的Thread Group文档)

可以使用以下测试元素完成更高级的负载方案定义:

答案 1 :(得分:0)

取决于您如何模拟用户..

每个线程都会等待响应,但是用户由不同的线程表示,并且线程不会等待彼此完成样本,它们是独立的。

如果您使用线程组中的线程来表示用户(这是预期用途),则线程将同时启动并独立运行,因此您应该看到3个用户在一小时内完成,就像手动测试一样。如果没有发生这种情况,那么您应该在单线程和多线程运行期间检查运行jmeter的客户端上使用的资源。或者瓶颈可能在传输中(即带宽)。到目前为止你所确定的只是瓶颈在服务器之前,你需要确定它在哪里。

您也可以为每个模拟用户创建一个线程组。如果是这种情况,您可以将组设置为连续或并发运行。此设置位于树顶部的“测试计划”元素上。你想要并发,所以不要连续地运行线程组'。

因此,它归结为您如何模拟用户。