如何在JMeter中生成长度递增的随机字符串?
解决方案
问题1:Counter作为__RandomString长度参数报错
Counter组件生成的变量默认是字符串类型,而__RandomString的第一个参数要求传入整数。解决方法有两种:
- 用
__int()函数将Counter的值转为整数:${__RandomString(${__int(${counter},)},abcdefjhijklmnopqrtsuvwxyz1234567890,nameOfOutput)} - 若使用JMeter 5.4及以上版本,可直接在Counter组件的配置中勾选「Store as integer」选项,将Counter的值直接存储为整数类型,无需额外转换。
问题2:JSR223 Sampler报错MissingPropertyException
报错信息中的长字符串是你生成的随机字符串内容,出现该错误是因为你在JSR223脚本中错误引用了变量。Groovy会把未加引号的字符串视为脚本内的变量名,而这个随机字符串并不是已定义的脚本变量,因此抛出「找不到属性」异常。
正确的变量引用方式有两种:
- 使用
vars.get()方法获取JMeter线程变量(推荐,性能更优):def randomStr = vars.get("nameOfOutput") // 后续逻辑中使用randomStr变量 - 用双引号包裹变量引用:
def randomStr = "${nameOfOutput}" // 后续逻辑中使用randomStr变量
禁止直接写nameOfOutput(不加引号也不用vars.get()),这会导致Groovy误解为脚本内部变量。
内容的提问来源于stack exchange,提问作者giovandrea
相关产品推荐
相关产品推荐

