Jmeter类型变量声明:方法调用

Jmeter类型变量声明:方法调用,jmeter,beanshell,Jmeter,Beanshell,我在使用Jmeter BeanShell预处理器时遇到问题。 脚本调用jar,我将它们放在目录“D:\Software\apache-jmeter-3.0\lib\ext”下。 这是我的BeanShell代码: import com.evergrande.api.test.JsonClientUtil; import com.evergrande.common.utils.JsonUtil; import com.fasterxml.jackson.databind.node.ObjectNo

我在使用Jmeter BeanShell预处理器时遇到问题。 脚本调用jar,我将它们放在目录“D:\Software\apache-jmeter-3.0\lib\ext”下。

这是我的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”方法。 那么,我如何解决这个问题?谢谢大家

  • 不要将任何JAR放入
    lib/ext
    文件夹,它应该只用于JMeter核心组件和插件。将您的.jar库放在其他地方的“lib”文件夹中,它们只需要位于。另一种选择是在级别上使用
    adddirectory或jartoclasspath
    选项

  • 需要重新启动JMeter才能拾取JAR
  • 通过使用类似于块的代码,您可以获得更可读的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文件中看到stacktrace详细信息。另一种查明Beanshell脚本失败原因的方法是在脚本开头添加命令。它将触发到控制台的详细输出。有关JMeter调试技术的更多信息,请参阅本文


  • 非常感谢。我已经解决了这个问题。这是因为缺少Jar包。