如何在JMeter中将特定响应提取到csv文件中?

时间:2016-08-19 04:50:04

标签: regex jmeter beanshell

在我的webservices测试计划中,我发送了使用用户名登录的SOAP请求,并在它发回的响应数据中发送:

  
      
  • 用户名
  •   
  • 会话ID(唯一值示例:12234546)
  •   

我想将该用户名和会话ID保存到CSV文件中。

2 个答案:

答案 0 :(得分:1)

您应该使用XPath Extractor来提取变量中的每一个。

您可以在View Results Tree中使用XPathTest来测试响应中的XPath表达式。

然后,您可以通过在user.properties文件中设置来序列化CSV中的变量:

  

sample_variables =用户名,会话ID

答案 1 :(得分:0)

你可以用Beanshell做到这一点。类似的东西:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

Sting username = vars.get("username");

String RegexMethod(String user) {
    String regResult = null;
    StringBuilder regex = new StringBuilder(",username:\");
    regex.append(user).append(",password:\"(.+?)\".");

    try {
        Pattern pat = Pattern.compile(regex);
        Matcher mac = pat.matcher(text);
        mac.find();
        regResult = mac.group(1);
    }  catch (Exception e) {
        e.printStackTrace();
    }
    return regResult;
}

String PATH = "/home/username/jmeterFiles/userData.csv";

try {               
    FileWriter fileWriter = new FileWriter(PATH, true);
    fileWriter.append(username);
    fileWriter.append(",");
    fileWriter.append(RegexMethod(username));
    fileWriter.append("\n");

    fileWriter.flush();
    fileWriter.close();
} catch (IOException e) {
    e.printStackTrace();
}

您可以将其放在Beanshell Post-processor中,它会将您想要的数据写入文件。它可能需要一些调整,但你应该得到点。你只需要得到你的正则表达式......