【问题标题】:JMeter, pass value between Thread GroupJMeter,线程组之间传值
【发布时间】:2021-07-29 18:53:25
【问题描述】:

我正在研究的情况是:

  • ThreadGroup1(n 线程):
    • 生成特定值并将其存储在 UserDefinedVariable 表中的采样器(prodId,组中每个线程的值不同)。
  • ThreadGroup2(n 线程):
    • 可以检索 prodid 之一的采样器。

一些限制:由于在第一组中生成了 n 个 prodids,我希望第二组的每个线程只获得一个 prodids(例如 Group2: Thread1 采用 ProdID1,Thread2 采用 ProdId2;我不希望 thread1 和 thread2 都采用 prodId1)。
任何人都可以帮助我吗?
谢谢大家。

【问题讨论】:

    标签: java multithreading jmeter


    【解决方案1】:

    取决于你想要达到的目标:

    1. 如果您想简单地在线程组之间传递值 - 请在第一个线程组中使用 __setProperty()__threadNum() 函数组合,例如

      • 将 JMeter 变量转换为特定于线程的 JMeter 属性:

        ${__setProperty(prodId_${__threadNum},${prodId},)}
        
      • 要读取第二个线程组中的值,请使用__P() function 结合上述 __threadNum() 函数:

        ${__P(prodId_${__threadNum},)}
        

    2. 对于更复杂的场景,例如您希望在线程组 2 中保持某些线程执行,直到某个变量具有某些值或实现类似队列的集合 - 去Inter-Thread Communication Plugin

    【讨论】:

    • ThreadGroup1中生成的线程数与ThreadGroup2中生成的线程数相同吗?
    • 假设你有相同数量的线程 - 是的
    猜你喜欢
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多