在我的BSF预处理程序(语言javascript)中,我正在生成诸如
var totalCustomer = 2;
var data = { "customers": [] };
for(i=1; i<=totalCustomer; i++){
// in all iteration getting same value for ${__UUID}
var customer = {
"id": "${__UUID}"
}
data.customers.push(customer);
}
vars.putObject("data",JSON.stringify(data));
Run Code Online (Sandbox Code Playgroud)
我猜它只编译一次,然后在后续迭代中查找该值。
有没有什么办法可以产生不同的guid使用${__UUID}每次迭代?
${__UUID}用。。。来代替UUID.randomUUID().toString()。不要将 JMeter 变量和函数内联到脚本中,这不是很好的做法,并且可能会导致意外行为(如您的情况)。特别是对于您的场景,最好直接调用UUID类方法。您可以使用“参数”字段传递${__UUID}。
然后在您的代码中使用:
bsh.args[0]
例子:
这是当您在 While 控制器或循环控制器中使用预处理器时。
但如果您正在谈论包含循环的 Beanshell 代码,那么只需执行以下操作:
UUID.randomUUID().toString()
当然确保你导入类:
导入java.util.UUID;
小智 6
使用java语言编写JSR223 PreProcessor生成UUID
vars.put("myUUID",UUID.randomUUID().toString());
Run Code Online (Sandbox Code Playgroud)
然后在 javascript JSR223 预处理器中访问它。
var customer = {
"id": "${myUUID}"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19740 次 |
| 最近记录: |