Как отправить несколько JSON тела с помощью Jmeter? - PullRequest
1 голос
/ 19 марта 2019

Я написал REST API, и теперь мое требование состоит в том, чтобы отправить множественное тело JSON в API, используя метод POST из JMeter.У меня есть CSV-файл с четырьмя значениями (1,2,3,4).И в каждом из четырех файлов у меня есть тело JSON.Я использовал:

Шаг-1) добавил файл CSV в Jmeter и создать ссылку и назвал его JSON_FILE

Шаг-2) ${__FileToString(C:Path_to_csv_file/${__eval(${JSON_FILE})}.txt,,)}

Но из этого я могу получить доступ только к первому файлу, то есть названному с одним.Как отправить тело всего файла в API?Помощь высоко ценится.

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Вы не сможете использовать CSV Data Set Config, поскольку он будет считывать следующее значение для каждого потока (виртуальный пользователь) и / или Группа потоков итерация.

Если ваше требование состоит в том, чтобы отправить все тела файлов одновременно, вы можете использовать альтернативный подход

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

    def builder = new StringBuilder()
    new File('/path/to/plans.csv').readLines().each { line ->
        builder.append(new File(line).text).append(System.getProperty('line.separator'))
    }
    sampler.getArguments().removeAllArguments()
    sampler.addNonEncodedArgument('', builder.toString(), '')
    sampler.setPostBodyRaw(true)
    

    приведенный выше код перебирает записи в файле plans.csv, считывает содержимое файла в строку и объединяет их вместе. После этого он устанавливает данные тела сэмплера HTTP-запроса в сгенерированную накопительную строку.

Ознакомьтесь с Шпаргалом по шаблонам Groovy для JMeter , чтобы узнать больше и что еще можно сделать с помощью скриптов Groovy в JMeter.

0 голосов
/ 19 марта 2019

Используйте данные тела следующим образом в HTTP Sampler:

{__FileToString(${JSON_FILE},,)}

Вы должны указать путь к файлу в вашем файле plan.csv.В каждой строке должен быть путь к файлу.

Пример:

Предположим, у вас есть 4 файла с телом JSON, которые вы хотите использовать в своем сэмплере HTTP.

Укажите путь к этим 4 файлам в вашем CSV-файле, который равен plan.csv.Каждая строка содержит путь к файлу, например:

/User/file/file1.json
/User/file/file2.json
/User/file/file3.json
/User/file/file4.json

Теперь, в вашей конфигурации набора данных CSV, используйте правильное имя файла CSV-файла, который содержит весь путь к файлу, и присвойте ему имя переменной, например JSON_FILE.

Теперь используйте {__FileToString(${JSON_FILE},,)} эту строку в ваших данных тела.Также используйте значение счетчика циклов соответственно.

...