【发布时间】:2014-11-26 08:09:05
【问题描述】:
我想将一些参数传递给我的请求正文。我不想发送随机字符串。但我需要从选定值中传递随机值。前任;我有 5 个值,比如 value1、value2、value3、value4、value5。我需要在这五个值中传递随机值。我怎样才能做到这一点?有什么建议请
【问题讨论】:
标签: random jmeter performance-testing
我想将一些参数传递给我的请求正文。我不想发送随机字符串。但我需要从选定值中传递随机值。前任;我有 5 个值,比如 value1、value2、value3、value4、value5。我需要在这五个值中传递随机值。我怎样才能做到这一点?有什么建议请
【问题讨论】:
标签: random jmeter performance-testing
简单的方法
您可以通过JMeter Plugins 使用chooseRandom 功能
艰难的路
使用Beanshell PreProcessor 获取随机值如下:
value1,value2,value3,value4,value5 放入预处理器的“参数”输入中将以下代码放入预处理器的“脚本”区域
String[] params = Parameters.split(",");
Random random = new Random();
String randomValue = params[random.nextInt(params.length)];
vars.put("randomValue", randomValue);
${randomValue}。 请参阅以下参考信息
【讨论】:
JMeterPlugins-Standard.jar 文件是否存在于 /lib/ext 文件夹中。需要重新启动 JMeter,以便 JMeter 可以选择插件。无需更多配置,新功能在内置功能所在的同一位置可用。
假设您有一个变量 foo,它可以是 a b 或 c,并且您希望采样器从该集合中选择一个随机值。
创建用户自定义变量 foo1=a foo2=b foo3=c
然后,在您的 http 请求默认值中使用以下内容:
${__RandomFromMultipleVars(foo1|foo2|foo3)}
瞧,统一随机选择,无需脚本或插件
编辑:如果您使用 javascript,请考虑以下单行:
${__javaScript(Array("a"\, "b"\, "c")[Math.floor(Math.random()*3)])}
^^ 创建一个包含三个元素的数组并从内部返回一个随机元素。没有变量,没问题:)
【讨论】: