【问题标题】:jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval In file: inline evaluation of: '' Encountered "," at line 1, column 9jmeter.util.BeanShellInterpreter:调用 bsh 方法时出错:eval 在文件中:内联评估:''在第 1 行第 9 列遇到“”
【发布时间】:2017-03-29 21:24:56
【问题描述】:

我在读取文件内容的位置上有一个 CSV 文件。 这就是为什么我添加了 Jmeter Bean shell 后处理器并在调试采样器中检查变量的值。

脚本中没有错误,线程成功执行,变量中的值正确输入。 但是,在 Jmeter 日志中,我收到错误 -

错误 - jmeter.util.BeanShellInterpreter:调用 bsh 方法时出错: eval 在文件中:内联评估: ``位置,广告商,产品,活动,供应商,插入订单 ID,发票号码,。 . . '' 在第 1 行第 9 列遇到了 ","。

我的 BeanShell PostProcessor 中有以下代码 -

${__FileToString(${InvoiceDataFile},UTF-8,CheckInvoice)}

${InvoiceDataFile} 是我在用户定义变量中定义的变量,它的值是我的 CSV 文件所在目录的路径。

例如: ${__P(includecontroller.prefix)}/Reporting/Prisma/Prisma US/properties/ReportsVerificationUS-${__P(test.environment)}/invoice_report.csv

请提出建议。

问候。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    不要将${InvoiceDataFile} 之类的 JMeter 变量或函数内联到 Beanshell 脚本主体中,它们可能会解析为会导致语法错误的内容。正确的 Beanshell 等效函数如下所示:

    vars.put("CheckInvoice", org.apache.commons.io.FileUtils.readFileToString(new File(vars.get("InvoiceDataFile")),"UTF-8"));
    

    接下来,您可以采取以下步骤来查明 Beanshell 脚本故障的根源:

    1. 在脚本开头添加debug(); 指令。这样您就可以在 STDOUT 中看到调试输出
    2. 把你的代码放在try block里面

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

      这样您将在 jmeter.log 文件中看到“良好”的错误堆栈跟踪。

    有关 JMeter 中的 Beanshell 脚本的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component

    【讨论】:

    • 不确定发生了什么问题,但我仍然面临上述代码的问题。错误 - 2017/03/30 17:09:29 错误 - jmeter.util.BeanShellInterpreter:调用 bsh 方法时出错:eval 在文件中:内联评估:``//位置、广告商、产品、广告系列、供应商、插入订单 ID ,发票编号。 . . '' 在第 2 行第 5 列遇到“,”。唯一的区别是以前它出现在第 1 行,现在出现在第 2 行。仅供参考,我的文件有 2 行,其中的值以逗号分隔
    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 2017-09-04
    • 2018-03-26
    相关资源
    最近更新 更多