JSR233 Sampler无法将掩码密码值写入用户自定义变量问题
解决JMeter中JSR233 Sampler设置变量a2为掩码值的问题
你遇到的问题是因为直接将字符串'a2n'赋值给了变量a2,而非获取a2n变量存储的实际掩码值。要让a2存储真实的掩码结果,需要使用JMeter的vars对象正确操作线程变量:
正确的Groovy代码示例
假设你已经生成了掩码值并存入a2n,只需添加一行代码将a2n的实际值赋值给a2:
// 生成掩码密码并存入a2n(你的原有代码) def originalPwd = vars.get("a2") def maskedPwd = "*" * originalPwd.length() vars.put("a2n", maskedPwd) // 将a2n的实际值赋值给a2,覆盖原变量 vars.put("a2", vars.get("a2n"))
如果不需要保留a2n变量,也可以直接生成掩码后直接覆盖a2:
def originalPwd = vars.get("a2") def maskedPwd = "*" * originalPwd.length() vars.put("a2", maskedPwd)
关键说明
vars是JMeter提供的线程变量操作对象,vars.get("变量名")用于获取变量的实际值,vars.put("变量名", 值)用于设置变量值。- 错误的写法(导致a2存字符串'a2n')通常是类似
vars.put("a2", "a2n"),这是把字面量字符串存入变量,而非读取a2n的内容。
修改后再运行,Debug Sampler中a2就会显示正确的掩码值**********了。
内容的提问来源于stack exchange,提问作者Nelza
相关产品推荐
相关产品推荐

