JMeter循环计数

use*_*636 16 jmeter

我想运行带有多个并发线程的JMeter测试,每个线程每10秒发送一次请求.

这些是我的线程属性.

线程数:10

加速期:10

循环次数:1

结果:10个请求分为10秒,所以每秒一个请求,正是我想要的.

现在我想运行此测试3次(30秒).所以我将Loop Count设置为3.

但结果是:10秒内有30个请求.这很奇怪,因为我希望运行30秒并获得每秒1个请求.

如何使用JMeter实现这一目标?

我的最终目标是长时间运行此测试并增加线程数.

如何用JMeter做到这一点?

Tod*_*Zho 14

我今天这个研究,并得出这样的结论:循环计数的设置是一个完整的用词不当.即使您的测试计划已连续检查运行线程组,它实际上也不会按任何时间顺序循环.它做的是乘以你的线程组并同时运行所有的倍数.因此,Ramp-Up Period只被尊重一次,而不是每个"循环"一次 - 没有时间循环!

有关图表的解释可以在这里找到:http://pro-programmers.blogspot.com/2009/07/jmeter-max-threads-with-rump-up-and.html


luc*_*uca 6

根据我对 Jmeter 的经验,如果您设置

线程数:10

提升期:10

循环次数:1

您在 10 秒内创建 10 个线程,因此您每秒创建 1 个线程。循环次数为 1 时,您可以重复此操作一次。 但是,如果您增加循环计数,我认为您不会创建新线程而是在线程组中重复 jmeter 元素过程,因此请求之间的时间不是 30 秒,而是 10 多秒。如果你想在 30 秒内创建 30 个线程,你必须设置

线程数:30

提升期:30

循环次数:1

如果你想以 10 秒的速度重复 10 个线程 3 次,你应该插入一个 Timert->Constant Timer,线程延迟为 10000 ms,这样你就可以在 30 秒内获得 30 个请求(你真的应该考虑任务)


Ali*_*lik 5

似乎在测试中控制吞吐量的最简单方法是使用标准的"开箱即用" 恒定吞吐量计时器或来自jmeter-plugins集合的自定义吞吐量整形计时器.


在这两种情况下,测试的结构将如下所示:

Thread Group
Number of Threads = N
Ramp-up Period = N
Loop Count = 1
    Constant Throughput Timer
    Target Throughput = 60
    Calculate Throughput based on = "all active threads in current thread group"
    . . .
    Loop Controller
    Loop Count = M
        . . .
        HTTP Request
        . . .

这里Loop Controller定义了迭代次数.


看起来两个定时器都不是绝对精确的,两者都有一点不同的可配置性:

CTT

TST


这里还有一个如何改变吞吐量的实际例子.


ZOU*_*uan 5

参考链接:http ://www.testingjournals.com/5-must-know-features-thread-group-jmeter/

场景1:

number of threads = 20
Ramp-up period =100
loop count=1
Run Code Online (Sandbox Code Playgroud)

每 5 秒 (100/20) 1 个请求/线程将命中服务器,执行将以一次 1 个请求开始

场景2:

number of threads = 20
Ramp-up period =100
loop count=4
Run Code Online (Sandbox Code Playgroud)

每 5 秒(100/20) 4 个请求/线程将命中服务器,一旦第一个请求/线程完成,它将通过执行相同的 HTTP 请求启动第二个循环,执行持续到所有 20 个线程执行所有 HTTP 请求 4 次