![](/img/trans.png)
[英]JMeter / Beanshell “Error invoking bsh method: eval Sourced file:”
[英]Jmeter beanshell Sampler_ Getting Error invoking bsh method
我们可以使用vars.put添加数组列表的成员吗?
下面是我的代码在第10行第25列引发异常,错误是:
调用bsh方法时出错:eval在文件中:内联评估:``import java.util.List; 导入java.util.ArrayList; public static 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
等,因为类型不匹配 因此,您应该将代码重构为如下所示:
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脚本的更多信息,包括疑难解答建议,请参见如何使用BeanShell:JMeter的“最喜欢的内置组件”指南。
实际上,建议使用JSR223测试元素和Groovy语言进行脚本编写。 安装就像下载groovy-all-*。jar一样简单,将其放入JMeter安装的/ lib文件夹中并重新启动JMeter。
之后,您将能够从“语言”下拉菜单中选择“常规”,它正在得到积极的开发和支持,因此它比Beanshell更兼容Java。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.