Multithreading JMeter:如何利用运行时在多个线程组上生成的令牌

Multithreading JMeter:如何利用运行时在多个线程组上生成的令牌,multithreading,jmeter,runtime,token,Multithreading,Jmeter,Runtime,Token,场景是我们在执行期间生成令牌,该令牌将进一步用于其他线程组 比如: 在第一个线程组中,将为100个用户生成令牌。 在第二个线程组中,50个用户将使用令牌。 在第三个线程组中,接下来的50个用户将使用令牌 查询是: 1.我们如何保存在运行时生成的令牌? 2.如何在第二个线程组上使用前50个令牌,在第三个线程组上使用其他50个令牌?如果您需要在以下请求中使用由请求生成的令牌,则使用1个线程组,而不是多个线程组 不同ThreadGroup中的线程完全没有关系,它们被视为不同的用户,因此,尽管您可能会使

场景是我们在执行期间生成令牌,该令牌将进一步用于其他线程组

比如:

在第一个线程组中,将为100个用户生成令牌。 在第二个线程组中,50个用户将使用令牌。 在第三个线程组中,接下来的50个用户将使用令牌

查询是: 1.我们如何保存在运行时生成的令牌?
2.如何在第二个线程组上使用前50个令牌,在第三个线程组上使用其他50个令牌?

如果您需要在以下请求中使用由请求生成的令牌,则使用1个线程组,而不是多个线程组

不同ThreadGroup中的线程完全没有关系,它们被视为不同的用户,因此,尽管您可能会使用类似的元素,但不要这样做


如果您使用相同的线程组,那么只需使用正确的提取器生成变量,然后使用${varName}使用它们。

您可以通过将值转换为JMeter属性在线程组之间传输值。根据文件:

属性与变量不同。变量是线程的局部变量属性对于所有线程都是通用的,需要使用_P或_属性函数进行引用

因此,如果您需要将某些内容从一个线程组转移到另一个线程组:

  • 使用以下函数将值转换为JMeter属性:

    ${__setProperty(foo,bar,)}
    
  • 完成后,可以使用如下函数访问值

    ${__P(foo,)}
    
  • 演示:


    如果不同线程的值不同,则可以将上述方法与或函数组合,以便使用当前虚拟用户号或下一个递增的数字作为函数的前缀或后缀

    谢谢大家!!第一个线程组的响应可以作为其他线程组的输入。