场景是我们在执行期间生成令牌,该令牌将在其他线程组中进一步使用。
赞:
在第一个线程组中,将为100个用户生成令牌。 在第二个线程组中,将有50个用户使用令牌。 在第三个线程组中,接下来的50个用户将使用令牌。
查询是: 1.我们如何保存在运行时生成的令牌? 2.如何在第二个线程组上使用前50个令牌,而在第三个线程组上使用其他50个令牌?
答案 0 :(得分:1)
如果在随后的请求中需要使用由请求生成的令牌,则使用1个线程组而不是很多。
不同ThreadGroup中的线程绝对没有关系,被视为不同的用户,因此尽管您可以使用InterThreadCommunication之类的元素来做到这一点,但不要这么做。
如果您使用相同的线程组,则只需使用正确的提取器来生成变量,然后使用$ {varName}来使用它们。
答案 1 :(得分:0)
您可以通过将值转换为JMeter属性来在线程组之间传输值。根据文档:
属性与变量不同。变量是线程本地的; 属性是所有线程共有的,需要使用__P或__property函数进行引用。
因此,如果您需要将某些内容从一个线程组转移到另一个线程组:
使用__setProperty()函数将值转换为JMeter属性,例如:
${__setProperty(foo,bar,)}
完成后,就可以使用__P()之类的函数来访问该值了,
${__P(foo,)}
演示:
如果不同线程的值不同-您可以将上述方法与__threadNum()或__counter()函数结合使用,以使用当前虚拟用户号码或下一个递增的号码作为前缀或后缀功能。