You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter中Beanshell预处理器生成随机数无法替换问题求助

JMeter随机数变量未替换问题解决

你的Beanshell Preprocessor脚本存在语法错误,导致random变量未被正确初始化,所以请求中的${random}无法被替换。以下是两种解决方法:

方法1:修正Beanshell脚本

原脚本的问题在于vars.put()的第二个参数需要字符串类型,但${__Random(1,1001)}会被解析为整数,类型不匹配导致脚本执行失败。修改为以下两种写法均可:

写法一:将随机数转为字符串

vars.put("random", String.valueOf(${__Random(1,1001)}));

写法二:直接用Java Random类生成(更稳定)

import java.util.Random;
Random randomGenerator = new Random();
int randomValue = randomGenerator.nextInt(1000) + 1; // 生成1到1000的随机整数
vars.put("random", String.valueOf(randomValue));

方法2:跳过Beanshell,直接在请求中使用__Random函数

如果不需要复用同一个随机数,可直接在请求体中调用__Random函数,无需额外的Preprocessor:

{
  "firstName": "Jmeter",
  "lastName": "LoadTest",
  "userName": "Jmeter${__Random(1,1001)}",
  "password": "pass8909",
  "primaryEmailAddress": "Jmeter${__Random(1,1001)}@gmail.com",
  "address": "",
  "city": "",
  "province": "",
  "postalCode": "",
  "country": ""
}

若需要确保userName和primaryEmailAddress使用同一个随机数,优先选择方法1,这样请求内的${random}会引用同一值。

内容的提问来源于stack exchange,提问作者Sarada Akurathi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:30:44