Как выполнить HTTP-запрос PUT, прочитав значения из CSV в JMeter?

Aug 18 2020

У меня вопрос, как я могу настроить образец HTTP-запроса для метода HTTP PUT в JMeter, чтобы он мог читать данные из файла CSV с помощью конфигурации набора данных CSV? В моем сценарии я использую ** группу потоков параллелизма ** со следующими параметрами: * ** Целевой параллелизм **: 50 * время разгона ** ** (** секунды **): 10 * количество шагов разгона ** **: 5 * Удерживать цель .. (** секунды **): 10

Это моя настройка конфигурации набора данных CSV :

(Java) Типы имен переменных : bookId: Long , title: String , price: double , amount: int , авторы: Set , категории: Set , isDeleted: boolean

Это мой пример настройки HTTP-запроса :

... и это содержимое моего файла bookCollection10Items.csv, где цитируемые значения представляют собой строки, а значения в угловых скобках [] - массивы значений (поскольку я обновляю книгу, которая имеет отношение "многие ко многим" с категориями / авторами ):

1, «Гарри Поттер и волшебный камень», 39,99,2500, [4], 7,11, ложь
2, «Убийство в Восточном экспрессе», [19.98,500500], 1,9, ложь
3, «Убийство Роджер Экройд ", 19.99,1500,1, [7,9], ложь
4," Гарри Поттер и Тайная комната ", 24.99,0,4, [7,9], правда
5, Гарри Поттер и узник Азкабана », 17.99,1200,4,7, ложь
6,« Код да Винчи », 29.99,700,8,10, ложь
7,« Ад », 22,50,950,8,10, ложь
11,« Война и мир ", 31.99,300,5,8, ложь
14," Испытание ", 27.99,450,6,9, ложь
15," ОНО ", 16.50,0,2,5, правда

То , что я хочу добиться того , что каждая нить (т.е. пользователь) , чтобы выбрать один элемент из файла «bookCollection10Items.csv» в циклическом режиме и обновить его для данного BookID с помощью «Все темы» в режиме совместного использования опции.
Любые советы / предложения приветствуются.

Ответы

2 DmitriT Aug 18 2020 at 22:52

Встроенная конфигурация набора данных CSV JMeter считывает строки из файла CSV последовательно, поэтому каждый пользователь будет получать следующую строку на каждой итерации.

Если вам нужно прочитать случайную строку (однако я не думаю, что это хорошая идея, поскольку я считаю, что тесты должны быть повторяемыми ), вам нужно будет использовать некоторые плагины, например:

  1. Конфигурация случайного набора данных CSV
  2. или HTTP Simple Table Server

Оба могут быть установлены с помощью JMeter Plugins Manager.

1 NikolaS Aug 24 2020 at 17:29

Мне удалось найти решение моей проблемы -> Я совершил ошибку:

1) Создав CSV-файл в gEdit (аналог Windows Notepad для Linux) вместо использования LibreOffice Calc, где работа выполняется в ячейках . Поэтому так (как в gEdit, так и в LibreOffice Calc ):

3, «Убийство Роджера Экройда», 19.99,1500,1, [7,9], ложь

... нет-нет.

2) Удаление угловых скобок [] из списка, чтобы массивы НЕ содержали массивов. Например, при наличии угловых скобок я получаю следующее:

{
   // some other fields
   "authors" : [[7,9]]
}

3) Пришлось правильно форматировать числа с десятичными знаками, чтобы они содержали точку , а НЕ запятую ( проблемы с локалью ). Например, правильный формат - 19,99, неправильный - 19,99.