JMeter Beanshell 后处理器:读取文件

JMeter Beanshell Postprocessor : Reading a file

我在 Beanshell 后处理器中使用以下脚本

import java.io.*;
File f =new File ("C:\Users\xxxxx\Desktop\testresults.csv");
FileWriter fw=new FileWriter(f,true);
BufferedWriter bw=new BufferedWriter(fw);

var r=prev.getResponseCode();

if (r.equals("200"))

{
    bw.write("Test Passed");
    }

    else
    {
        bw.write("Test failed");
        }
bw.close();
fw.close();

但我收到以下错误 BeanShellInterpreter:调用 bsh 方法时出错:eval 源文件:内联评估:``import java.io.*;文件 f = 新文件 ("C:\Users\xxxxx\Desktop\testresults.csv") 。 . . '' 令牌解析错误:第 2 行第 23 列的词法错误。遇到:“U”(85),之后:“”C:\”。

什么可能导致上述错误。

更改为 JSR223 Post 处理器并写成一行(groovy 默认值)

new File("C:\Users\xxxx\Desktop\\testresults.csv") << (prev.getResponseCode().equals("200") ? "Test Passed" : "Test failed")

您需要 escape a backslash 使用反斜杠,例如:

C:\Users\xxxxx\Desktop\testresults.csv

或改用正斜杠:

C:/Users/xxxxx/Desktop/testresults.csv

更多提示:

  1. Since JMeter 3.1 you should be using JSR223 Test Elements and Groovy language 用于脚本
  2. 如果您 运行 使用 2 个或更多并发线程进行测试,它们将写入同一个文件,导致数据损坏,因为 race condition so maybe it worth considering switching to Flexible File Writer 而不是