当前位置: 首页 > 知识库问答 >
问题:

Jmeter beanshell Sampler_调用bsh方法时出错

申查猛
2023-03-14

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

调用bsh方法时出错:文件中的eval:内联求值:``import java.util.List;导入java.util.ArrayList;public static void main(Strin....“)在第10行第25列遇到”var“。

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个答案

应翰飞
2023-03-14

您的测试有多个问题:

  1. String[]serviceTypeVal={12,19,20,21,22,23,26,27,28,31,32,11};-不是有效声明
  2. 如果打开operationnme,则不能使用case1case2等,因为类型不匹配
  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. 
 类似资料:
  • 而例外是: 2017/04/26 16:16:25 warn-jmeter.extractor.beanshellPostProcessor:BeanShell脚本org.apache.jorphan.util.jmeterException:调用bsh方法时出错:eval源文件:内联求值:``尝试{hash1=vars.get(“var_hash_1”);hash2=vars.get(“var_

  • 我是jmeter的新手,我遇到了以下错误: 杰米。util。BeanShellInterpreter:调用bsh方法时出错:eval无法初始化类stpl。自由党。茶。TEALib 我已经在jmeter的lib/ext中添加了java类的jar文件。我正在尝试在beanshell预处理器中导入java类。包名为且类名为TEALib,因此使用以下语法: 此外,我还在java类中添加了一个dll文件,该

  • 我有一个问题在JMeter其中我收到这个错误 我不知道出了什么问题,而代码似乎正在运行。谁能给我一些建议吗? 下面是有问题的代码块: 应该提到的是,代码位于后处理器中,后处理器与“RequestUrl”的Xpath提取器相匹配 编辑以包含整个错误

  • 我是jmeter的新手,我发现解决这个错误非常困难: 杰米。util。BeanShellInterpreter:调用bsh方法时出错:eval无法初始化类stpl。自由党。茶。TEALib 我已经在jmeter的lib/ext中添加了java类的jar文件。我正在尝试在beanshell预处理器中导入java类。包名为stpl。自由党。enc.tea,类名为TEALib,因此在synatx中使用:

  • 我需要将变量(从响应中提取)从一个线程传递到另一个响应:“16540$Add373”我需要$RegEx:Ref Name:SFID RegEx:[$]模板:$1$MatchNo:1之前的数字 我已经使用beanshell断言将变量设置为jmeter属性 ${u setProperty(SFID1,${SFID})}; 在执行任务时,我得到了 断言失败消息:org。阿帕奇。乔芬。util。JMete