我正在尝试使用BSF PreProcessor通过JavaScript生成输入。目前我只有BSF PrepProcessor和HTTP请求。我的请求主体是这样的。
{
"entity": {
"id": "${EnitityName}",
----
}
}
随机生成的字符串应该是ID的值,我已经参数化了我们如何正常地执行它。这不起作用。有人可以告诉我我哪里出错或任何替代方法。
答案 0 :(得分:1)
尝试使用__RandomString函数:(如果你想要一个随机字符串,则不需要JavaScript & BSF PreProcessor
)
{
"entity": {
"id": "${__RandomString(8,abcdefghiz,)}",
----
}
}
来自文档:
示例:
$ {__ RandomString(5)} 将返回一个包含5个字符的随机字符串 是否可读
$ {__ RandomString(10,abcdefg)} 将返回 从abcdefg集中挑选的10个字符的随机字符串,如 cdbgdbeebd或adbfeggfad,...
$ {__ RandomString(6,a12zeczclk,MYVAR)} 将返回从a12zeczclk集中挑选的6个字符的随机字符串 并将结果存储在MYVAR中,MYVAR将包含类似2z22ak的字符串 或者z11kce,......
答案 1 :(得分:0)
在BSF PreProcessor脚本中正确设置了${EnitityName}
变量,它应该被生成的值替换,给定BSF预处理器成功。
我建议检查 jmeter.log 文件是否有任何错误 - 它应该让你知道出了什么问题。您还可以共享您的BSF预处理器代码,以便其他人和我自己可以查看并建议修复。
实际上根据JMeter Best Practices建议使用JSR223 Elements,因此您应该切换到JSR223 PreProcessor和Groovy language,这是一个生成10个字符的随机字母数字字符串的示例代码并将值放入${EntityName}
JMeter变量中,如下所示:
vars.put("EnitityName",org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric(10))
参考文献: