我们可以使用vars.put添加数组列表的成员吗?
下面是我的代码,在第10行第25列引发异常
错误是:
调用bsh方法时出错:eval在文件中:内联评估:
``导入java.util.List;导入java.util.ArrayList;公共静态
void main(Strin。。…在第10行第25列遇到“ vars”。
import java.util.List;
import java.util.ArrayList;
public static void main(String[] ard)
{
String OperationNme = ${op};
String[] serviceTypeVal = {12,19,20,21,22,23,26,27,28,31,32,11};
String serviceType;
switch (OperationNme) {
case 1: OperationNme.contains("sdv")
vars.put("serviceType",serviceTypeVal[0]);
break;
case 2: OperationNme.contains("doorUnlock")
vars.put("serviceType",serviceTypeVal[1]);
break;
case 3: OperationNme.contains("doorLock")
vars.put("serviceType",serviceTypeVal[2]);
break;
case 4: OperationNme.contains("hornLights")
vars.put("serviceType",serviceTypeVal[3]);
break;
case 5: OperationNme.contains("engineOn")
vars.put("serviceType",serviceTypeVal[4]);
break;
case 6: OperationNme.contains("engineOff")
vars.put("serviceType",serviceTypeVal[5]);
break;
case 7: OperationNme.contains("dtc")
vars.put("serviceType",serviceTypeVal[6]);
break;
case 8: OperationNme.contains("vrc")
vars.put("serviceType",serviceTypeVal[7]);
break;
case 9: OperationNme.contains("vhc")
vars.put("serviceType",serviceTypeVal[8]);
break;
case 10: OperationNme.contains("chgPrf")
vars.put("serviceType",serviceTypeVal[9]);
break;
case 11: OperationNme.contains("evNotif")
vars.put("serviceType",serviceTypeVal[10]);
break;
case 12: OperationNme.contains("vehStatus")
vars.put("serviceType",serviceTypeVal[11]);
break;
default: OperationNme.contains("Invalid Operation Name")
break;
}
}
最佳答案
您的测试存在多个问题:String[] serviceTypeVal = {12,19,20,21,22,23,26,27,28,31,32,11};
-无效的声明
如果打开OperationNme
字符串,则不能使用case 1
,case 2
等,因为其类型不匹配
Beanshell不支持打开字符串
因此,您应该将代码重构为如下所示:
String OperationNme = vars.get("op");
String[] serviceTypeVal = {"12", "19", "20", "21", "22", "23", "26", "27", "28", "31", "32", "11"};
if (OperationNme.contains("sdv")) {
vars.put("serviceType", serviceTypeVal[0]);
}
if (OperationNme.contains("doorUnlock")) {
vars.put("serviceType", serviceTypeVal[1]);
}
// etc.
有关JMeter中Beanshell脚本的更多信息,包括疑难解答建议,请参见How to Use BeanShell: JMeter's Favorite Built-in Component指南。
实际上,建议使用JSR223 Test Elements和Groovy语言进行脚本编写。安装就像下载groovy-all-*.jar一样简单,将其拖放到JMeter安装的/ lib文件夹中并重新启动JMeter。
之后,您将能够从“语言”下拉菜单中选择“常规”,它正在得到积极的开发和支持,因此它比Beanshell更兼容Java。
关于java - Jmeter beanshell Sampler_调用bsh方法时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32560020/