【问题标题】:: Error invoking bsh method: eval Sourced file: inline evaluation of: ``:调用 bsh 方法时出错:eval 源文件:内联评估:``
【发布时间】:2016-12-10 14:55:13
【问题描述】:

这是我试图在 beanshell 采样器中执行的代码:

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.;导入 java.util.; String name_lead=vars.get("Name_lead"); . . . ''

我无法理解。有人可以帮助我吗?我该如何解决这个问题?

name_lead 有类似 Mr P singh ..并使用正则表达式提取器的东西

【问题讨论】:

  • 为什么你的代码没有包含在类/方法中?
  • 我在 jmeter beanshell 采样器中做这个..我认为它不需要
  • 当我尝试调试时,如果控制器出现错误。但我无法弄清楚
  • 你问题中的最后一句话是什么意思?
  • name_lead 的值,我使用正则表达式从他的响应中获取。该值类似于 Mr P singh

标签: java jmeter beanshell


【解决方案1】:

有一种很好的方法可以将此 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 指南

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多