我正在使用以下参数执行负载测试:
threads=4
ramp_up_period=90
loop_count=60
所以根据上面的数字,我的假设是四个线程中的每一个都将在22.25秒内创建,这个4个线程周期将重复60次 .
以下是负载测试总结报告:
根据JMeter手册的加速期是:
加速期告诉JMeter需要多长时间才能“加速”到所选的全部线程数 . 如果使用10个线程,并且加速时间为100秒,则JMeter将花费100秒来使所有10个线程启动并运行 . 每个线程将在上一个线程开始后10(100/10)秒开始 . 如果有30个线程且120秒的加速周期,则每个连续的线程将延迟4秒 .
因此,根据上述场景,使用上述线程组参数执行负载测试的大致总时间为:
TotalTime = ramp_up_period*loop_count
在我的情况下评估为90 * 60 = 5400 seconds ,但根据总结时间总计即将到来 74 seconds
JMeter版本是 2.11
.
我的理解是否有任何问题或JMeter存在问题?
2 回答
最初JMeter将启动1个线程,它将执行某些操作,它位于Loop Controller下 . 在30秒内第二个线程将加入,在30秒内第三个线程将启动,最后在第90个第二个线程将启动 .
从90秒开始,4个线程将执行“循环控制器下的内容” .
没有办法确定需要多长时间,特别是在负载下 . 如果您需要持续大约N秒的负载测试,则可以在Thread Group中的
Sheduler
下使用Duration
输入 .如果您想在某些条件满足时强行停止测试,还有2个选项:
使用Test Action采样器
使用Beanshell Sampler
示例Beanshell代码(假设在无限循环中以单独的线程组运行,并且在触发事件之间有合理的延迟)
如果你没有并发工作,TotalTime就是这样 . 在多线程环境中工作时,当线程3仍在启动时,线程1可能已经执行了第二次调用 .