首页 > 解决方案 > 如何使用 JSR 后处理器将数据写入 jmeter 中的 csv

问题描述

我正在使用 JMeter v4.0,我需要使用 JSR223 后处理器从测试响应中获取数据,如何将提取的数据存储到 CSV 文件中?

标签: javascriptpython

解决方案


发布的问题有 2 个部分

  1. 从响应中提取数据
  2. 将提取的值存储在 CSV 文件中

以下代码有助于解决上述两个问题。需要根据您的要求调整此代码(在正则表达式、文件写入选项等方面)。但是给出了基本骨架

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.FileWriter;

//This helps in fetching the response of the request
String response=prev.getResponseDataAsString();

//Modify regex as necessary
Pattern myPattern = Pattern.compile("responseValue=(\\w+);");   
Matcher myMatch = myPattern.matcher(response);

if (myMatch.find()){
  //This is solely to check the value extracted in Debug Sampler 
  //since myMatch.group(#) can be used directly in this code to write to file
  vars.put("extractedValue", myMatch.group(1));

  //File write operations
  String fileName = "example.csv";
  File file = new File(fileName);

  //Remove true for overwriting the file
  FileWriter fileWriter = new FileWriter(file, true);

  //Values to be written may include additional groups. Remember to separate them with comma
  String valueToWriteInFile = myMatch.group(1)+",othervalues";
  fileWriter.append(valueToWriteInFile);
  fileWriter.append("\n");

  //File needs to be properly closed to see the values written by JMeter on the file. 
  //Else, the file will only be created without any values
  fileWriter.close();
}

用于构建上述代码的参考链接:

  1. 使用 JSR223 采样器提取响应
  2. 文件写入选项

PS 对于需要执行上述功能的请求,使用 JSR223 后处理器作为子处理器。


推荐阅读