我没有清楚地理解"线程组"的含义是什么?在JMeter。这是否意味着所有测试(Java请求等)都属于在一个线程中运行的某个线程组,或者该线程组中的每个测试都在一个单独的线程中运行?我无法通过JMeter文档或Google搜索来清楚地了解这一点。
答案 0 :(得分:7)
有关说明,请参阅:
thread group
是执行相同方案的一组线程。设置配置中的迭代次数。
一旦每个线程的迭代次数已经过去,线程行为就会根据加速定义并销毁。
请注意,从版本2.8开始,您将能够延迟创建线程,直到线程必须开始工作,这将适用于使用非常短暂的线程和许多线程的测试。
线程组可以看作是一组虚拟用户,但不一定如此。根据您的测试方法,它可能是别的东西。
答案 1 :(得分:5)
据我所知(我想知道的),JMeter线程组中的所有操作每个线程和迭代按顺序运行一次。因此,这意味着线程组中的每个操作都不会在其自己独立的线程集中运行,但它会将每个线程与其线程组中的其他操作共享。
例如,
如果我们已安排此线程组线程组1在3个线程中运行,那么会发生什么,
以前我不确定这些操作中的每一个是否都在自己独立的线程上运行。
答案 2 :(得分:1)
线程=模拟用户。
所以线程组=用户。
使用比默认线程组更多的控制权来查看jMeter Plugins thread group controllers。
答案 3 :(得分:0)
为了进一步贡献我自己的调查(为了清晰和完整,我希望):
总之,ThreadGroup每个用户都有一个线程,它用于运行该组中的所有测试,适用于所有循环。
在包含10个用户的两个循环中都是如此,其中我的测试包含以下内容:
System.out.println("MyTest#testSearchNodeByNodeNameExactMatch: MyTest="
+this + "(" +System.identityHashCode(this) +")"
+", thread=" +System.identityHashCode(Thread.currentThread()));
可以使用(假设println输出写入thread-output.2.txt)来汇总日志:
grep MyTest#test thread-output.2.txt | awk -F ', ' '{print $2}' | sort | uniq