Как хранить данные ответа на запрос одновременно - PullRequest
0 голосов
/ 11 января 2019

Я устанавливаю план тестирования, последовательно запускающий группы потоков:

  1. Выполнить запрос A, используя 10 потоков, 500 циклов.
  2. Выполнить запрос B, используя 10 потоков, 500 циклов и выходные данные из шага 1.

Моя проблема заключается в следующем: По каждому запросу A я получаю идентификатор, который мне нужно передать в запрос B. Каков наилучший способ сохранить все идентификаторы и затем использовать их на шаге 2?

В настоящее время я "JSonExtracting" каждый идентификатор из ответа и сохранить в файле CSV для перехода к шагу 2. Проблема заключается в совпадении протекторов. Иногда я получал пустые места в файле или конкатенированные строки, которые приводили к ошибке на шаге 2. Мне не удалось сохранить это в переменной массива для использования на шаге 2.

Чтобы записать идентификаторы в файл, я использую этот код на слушателе BeanShell внутри моей группы потоков. Я твердо верю, что это не самый правильный способ сделать это.


    f = new FileOutputStream("${DocumentIdsFile}", true);
    p = new PrintStream(f); 
    p.println("${DocumentId}");

    p.close();
    f.close();

    log.info("Id: ${Id}");

Как я могу решить эту проблему совпадения?

1 Ответ

0 голосов
/ 15 января 2019

Если вы получили идентификатор по запросу A, просто используйте его в запросе B, передав его через переменную:

  1. Значение идентификатора разбора в запросе Ответ с использованием одного из постпроцессоров для его сохранения в переменной, например "ID".
  2. Используйте это значение в вашем запросе B в качестве параметра:

    GET <a href="https://myserver.com/myapp/getSomethig/" rel="nofollow noreferrer">https://myserver.com/myapp/getSomethig/</a>${ID}

...