Jmeter: извлечь несколько переменных после отправки запроса GET - PullRequest
0 голосов
/ 11 октября 2019

Я отправляю запрос с 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 path

Ответы [ 2 ]

0 голосов
/ 14 октября 2019
  1. Добавить JSR223 PostProcessor как дочерний элемент запроса, который возвращает вышеуказанный JSON
  2. Поместить следующий код в область «Сценарий»:

    new groovy.json.JsonSlurper().parse(prev.getResponseData()).each {job ->
        new File('jobs.txt') << job.jobId << System.getProperty('line.separator')
    }
    
  3. Вот и все, вы получите идентификаторы заданий, сохраненные в файле jobs.txt, каждый идентификатор в новой строке, например:

    00053b3d-c4fa-498b-9ef0-cbf5430e9c61
    001bb8c5-2e7f-4519-beb0-a5bc1bc5cf8d
    00502f22-3e9d-4003-b1f1-1860b613d22e
    fffa8b38-9e29-4d48-a540-9fb69f505df3
    

Дополнительная информация:

0 голосов
/ 11 октября 2019

Чтобы извлечь и записать все jobID в CSV-файл, выполните следующие действия:

  1. Добавьте постпроцессор JSON Extractor в качестве дочернего элемента запроса, возвращающего ответ. Используйте $..jobId в качестве выражения пути и Match No. -1 для захвата всех совпадений

  2. Добавьте после запроса Sampler JSR223 и поместите следующий код в область сценариев:

    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" файл

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...