1

我正在研究JMeter并试图理解这些概念。令我特别困惑的是线程与控制器。
我知道线程代表用户,控制器是采样器的容器并确定它们的执行。
但是线程和控制器的关系是什么?线程是否执行作为线程组子级的所有控制器?
所以一个线程(为了简化)调用每个控制器,然后触发样本?但是例如在我的线程组中指定循环计数为 20 和使用While 控制器触发请求 20 次
之间有什么区别? 任何帮助清除这个?

4

2 回答 2

1

你很好理解,一个线程代表一个用户,一个控制器是采样器的容器并决定它们的执行。

是的,它是否执行(如果控制器在 IfController 中)所有子控制器。

是的,一个线程(为了简化)调用每个控制器,然后依次触发样本。

但是例如在我的线程组中指定循环计数为 20 和使用 While 控制器触发请求 20 次之间有什么区别?很简单,很多人加了一个 WhileController,而只设置循环计数就足够了。

如果要在主迭代中重复一组样本,通常需要一个 While 控制器。

阅读JMeter 组件参考测试计划元素

另请阅读范围规则以了解配置元素的应用方式。

于 2012-11-20T21:13:32.747 回答
1

它就像在 Java 中一样。线程表示执行线程控制器代表控制结构。因此,如果您想决定对测试应用程序施加多少压力,主要是线程数。每个线程按顺序执行其子线程。如果您想多次测试同一件事,因为控制器是您的伴侣,如果您想并行执行此操作,则需要线程(具有给定线程数的线程组)。


当您想要参数化您的测试时,您需要了解的一个主要区别就是图片。

例如,您有一个 Web 应用程序,并且有 100 个演示用户。每个用户只能登录一次。这种情况下你需要一些东西,告诉你的测试线程,他们应该使用哪个用户。这通常是一个CVS 数据集,它可以以某种方式使用,线程可以为自己获取一行,并且他们使用它。您也可以说,当 CSV 中没有更多行时,您的测试应该停止。同样的概念(在 for 循环中为每次迭代提供一个数据)更难用 for 循环或其他控制器实现。

于 2012-11-21T09:47:27.963 回答