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

jmeter Beanshell-调用bsh方法时出错:eval

申颖逸
2023-03-14
try {
    hash1 = vars.get("var_Hash_1");
    hash2 = vars.get("var_Hash_2");
    hash3 = vars.get("var_Hash_3");
    FileWriter fstream = new FileWriter("/tmp/result.txt",true);
    BufferedWriter out = new BufferedWriter(fstream);
    out.write(hash1);
    out.write(",");
    out.write(hash2);
    out.write(",");
    out.write(hash3);
    out.write(",");
    out.write("\n");
    out.close();
    fstream.close();
}
catch (Throwable e) {
    log.error("Errror in Beanshell", e);
    throw e;
}

而例外是:

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_hash_2”);hash3=va...“:TargetError

有趣的是,如果我尝试只写hash1和hash2,就会发生相同的异常,但是有一些内容被写到result.txt文件(hash1,hash2)中,而hash1,hash2,hash3没有被写出。

所有3个变量将存在,因为我执行3个类似的请求,他们是成功的。有什么想法吗?

编辑:来自异常的日志文件:

2017/04/26 17:30:29 ERROR - jmeter.util.BeanShellTestElement: Errror in Beanshell java.lang.NullPointerException
        at java.io.Writer.write(Writer.java:127)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at bsh.Reflect.invokeMethod(Reflect.java:134)
        at bsh.Reflect.invokeObjectMethod(Reflect.java:80)
        at bsh.Name.invokeMethod(Name.java:858)
        at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
        at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
        at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
        at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
        at bsh.BSHBlock.eval(BSHBlock.java:80)
        at bsh.BSHBlock.eval(BSHBlock.java:46)
        at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
        at bsh.Interpreter.eval(Interpreter.java:645)
        at bsh.Interpreter.eval(Interpreter.java:739)
        at bsh.Interpreter.eval(Interpreter.java:728)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:170)
        at org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:197)
        at org.apache.jmeter.util.BeanShellTestElement.processFileOrScript(BeanShellTestElement.java:151)
        at org.apache.jmeter.extractor.BeanShellPostProcessor.process(BeanShellPostProcessor.java:64)
        at org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:750)
        at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:452)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:261)
        at java.lang.Thread.run(Thread.java:745)

共有1个答案

终睿
2023-03-14

如果您已经有了try块--在jmeter.log文件中查找“正常的”stacktrace,调用bsh方法的错误:eval废话没有说明根本原因。如果您不能自己解决这个问题,请在Beanshell中发布以errror开头的日志部分,直到此处结束。

我可以假设两个可能的原因:

  1. 由于null(很有可能)而未设置变量之一,请将调试采样器放在Beanshell测试元素之前检查变量值,并在视图结果树侦听器中再次检查变量值。
  2. 您没有对/tmp/result.txt文件的写权限(不太可能,但也可能)
    null

 类似资料:
  • 下面是我的代码,它在第10行第25列抛出异常,错误是: 调用bsh方法时出错:文件中的eval:内联求值:``import java.util.List;导入java.util.ArrayList;public static void main(Strin....“)在第10行第25列遇到”var“。

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

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

  • 我不明白。身体能帮我吗?我怎么解决这个? 类似于Mr P singh..并使用regex提取器

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