如何在JMeter的URL参数中正确使用__chooseRandom函数
问题背景
我需要使用__chooseRandom函数在URI路径中嵌入随机选取的值。
遇到的问题
我无法正确使用__chooseRandom函数,按照示例编写后,实际得到的请求URL为https://google.com/search?q=&iter=${__chooseRandom(1111,2222,iter)},而非预期的https://google.com/search?q=1111或https://google.com/search?q=2222。
疑问
我应该如何修改JMeter脚本,才能让请求路径正确获取到chooseRandom生成的随机值,而非直接嵌入__chooseRandom的函数字符串?
不可用示例

解决方案
- 首先确认已安装Custom JMeter Functions插件:
__chooseRandom是第三方插件提供的函数,JMeter默认不自带,可通过JMeter Plugins Manager搜索安装该插件。 - 不要把函数放在引号、字符串拼接语句内,直接在请求参数/路径中写入函数即可。如果是在请求「参数」配置页设置q参数,直接在参数值栏填写
${__chooseRandom(1111,2222,iter)}即可,不需要额外加其他字符,同时不要勾选「编码」选项避免特殊字符被转义。 - 如果是在自定义脚本(如Groovy、BeanShell)中使用该函数,需要套一层
__eval完成解析,写法为${__eval(${__chooseRandom(1111,2222,iter)})}。 - 也可以提前添加用户定义的变量组件,在变量值中写入
${__chooseRandom(1111,2222,iter)},后续请求直接引用对应变量名即可。 - 调试时可添加Debug Sampler,查看
iter变量是否正确生成随机值,确认函数本身运行状态是否正常。
内容的提问来源于stack exchange,提问作者Craig
相关产品推荐
相关产品推荐

