“是什么意思?”;线程组“;用JMeter?

“是什么意思?”;线程组“;用JMeter?,jmeter,threadgroup,Jmeter,Threadgroup,我不清楚JMeter中“线程组”的含义是什么。这是否意味着所有测试(Java请求等)都属于在一个线程中运行的某个线程组,还是该线程组中的每个测试都在单独的线程中运行?我无法从JMeter文档或谷歌搜索中清楚地了解这一点。线程=模拟用户。 所以线程组=用户。 签出时的控制比默认线程组多得多。有关说明,请参阅: 线程组是执行相同场景的一组线程。设置配置中的迭代次数。 线程行为是根据爬升定义的,一旦每个线程的迭代次数过去,线程行为就会被销毁 请注意,从版本2.8开始,您将能够延迟线程创建,直到线

我不清楚JMeter中“线程组”的含义是什么。这是否意味着所有测试(Java请求等)都属于在一个线程中运行的某个线程组,还是该线程组中的每个测试都在单独的线程中运行?我无法从JMeter文档或谷歌搜索中清楚地了解这一点。

线程=模拟用户。
所以线程组=用户。
签出时的控制比默认线程组多得多。

有关说明,请参阅:

线程组是执行相同场景的一组线程。设置配置中的迭代次数。
线程行为是根据爬升定义的,一旦每个线程的迭代次数过去,线程行为就会被销毁

请注意,从版本2.8开始,您将能够延迟线程创建,直到线程必须开始工作为止,这将适用于使用寿命非常短的线程和许多线程的测试

线程组可以看作是一组虚拟用户,但不一定。它可以是其他的,这取决于您如何开发测试。

正如我所理解的(我想知道的),JMeter线程组中的所有操作在每个线程和迭代中按顺序运行一次。因此,这意味着线程组中的每个操作都不会在自己单独的线程集中运行,而是与线程组中的其他操作共享每个线程

比如说,

  • 螺纹组1
    • 操作1
    • 行动2
    • 行动3
如果我们计划这个线程组线程组1在3个线程中运行,那么会发生

  • 操作1、操作2和操作3将在线程1中执行
  • 操作1、操作2和操作3将在线程2中执行
  • 操作1、操作2和操作3将在线程3中执行。等

以前,我不确定这些操作是否都在各自独立的线程上运行。

只是为了在我自己的调查之后做出进一步贡献(为了清晰和完整,我希望):

  • ThreadGroup具有如上所述的请求/操作(在Manjula Weerasinge的摘要中),但也具有用户和循环配置
  • 线程组为每个用户创建一个线程。此线程(代表用户)在该循环中按顺序运行该线程组中的所有操作
  • 这些线程在所有循环中重复使用-也就是说:循环2也将作为n个不同的用户执行相同的操作集,但这将重用与循环1相同的线程 总之,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