【问题标题】:How can we pass random values from the selected values in jMeter?我们如何从 jMeter 中的选定值中传递随机值?
【发布时间】:2014-11-26 08:09:05
【问题描述】:

我想将一些参数传递给我的请求正文。我不想发送随机字符串。但我需要从选定值中传递随机值。前任;我有 5 个值,比如 value1、value2、value3、value4、value5。我需要在这五个值中传递随机值。我怎样才能做到这一点?有什么建议请

【问题讨论】:

标签: random jmeter performance-testing


【解决方案1】:

简单的方法

您可以通过JMeter Plugins 使用chooseRandom 功能

艰难的路

使用Beanshell PreProcessor 获取随机值如下:

  1. 添加一个 Beanshell PreProcessor 作为请求的子项,您需要随机化哪个参数
  2. 将您的value1,value2,value3,value4,value5 放入预处理器的“参数”输入中
  3. 将以下代码放入预处理器的“脚本”区域

    String[] params = Parameters.split(",");
    Random random = new Random();
    String randomValue = params[random.nextInt(params.length)];
    vars.put("randomValue", randomValue);
    
  4. 在需要时将生成的值称为${randomValue}

请参阅以下参考信息

  1. 简单方法:Installing JMeter Plugins
  2. 辛苦了:How to use BeanShell: JMeter's favorite built-in component

【讨论】:

  • 它在标准集中可用,所以 JMeterPlugins-Standard-1.2.0.zip 应该足够了。当前插件版本 (1.2.0) 的直接 URL 是 jmeter-plugins.org/downloads/file/…
  • 确保在 JMeter 安装的根目录中提取它。或者,仔细检查 JMeterPlugins-Standard.jar 文件是否存在于 /lib/ext 文件夹中。需要重新启动 JMeter,以便 JMeter 可以选择插件。无需更多配置,新功能在内置功能所在的同一位置可用。
  • 直接在请求中使用
  • 每次调用函数都会返回一个随机值。
  • 没错,但我在两个请求中都需要相同的值。那么有没有办法将返回值存储在用户定义的变量中并在两个请求中使用该变量。
【解决方案2】:

假设您有一个变量 foo,它可以是 a bc,并且您希望采样器从该集合中选择一个随机值。

创建用户自定义变量 foo1=a foo2=b foo3=c

然后,在您的 http 请求默认值中使用以下内容:

${__RandomFromMultipleVars(foo1|foo2|foo3)}

瞧,统一随机选择,无需脚本或插件

编辑:如果您使用 javascript,请考虑以下单行: ${__javaScript(Array("a"\, "b"\, "c")[Math.floor(Math.random()*3)])} ^^ 创建一个包含三个元素的数组并从内部返回一个随机元素。没有变量,没问题:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多