我应该如何计算Jmeter中的加速时间

时间:2016-08-20 06:48:12

标签: performance jmeter

这里有很多问题/答案可供理解Ramp up time,但我想为我的测试用例详细介绍。

测试用例:在主页上每5分钟预计有1200个用户。所以它将像5个用户/秒。

我设置了以下thread properties

No. of Threads : 1200

Ramp-up Time - ? [I am not sure what to set]

Loop count - Forever

Scheduler - 300 Seconds[5 Minutes]

有人可以帮我设置ramp up time我的测试用例吗?我在我的本地机器上运行测试。

我想检查服务器可以在5分钟内处理多少用户。我们的期望是1200 users

3 个答案:

答案 0 :(得分:7)

根据您的测试用例持续时间设置,我认为您正在混淆主题和请求

简而言之:对于此方案,您必须将Ramp-up用作 240 seconds

让我详细描述一下你:

加速是所有用户到达测试应用服务器的时间。

采样器模拟了

请求,但线程用户的模拟。

请注意 - 请求的总数与吞吐量相关,而活动线程的数量则相关执行相同的活动与并发

有关

根据您的要求,我假设您要衡量与请求/秒相关的吞吐量,而不是每秒用户数。为此,您可以在测试计划级别使用Constant Throughput Timer

常量吞吐量计时器允许您维护服务器的吞吐量(requests/sec)。此处请求采样器线程是使用采样器请求服务器的用户/客户端。

您可以同时使用Thread GroupUltimate Thread Group来实现此目的。

据我所知,使用Constant Throughput计时器的哪种类型的Thread组无关紧要,在结果测试结束时,您将获得所需的吞吐量您在恒定吞吐量计时器中提到的,即如果您在恒定吞吐量计时器中提到 1200 / min “基于”值计算吞吐量为“所有活动线程” 并且您的线程组中有3个请求(采样器),然后JMeter将以每个采样器仅生成 6.6个请求/秒的方式管理请求,即1200 / min被分割在3个请求中,无论您使用 Ultimate Thread Group 还是线程组,都无关紧要;吞吐量计时器对所有类型的线程组都以相同的方式工作。

现在根据您的要求:(使用线程组):

No. of Threads : 1200

Ramp-up Time - 240 (Since you want 5 users per second, 1200/5= 240)

Loop count - Forever

Scheduler (Duration) - 780 Seconds [13 Minutes]

重要:

  

线程组配置与您已经提到的相同。线程数将是您要放置的客户端负载(in you case it's 1200),duration : (240+300+240)loop : foreverramp-up : 240是的,当您加速时,即在第一分钟通常您线程启动时获取更多请求,这是正常行为。 要测试您的场景运行5分钟,您应该测试13 minutes。排除测试的前4分钟和最后4 min,因为这是测试和服务器的预热时间,而上一个4 min是预热期。

现在根据您的要求:(使用Ultimate Thread Group):

Start Thread Count: 1200
Initial delay, sec: 0
Startup, sec: 240 (I assume you want 5 users come to your application for requesting expected samples per second)
Hold Load for: 300 sec (Since you required 5 minutes to test for 1200 users)
Shutdown Time, sec: 240

您可以这样设置:

enter image description here

不要将主题号请求数混淆,每个主题将在字段保持加载中创建多个秒请求>

答案 1 :(得分:3)

Rampup是用户到达您的应用程序的速度。 您输入的数字意味着一旦到达,所有线程都已启动。 最微小的是,用户到达的速度越快。 所以没有人可以为你解答,你需要分析你的流量。

关于线程数,1200个线程可能不是好数字,因为1200个用户可以缓慢或快速地在应用程序上导航。 您需要的是添加一个恒定吞吐量计时器来控制您将达到的每秒事务数量。

答案 2 :(得分:2)

您应该使用标准集中提供的Ultimate Thread Group插件。 要保持并发性,配置应如下所示:

Start Thread Count: 1200
Initial delay, sec: 0
Startup, sec: 60
Hold Load: 180
Shutdown Time, sec: 60

Ultimate Thread Group Access denied for user 'root'@'localhost' (using password: NO)

此处1200 threads所有60 sec将在Startup time 180 sec内生成(加速时间)。下一个60 sec将有1200个线程处于活动状态,之后那些线程将在下一个Hold Load内关闭。

因此,测试的整体持续时间为300秒。在整个transactions per second时间(180秒)内,请求将循环播放。 这个终极线程组将为您提供对线程的更多控制。

现在,如果您想控制Constant Throughput Timer的速率或要执行的样本数,您可以使用"Thread Group"。常量吞吐量计时器将允许您控制要发送的请求流。默认col1仅控制用户或线程的生成方式。它不能控制请求命中率的命令率。因此,您可以使用“常量吞吐量计时器”来控制您的每秒请求数。有关详细信息,您可以浏览JMeter Ultimate Thread Group