【问题标题】:Jmeter Beanshell Assertion errors in Jmeter 3.3 whereas works well in Jmeter 2.1Jmeter 3.3 中的 Jmeter Beanshell 断言错误,而在 Jmeter 2.1 中运行良好
【发布时间】:2018-01-19 00:19:39
【问题描述】:

在 Jmeter 3.3 中,Beanshell 断言中的这个简单变​​量比较代码给出了错误: org.apache.jorphan.util.JMeterException:调用 bsh 方法时出错:eval 源文件:内联评估:`String value1 = vars.get("a"); String value2 = vars.get("b")....

此代码适用于 Jmeter 2.1

String value1 = vars.get("a");
String value2 = vars.get("b");
String value3 = vars.get("c");

if(value1.equals(value2)) {
        Failure = false;
        }
else{
Failure = true;
         FailureMessage = value3 + ":  Count doesnt match, api: "+ value1 + "   db: "+ value2; 
        print(FailureMessage);
}

我不确定这里出了什么问题,有人可以帮忙吗?

P.S - 我最近安装了 jmeter 3.3 并尝试运行使用 jmeter 2.1 创建的测试

完全错误 -

> Null Pointer in Method Invocation     at
> bsh.Name.invokeMethod(Name.java:844) [bsh-2.0b5.jar:2.0b5 2005-06-12
> 04:50:41]     at
> bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
> [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]     at
> bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
> [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]     at
> bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
> [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]     at
> bsh.BSHIfStatement.evaluateCondition(BSHIfStatement.java:63)
> ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]    at
> bsh.BSHIfStatement.eval(BSHIfStatement.java:46) ~[bsh-2.0b5.jar:2.0b5
> 2005-06-12 04:50:41]  at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
> [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]     at
> bsh.BSHBlock.eval(BSHBlock.java:80) [bsh-2.0b5.jar:2.0b5 2005-06-12
> 04:50:41]     at bsh.BSHBlock.eval(BSHBlock.java:46) [bsh-2.0b5.jar:2.0b5
> 2005-06-12 04:50:41]  at
> bsh.BSHTryStatement.eval(BSHTryStatement.java:86) [bsh-2.0b5.jar:2.0b5
> 2005-06-12 04:50:41]  at bsh.Interpreter.eval(Interpreter.java:645)
> [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]     at
> bsh.Interpreter.eval(Interpreter.java:739) [bsh-2.0b5.jar:2.0b5
> 2005-06-12 04:50:41]  at bsh.Interpreter.eval(Interpreter.java:728)
> [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]     at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_161]    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
> Source) ~[?:1.8.0_161]    at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> ~[?:1.8.0_161]    at java.lang.reflect.Method.invoke(Unknown Source)
> ~[?:1.8.0_161]    at
> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:166)
> [ApacheJMeter_core.jar:3.3 r1808647]  at
> org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:189)
> [ApacheJMeter_core.jar:3.3 r1808647]  at
> org.apache.jmeter.util.BeanShellTestElement.processFileOrScript(BeanShellTestElement.java:151)
> [ApacheJMeter_core.jar:3.3 r1808647]  at
> org.apache.jmeter.assertions.BeanShellAssertion.getResult(BeanShellAssertion.java:105)
> [ApacheJMeter_components.jar:3.3 r1808647]    at
> org.apache.jmeter.threads.JMeterThread.processAssertion(JMeterThread.java:812)
> [ApacheJMeter_core.jar:3.3 r1808647]  at
> org.apache.jmeter.threads.JMeterThread.checkAssertions(JMeterThread.java:803)
> [ApacheJMeter_core.jar:3.3 r1808647]  at
> org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:525)
> [ApacheJMeter_core.jar:3.3 r1808647]  at
> org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:424)
> [ApacheJMeter_core.jar:3.3 r1808647]  at
> org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:255)
> [ApacheJMeter_core.jar:3.3 r1808647]  at java.lang.Thread.run(Unknown
> Source) [?:1.8.0_161]

【问题讨论】:

  • 显示完整错误
  • 更新完整错误。

标签: jmeter beanshell assertion


【解决方案1】:

错误消息很可能表明某些变量未设置,即null

我的预期是这是b,很可能是由于在JMeter Classpath 中缺少相关的JDBC .jar

在此断言之前的某处添加Debug PostProcessor,并使用View Results Tree 侦听器验证所有这些abc 变量是否具有值。


另外请注意,从 JMeter 3.1 开始,建议使用 JSR223 测试元素和 Groovy 语言编写脚本,因此请考虑在下次有机会时迁移到 JSR223 断言。有关详细信息,请参阅Apache Groovy - Why and How You Should Use It 文章。

【讨论】:

  • 谢谢 Dmitri,添加 Debug PostProcessor 有帮助,正如您指出的那样,它是未设置的变量 b。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-03
  • 2017-02-11
相关资源
最近更新 更多