gpt4 book ai didi

java - Jmeter beanshell Sampler_调用 bsh 方法时出错

转载 作者:行者123 更新时间:2023-12-01 11:09:18 25 4
gpt4 key购买 nike

我们可以使用vars.put来添加数组列表的成员吗?

下面是我的代码,它在第 10 行第 25 列抛出异常错误是:

Error invoking bsh method: eval In file: inline evaluation of: ``import java.util.List; import java.util.ArrayList; public static void main(Strin . . . '' Encountered "vars" at line 10, column 25.

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;
}



}

最佳答案

您的测试存在多个问题:

  1. String[] serviceTypeVal = {12,19,20,21,22,23,26,27,28,31,32,11}; - 声明无效
  2. 如果您打开OperationNme其中一个字符串,不能使用 case 1 , case 2等,因为类型不匹配
  3. 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.

参见How to Use BeanShell: JMeter's Favorite Built-in Component有关 JMeter 中 Beanshell 脚本编写的更多信息(包括故障排除建议)的指南。

其实建议使用JSR223 Test Elements和 Groovy 脚本语言。安装就像下载groovy-all-*.jar一样简单,将其放入 JMeter 安装的/lib 文件夹中并重新启动 JMeter。

之后,您将能够从“语言”下拉列表中选择“groovy”,它正在积极开发和支持,因此它比 Beanshell 更兼容 Java。

关于java - Jmeter beanshell Sampler_调用 bsh 方法时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32560020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com