Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JMeter线程、爬升和循环的正确用法是什么?_Jmeter - Fatal编程技术网

JMeter线程、爬升和循环的正确用法是什么?

JMeter线程、爬升和循环的正确用法是什么?,jmeter,Jmeter,我的印象是我使用了3种设置;线程,爬升和循环,在Y(爬升)秒内模拟X(线程)用户数/线程数,并在Z(循环)次数内执行这些操作。例如,我希望在1小时内每1秒有10个用户,这相当于10个线程、1秒爬升和3600个循环 但是:) 其他人似乎用不同的方式。。。正如在中一样,如果他们想要与上面相同,他们会将线程设置为36000,上升到3600秒,循环设置为1 我倾向于认为第一种方法是正确的,基于#a它读起来更好:)和#b为什么你会有一个以秒为单位的设置来指示测试的长度 有人能给我一个明确的答案吗?或者这两

我的印象是我使用了3种设置;线程,爬升和循环,在Y(爬升)秒内模拟X(线程)用户数/线程数,并在Z(循环)次数内执行这些操作。例如,我希望在1小时内每1秒有10个用户,这相当于10个线程、1秒爬升和3600个循环

但是:)

其他人似乎用不同的方式。。。正如在中一样,如果他们想要与上面相同,他们会将线程设置为36000,上升到3600秒,循环设置为1

我倾向于认为第一种方法是正确的,基于#a它读起来更好:)和#b为什么你会有一个以秒为单位的设置来指示测试的长度


有人能给我一个明确的答案吗?或者这两个选项都合理吗?

首先,第二个示例中的36000个线程似乎非常高!报告使用1000的人。因此,第二种情况甚至可能不起作用

你描述的两种情况并不完全相同,我不确定这两种情况是否正是你想要的

在第一种情况下,10个线程加上1秒的爬升意味着所有10个线程将在1秒后使用。然后,10个线程将并行执行3600次操作。您没有提到任何意味着测试将花费1小时的内容,它将花费3600次循环所需的时间。要使它花费一个小时(假设操作所花费的时间不超过1秒),您需要在循环中使用一个恒定吞吐量计时器之类的东西来控制循环的速度,从而使它花费一个小时

在第二种情况下,10个线程将在
second#1
中创建并开始执行循环,另外10个线程将在
second#2
中创建,一直持续到1小时(
second#3600
)。如果操作花费的时间超过一秒钟,那么在任何一秒钟内运行的线程都将超过10个


第一种方法更加清晰。第二个问题是对提升的滥用;它不是用来提供高达360000个线程的爬坡,而是用来尝试和安排10个线程同时运行。

所以一次应该只有10个用户执行该操作?或者在测试过程中执行操作的用户数量是否会增加(10秒#1,20秒#2…)文档中指出,如果您需要5个线程和5秒的爬升时间,那么它将在5秒的爬升时间内扩展线程的创建和执行,在这种情况下,每秒1个。关于注释“第二个示例中的第一个36000个线程似乎非常高”。。。这(根据文档)意味着Jmeter将36000个线程除以3600的渐变,这相当于每秒10个线程。。。这就是我的观点,为什么有人希望这样做,而不是使用“Loop”变量来复合每秒10个线程的简单任务。关于评论“您没有提到任何东西,这意味着测试将花费1小时,它将花费3600次循环所需的时间”。。。正确,但“大致”如果jmeter每1秒触发10个线程3600次(并在1秒内完成),则3600 x 1秒=1小时。“第一种方法更清晰。”。。。我同意,但我需要为此提供一个很好的论据:)1)36000的爬升意味着测试将爬升到36000个线程,但它不会,因此测试对以后维护它的任何人都是误导性的2)无法保证在第二种情况下任何时候只有10个线程运行,它可能是10、20、30。。。“不能保证在第二种情况下,每次只能运行10个线程”……这两种情况都不能保证,因为正如您所说,每批线程可能需要比爬升时间更长的时间才能完成,因此您可能会有更多线程运行,而不是“线程”设置所指示的线程。