【问题标题】:"Object constructor" Beanshell error in JMeterJMeter中的“对象构造函数”Beanshell错误
【发布时间】:2017-09-29 08:43:18
【问题描述】:

我正在运行 JMeter 测试并希望从 CSV 读取一些值(由于其他原因,我无法使用通常用于读取 CSV 的 CSV 数据集配置。这是由于 CSV 的顺序在测试中加载/读取)。

使用 BeanShell 预处理器,我使用下面的脚本读取文件,以便我可以解析并找到我需要的值 - 此时,我只是尝试输入文件,然后我将添加脚本中的更多内容以实际解析数据。

docFile=new File("C:/Dev/jmeter-support.csv"); 
BufferedInputStream bin; 

bin = new BufferedInputStream(new FileInputStream(docFile)); 
while(bin.read()!=-1){} 

bin.close(); 

但是,下面的错误让我很困惑。我已经尝试过事先声明变量的对象类型,但同样的错误仍然存​​在。目前尚不清楚是什么原因导致了此脚本中的错误。

jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   
Sourced file: inline evaluation of: ``//String fileName = vars.get("skillsFile");  docFile=new File("C:/Dev/jmeter-sup . . . '' : Object constructor 

【问题讨论】:

    标签: csv jmeter beanshell


    【解决方案1】:

    我刚试过。您的脚本是正确的,我没有看到任何错误。请检查文件是否存在于路径中 - C:/Dev/jmeter-support.csv

    【讨论】:

    • 感谢您的尝试。我会试一试 - 虽然我希望这可能是错误背后的原因,同时我会踢自己,如果它是:p
    • 如果是其他问题,请告诉我 - 我想学习 :)
    • 这不是问题 - 我尝试了多个文件,但仍然无法正常工作。您使用的是什么版本的 JMeter?
    • 另外,你是把它作为预处理器还是采样器运行的?
    • hm..ineteresting..我使用版本 2.11 - 我在 v2.9 和 v2.11 中都进行了检查。有用。我还尝试了 Beanshell 前/后处理器和 Beanshell 采样器。有用。你能显示完整的代码吗?你能试试看'fileName'变量是否不为空。
    【解决方案2】:

    尝试在您的 Bean Shell 脚本中使用 Try Catch 块,以便为您提供有关确切异常问题的更多详细信息。例如:

    try{
    docFile=new File("C:/Dev/jmeter-support.csv"); 
    BufferedInputStream bin; 
    
    bin = new BufferedInputStream(new FileInputStream(docFile)); 
    while(bin.read()!=-1){} 
    
    bin.close(); 
    
    }
    
    catch (Throwable ex) {
    log.error("Error in Beanshell", ex);
    throw ex;
    }
    

    对于异常,文件路径中的前向空格似乎存在问题,您可以使用上面的 try-catch 查看详细异常。 你能试试吗 "C:\Dev\jmeter-support.csv" 而不是“C:/Dev/jmeter-support.csv”

    【讨论】:

    • 欢迎来到 Stack Overflow。答案应包含对 OP 问题的解决方案。但是,您的答案似乎只是关于如何找到更多信息的说明,而不是为问题提供任何类型的解决方案。请考虑对其进行更新,以解决 OP 的确切问题。
    猜你喜欢
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 2015-12-09
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多