我无法使用bsh.shared命名空间在线程组之间共享数组,请对此进行指导
以下是我的jmx文件的结构:
在BeanshellPostProcessor1内部,
if (bsh.shared.names == void){
bsh.shared.names = new java.util.ArrayList();
}
String[] arr = vars.get("fruits").split(',');
for(int i =0;i < arr.length; i++){
if (arr[i].contains("APPLE")){
bsh.shared.names.add[arr[i]]
}
}
当我尝试在Beanshell-PreProcessor2中访问bsh.shared.names时,它不返回该值。
答案 0 :(得分:0)
您的代码有多个问题,例如:
split(',')
替换为split(",")
,因为String.split()函数将String作为参数,并且您要提供一个字符bsh.shared.names.add[arr[i]]
替换为bsh.shared.names.add(arr[i]);
,因为这是调用ArrayList.add()函数的正确方法完整代码以防万一:
if (bsh.shared.names == void){
bsh.shared.names = new java.util.ArrayList();
}
String[] arr = vars.get("fruits").split(",");
for (int i = 0; i < arr.length; i++) {
if (arr[i].contains("APPLE")) {
bsh.shared.names.add(arr[i]);
}
}
还要注意starting from JMeter 3.1 it is recommended to use JSR223 Test Elements and Groovy language是因为Groovy performance is much higher。
Groovy中没有bsh.shared
命名空间,但是您应该可以使用props
的简写形式,它将为您提供相同的技巧。