每当我尝试在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 WARN - jmeter.modifiers.BeanShellPreProcessor:BeanShell脚本中的问题org.apache.jorphan.util.JMeterException:调用bsh方法时出错:eval在文件中:内联评估:`` try {Integer count = vars.get(“SessionId”)。length() - 5; vars.put(“vAuth”,vars.get ...''遇到':“第5行,第8栏。
答案 0 :(得分:0)
尝试将字符串路径放在双引号文件中,例如:
${__FileToString("C:/tmp/DeltaConnectDemoTool_3_2_0S1_5515/bin/request.txt",,FileContents)};
答案 1 :(得分:0)
这就是为什么不建议将函数或变量内联到脚本体中的原因。您有两种备选方案:
使用"参数"中的功能。部分。如果函数返回一些值,您可以稍后在Beanshell代码中引用为Parameters
或bsh.args[0]
,如:
在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