首页 > 解决方案 > Jmeter:发送 GET 请求后提取多个变量

问题描述

我用 JMeter 发送请求。然后我得到这样的回应:

 [
    {
        "jobId": "00053b3d-c4fa-498b-9ef0-cbf5430e9c61",
        "timer": null,
        "aln": "199430",
        "callerId": "21c48f75-752e-43cf-9d4f-48da62646e98",
        "start": "2019-10-11 04:17:41.900",
        "status": "InProgress",
        "end": null
    },
    {
        "jobId": "001bb8c5-2e7f-4519-beb0-a5bc1bc5cf8d",
        "timer": null,
        "aln": "198049",
        "callerId": "21c48f75-752e-43cf-9d4f-48da62646e98",
        "start": "2019-10-11 04:39:02.736",
        "status": "InProgress",
        "end": null
    },
    {
        "jobId": "00502f22-3e9d-4003-b1f1-1860b613d22e",
        "timer": null,
        "aln": "199362",
        "callerId": "21c48f75-752e-43cf-9d4f-48da62646e98",
        "start": "2019-10-11 04:17:23.124",
        "status": "InProgress",
        "end": null
    },

......

    {
        "jobId": "fffa8b38-9e29-4d48-a540-9fb69f505df3",
        "timer": null,
        "aln": "198016",
        "callerId": "21c48f75-752e-43cf-9d4f-48da62646e98",
        "start": "2019-10-11 04:38:59.454",
        "status": "InProgress",
        "end": null
    }
]

我想获取所有 jobID 并将其放入 csv 文件中。我找到了一些指南来提取一个响应的变量,但是如何获得像我这样的所有变量?谢谢你的帮助

我试过了:Xpath 提取器 + json 路径插件

标签: variablesjmeterresponse

解决方案


要将所有 jobID 提取并写入 CSV 文件,请执行以下操作:

  1. 添加 JSON 提取器后处理器作为返回响应的请求的子级。用作$..jobId路径表达式并Match No. -1捕获所有匹配项

  2. 在 Request 之后添加一个 JSR223 Sampler 并将以下代码放入 Script 区域:

    int jobLength = Integer.parseInt(vars.get("jobId_matchNr"));
    
    String[] responseArray = new String[jobLength];
    for (int i = 0; i < jobLength; i++) {
        responseArray[i] = vars.get("jobId_"+(i+1));
    }
    
    PrintWriter writer = new PrintWriter(new File("test.csv"));
    StringBuilder sb = new StringBuilder();
    
    for (String str : responseArray) {
        sb.append(str);
        sb.append('\n');
    }
    
    writer.write(sb.toString());
    writer.close();
    
  3. 您所有的 JobID 将被写入"test.csv"文件

在此处输入图像描述


推荐阅读