Как выполнить HTTP-запрос PUT, прочитав значения из CSV в JMeter?
У меня вопрос, как я могу настроить образец 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 с помощью «Все темы» в режиме совместного использования опции.
Любые советы / предложения приветствуются.
Ответы
Встроенная конфигурация набора данных CSV JMeter считывает строки из файла CSV последовательно, поэтому каждый пользователь будет получать следующую строку на каждой итерации.
Если вам нужно прочитать случайную строку (однако я не думаю, что это хорошая идея, поскольку я считаю, что тесты должны быть повторяемыми ), вам нужно будет использовать некоторые плагины, например:
- Конфигурация случайного набора данных CSV
- или HTTP Simple Table Server
Оба могут быть установлены с помощью JMeter Plugins Manager.
Мне удалось найти решение моей проблемы -> Я совершил ошибку:
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.