根据您的测试用例和持续时间设置,我认为您对线程和请求感到困惑。
简而言之:对于这种情况,您必须将 Ramp-up 用作 240 seconds。
让我详细描述一下:
加速是所有用户到达您测试的应用服务器的时间。
请求由samplers模拟,而线程是用户的模拟。
请注意-请求总数与吞吐量有关,而活跃线程数执行相同的活动与并发有关。
根据您的要求,我假设您想要测量与 每秒请求数而不是每秒用户数相关的吞吐量。为此,您可以在测试计划级别使用Constant Throughput Timer。
恒定吞吐量计时器允许您维持服务器的吞吐量 (requests/sec)。这里的 requests 是 samplers。 线程是使用采样器请求服务器的用户/客户端。
您可以同时使用 "Thread Group" 或 "Ultimate Thread Group"。
据我所知,无论您使用哪种类型的线程组和恒定吞吐量计时器,在结果中的测试结束时,您都会获得所需的吞吐量您在恒定吞吐量计时器中提到的,即如果您在恒定吞吐量计时器中提到 1200/min,其中 “计算吞吐量基于” 值为 “所有活动线程” 并且您的线程组中有 3 个请求(采样器),那么 JMeter 将以一种方式管理请求,即每个采样器仅生成 6.6 个请求/秒,即 1200/分钟被划分在 3 个请求中,使用 Ultimate Thread Group 还是 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 : forever,ramp-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
你可以这样设置:
不要将线程数与请求数混淆,每个线程会在Hold Load for字段中创建多个请求数秒>.