【问题标题】:Use same random variable in all threads在所有线程中使用相同的随机变量
【发布时间】:2021-11-26 22:44:46
【问题描述】:

我有测试计划:

线程组(用户 3,循环 2) 随机变量 HTTP 请求

我希望仅在每个循环中更改变量,因此在每次迭代下,所有三个线程都应该发送相同的值。

所以我想要这样的东西:

请求随机变量 = X

请求随机变量 = X

请求随机变量 = X

请求随机变量 = Y

请求随机变量 = Y

请求随机变量 = Y

我尝试了很多解决方法,但找不到合适的解决方案。

附:我不想从文件中读取变量。我需要生成它们

【问题讨论】:

    标签: jmeter load-testing stress-testing


    【解决方案1】:

    无论你“想要”什么,最好的选择是在setUp Thread Group 的某处预先生成随机值并将其写入文件,然后在“主”线程组中使用CSV Data Set Config 来读取这些值。

    但是,如果这仍然不是您“想要”的东西,这里还有另一种“解决方法”,希望它对您来说足够“合适”:

    1. 将JSR223 PreProcessor 添加为您“想要”使用随机变量参数化的请求的子项

    2. 将以下代码放入“脚本”区域:

      if (props.get('foo_' + vars.getIteration()) != null {
          props.put('foo_' + vars.getIteration(), org.apache.commons.lang3.RandomUtils.nextInt(0, 100))
      }
      
    3. 在需要时使用以下__groovy() function 引用“生成的”随机值:

      ${__groovy(props.get('foo_' + vars.getIteration()),)}
      

    演示:

    【讨论】:

    • 好的,谢谢。我已将其标记为答案。我找不到任何其他解决方案。我以两种方式运行测试: 1. 正如你所说,我创建了 .csv 文件并从那里读取变量。 2.我添加了Counter元素,所有线程都相同,每次迭代更新一次
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多