:调用bsh方法时出错:eval源文件:内联评估:``

时间:2016-08-04 13:01:34

标签: java jmeter beanshell

这是我尝试在 beanshell sampler 中执行的代码:

import java.lang.*;
import java.util.*;

String name_lead = vars.get("Name_lead");

String[] lead = name_lead.split("\\s+");
//vars.put("myname",lead[0]);
//vars.put("myname1",lead[1]);
//vars.put("myname2",lead[2]);
for(int i=1; i<=Integer.parseInt(vars.get("title_pass_matchNr")); i++)
{
    String title = vars.get("title_pass_"+i);
    String fname = vars.get("firstname_"+i);
    String lname = vars.get("lastname_"+i);
    String[] fn = fname.split("");
//vars.put("title",title);
//vars.put("fname",fn[1]);
//vars.put("lname",lname);

    if(lead[i-1].equals(title) && lead[i].equals(fn[1]) && lead[i+1].equals(lname))
    {
        vars.put("namep",lead[i]);
    }
}

但我收到以下错误:

  

响应消息:org.apache.jorphan.util.JMeterException:调用bsh方法时出错:eval源文件:内联评估:``import java.lang。; import java.util。; String name_lead = vars.get(&#34; Name_lead&#34;); 。 。 。 &#39;&#39;

我无法理解它。 sombody可以帮帮我吗?我该如何解决这个问题?

name_lead有像P先生那样......并使用正则表达式提取器

1 个答案:

答案 0 :(得分:15)

有一种很好的方法可以将此Error invoking bsh method错误转换为更易于理解的堆栈跟踪:将代码放入try block中,如:

try {
    //your code here
}
catch (Throwable ex) {
    log.error("Error in Beanshell", ex);
    throw ex;
}

这样您就可以在 jmeter.log 文件中看到异常详细信息

在Beanshell脚本的最开始添加debug()指令的另一种方法。这样,您将获得大量调试输出到stdout

有关在JMeter测试和脚本开发和故障排除中使用Beanshell的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component指南