【问题标题】:jmeter internal functions failing BeanSHellInterpreterjmeter内部函数失败BeanSHellInterpreter
【发布时间】:2016-11-17 21:10:21
【问题描述】:

每当我尝试在 BeanShell PreProcessor 脚本中使用 __FileToString 内置函数时,我似乎无法通过 BeanShellInterpreter。 FileContents 变量确实被填充,但脚本失败,我无法使用它。这是代码和错误消息...

try {
Integer count=vars.get("SessionId").length()-5;
vars.put("vAuth", vars.get("v_username") +     vars.get("SessionId").substring(count) + ":" );
log.info("Writing a info message");
   ${__FileToString(C:/tmp/DeltaConnectDemoTool_3_2_0S1_5515/bin/request.txt,,FileContents)};

log.info("Writing a second info message");
}
catch (Throwable ex ) {
    log.error("Failed to do this or that", ex);
}

错误是

2016/11/17 15:52:18 错误 - jmeter.util.BeanShellInterpreter:调用 bsh 方法时出错:eval 在文件中:内联评估:``try { Integer count=vars.get("SessionId")。长度()-5; vars.put("vAuth", vars.get . . . '' 在第 5 行第 8 列遇到了 ":"。

2016/11/17 15:52:18 警告 - jmeter.modifiers.BeanShellPreProcessor:BeanShell 脚本 org.apache.jorphan.util.JMeterException 中的问题:调用 bsh 方法时出错:eval 在文件中:内联评估:``尝试{整数计数=vars.get("SessionId").length()-5; vars.put("vAuth", vars.get . . . '' 在第 5 行第 8 列遇到了 ":"。

【问题讨论】:

    标签: jmeter beanshell


    【解决方案1】:

    尝试将文件的字符串路径放在双引号中,例如:

    ${__FileToString("C:/tmp/DeltaConnectDemoTool_3_2_0S1_5515/bin/request.txt",,FileContents)};
    

    【讨论】:

      【解决方案2】:

      这就是为什么不建议将函数或变量内联到脚本正文中的原因。您有 2 个备选方案:

      1. 使用“参数”部分中的函数。如果函数返回一些值,您可以稍后在 Beanshell 代码中将其引用为 Parameters 或 bsh.args[0],例如:

      2. 在 Beanshell 代码中实现函数。在您的情况下,它可以是 FileUtils.readFileToString() 函数:

        String FileContent = org.apache.commons.io.FileUtils.readFileToString(new File("request.txt"));
        vars.put("FileContent", FileContent);
        

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

      【讨论】:

      • 我不认为选项 1 对我有用,因为我有多个文件要打开(一个用于我计划进行的每个 RESTAPI 调用。选项 2 就像一个魅力......谢谢!PS:文档在哪里说不要在脚本主体中使用内置函数(以防我那里有其他指针)?
      猜你喜欢
      • 2020-09-07
      • 2020-10-30
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多