为什么在JMeter的BeanShell Sampler中无法访问java.net包

时间:2017-08-29 07:00:17

标签: jmeter

最初所有导入工作正常,直到我关闭并重新打开脚本,之后几个import语句的颜色发生了变化,并且在运行脚本时出错。

enter image description here

见上文,有些课程显示黑色,有些课程显示为金色。黑色的那些给了beanshell例外。 它工作但突然关闭并重新打开脚本后就造成了这种混乱。

有人可以解释这种奇怪的行为......?

1 个答案:

答案 0 :(得分:1)

根据Beanshell User Manual

  

默认导入

     

默认情况下,会为您导入常见的Java核心和扩展程序包。他们   是,按照它们的导入顺序:

     
      
  • javax.swing.event中

  •   
  • 的javax.swing

  •   
  • java.awt.event中

  •   
  • java.awt中

  •   
  • java.net

  •   
  • java.util中

  •   
  • java.io

  •   
  • 的java.lang

  •   
     

默认情况下还会导入两个BeanShell包类:

     
      
  • bsh.EvalError

  •   
  • bsh.Interpreter

  •   

所以基本上你不需要导入这些“黑色”包。

JMeter Beanshell Without Import

也可以使用“super import”加载整个类路径,如:

import *;

为了找到脚本失败的底部,请将debug() directive添加到脚本的开头 - 这样您就可以在stdout中获得全面的调试信息,或者将您的代码放在{{}中3}}喜欢:

try {
    //your code here
}
catch (Exception ex) {
    log.error("Beanshell failure", ex);
}

这样,您将在 jmeter.log 文件中获得“正常”try block

有关详细信息,请参阅stacktrace文章。

另请注意,由于JMeter 3.1 How to Use BeanShell: JMeter's Favorite Built-in Component所以我建议考虑转移到Groovy,它更符合Java,有很好的it is recommended to use JSR223 Test Elements and Groovy language for scripting并且性能要高得多。