使用Jmeter BeanShell预处理器时遇到问题。 该脚本调用jar,我将它们放在目录“D:\ Software \ apache-jmeter-3.0 \ lib \ ext”下。 enter image description here
这是我的BeanShell代码:
import com.evergrande.api.test.JsonClientUtil;
import com.evergrande.common.utils.JsonUtil;
import com.fasterxml.jackson.databind.node.ObjectNode;
JsonClientUtil jcu=new JsonClientUtil();
ObjectNode node = JsonUtil.createObjectNode();//when I try to use the method in JsonUtil(Class),it came out error
错误:
2016/09/24 22:48:06 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import com.evergrande.api.test.JsonClientUtil; import com.evergrande.common.util . . . '' : Typed variable declaration : Method Invocation JsonUtil.createObjectNode
2016/09/24 22:48:06 WARN - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import com.evergrande.api.test.JsonClientUtil; import com.evergrande.common.util . . . '' : Typed variable declaration : Method Invocation JsonUtil.createObjectNode
我可以在我的java代码中调用“createObjectNode”方法。 那么,我该如何解决这个问题呢?谢谢大家。
答案 0 :(得分:0)
不要将任何jar放到lib/ext
文件夹中,它应仅用于JMeter核心组件和插件。将.jar库放到" lib"在其他地方的文件夹,他们只需要在JMeter's Claspath。备选方案是在Test Plan级
Add directory or jar to classpath
选项
您可以使用try/catch块围绕代码来获取更易读的Beanshell错误消息
import com.evergrande.api.test.JsonClientUtil;
import com.evergrande.common.utils.JsonUtil;
import com.fasterxml.jackson.databind.node.ObjectNode;
try {
JsonClientUtil jcu=new JsonClientUtil();
ObjectNode node = JsonUtil.createObjectNode();
}
catch (Throwable ex) {
log.error("Beanshell failure: ", ex);
throw ex;
}
因此,如果您的脚本失败,您将能够在 jmeter.log 文件中看到堆栈跟踪详细信息。另一种触及Beanshell脚本失败的方法是将debug();命令添加到脚本的开头。它将触发详细输出到控制台。查看How to Debug your Apache JMeter Script文章,了解有关JMeter调试技术的更多信息。