【问题标题】:JMeter set variable to random optionJMeter将变量设置为随机选项
【发布时间】:2014-03-28 10:31:09
【问题描述】:

我一直在使用 JMeter,我知道 __Random__RandomString 函数。我需要选择一个随机选项并将其存储在一个变量中,因为它将用作多个调用的参数路径的一部分。例如:

http://www.example.com/pets/{random option such as: cat, dog, parakeet}/

我尝试过像这样简单的操作,我将变量${query} 设置为onetwothree,使用随机控制器将用户定义的变量作为子变量。这似乎应该工作,但我总是将${query} 设置为three

任何见解或想法都会受到欢迎。在此先感谢大家。

【问题讨论】:

标签: jmeter


【解决方案1】:

看起来这不是 Jmeter 原生的功能。我正在使用一个插件来实现这个目标。 http://jmeter-plugins.org/wiki/Functions/ 实现了一个新函数,可让您从字符串列表中选择一个随机字符串。从他们的网站:

${__chooseRandom(red,green,blue,orange,violet,magenta,randomColor)}

【讨论】:

    【解决方案2】:

    另见:

    Get random values from an array

    然而,这需要在预处理器中编写一些代码。

    【讨论】:

      【解决方案3】:

      您可以使用Beanshell Pre Processor生成随机值

          String[] query = new String[]{"cat", "dog", "parakeet"};
          Random random = new Random();
          int i = random.nextInt(query.length);
          vars.put("randomOption",query[i]);
      

      之后在你的HTTP Request

      http://www.example.com/pets/${randomOption}
      

      作为String[] query = new String[]{"cat", "dog", "parakeet"}; 的替代方案,您可以使用Beanshell 预定义的Parameters 节。

          Random random = new Random();
          int i = random.nextInt(query.length);
          vars.put("randomOption",bsh.args[i]);
      

      【讨论】:

      • 我喜欢这个,但是这会给测试增加多少性能损失?我们正在生成 140 个线程来测试我们的预生产服务器,这就是我选择不使用 javascript 的原因。
      • 找了一个月左右,这是我能找到的最好的答案。它运行良好,看起来我使用 Beanshell 预处理器的调用似乎需要更长的时间,但这就是你付出的代价。
      • Beanshell 是完成工作的最简单方法。如果您需要性能,您可能希望考虑使用 Groovy 语言的 JSR223 Sampler,甚至编写自己的 JavaRequest Sampler。有关详细信息,请参阅脚本扩展性能比较评估:blazemeter.com/blog/…
      【解决方案4】:

      我知道这是一篇旧帖子,并且有一个新功能可用:

      __RandomFromMultipleVars(animalCat|animalDog|animalParakeet, query)
      

      你需要定义变量的地方:

      animalCat=cat
      animalDog=dog
      animalParakeet=parakeet
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多