Я покажу вам, как легко настроить тестовые сценарии с графическим интерфейсом пользователя JMeter. Но прежде чем углубляться в детали, давайте рассмотрим основные термины:
План тестирования : описывает сценарий тестирования
Группа потоков : представляет пользователей, выполняющих ваш тестовый сценарий.
Образцы : способ отправки запроса и ожидания ответа. Примеры запросов: HTTP-запрос, JDBC-запрос, SOAP / XML-RPC-запрос и java-объектный запрос.
Logic Controller : используется для настройки логики, которую JMeter использует, чтобы решить, когда отправлять запросы
Слушатели : получают результаты теста и отображают отчеты.
Таймеры : заставляют JMeter задерживать определенное время перед каждым запросом потока.
Утверждения : проверьте, что приложение возвращает ожидаемые ответы
Примечание . Этот пост не является альтернативной документацией для JMeter. У JMeter есть отличная документация. Вы можете найти подробности в руководстве пользователя (http://jakarta.apache.org/jmeter/usermanual/index.html. Предположим, у нас есть приложение, которое регистрирует каждую транзакцию в реляционной базе данных. Мы собираемся создать план тестирования — шаг за шагом — чтобы ответить на вопросы ниже.
- Сколько записей транзакций можно вставить в таблицу транзакций за секунду?
- Сколько времени занимает вставка одной записи транзакции в таблицу транзакций?
- Как количество одновременных потоков (пользователей) влияет на количество вставок / сек и среднее время ответа?
- Как количество записей влияет на вставку / сек и среднее время ответа?
Шаг 1
Скопируйте драйвер mysql jdbc в папку lib вашей установки JMeter. JMeter нужен подходящий драйвер jdbc в пути к классам для подключения к базе данных.
1
|
Example ~/tools/jakarta-jmeter- 2.3 . 4 /lib/mysql-connector-java- 5.0 . 5 .jar |
Мы собираемся хранить заказы клиентов и результат заказа в таблице транзакций.
1
2
3
4
5
6
7
|
CREATE TABLE transactions ( id INT NOT NULL AUTO_INCREMENT, customer_id INT NOT NULL, order_id INT NOT NULL, result INT, PRIMARY KEY (id) ); |
Шаг 2
Создайте план тестирования и назовите его «Test MYSQL DB». Затем добавьте следующие компоненты jmeter в план тестирования.
- Группа потоков с именем «Пользователи базы данных»
- Пробоотборник типа JDBC Request
- Элемент конфигурации типа Конфигурация соединения JDBC
- Три элемента конфигурации типа Random Variable
- Слушатель типа Сводный отчет
После добавления этих компонентов план тестирования JMeter выглядит следующим образом.
Шаг 3
Настроить базу данных пользователей. Компонент группы потоков имитирует пользователей базы данных.
1. Количество пользователей (тем)
2. Сколько раз пользователь будет отправлять запрос (количество циклов). Если вы выберете «Навсегда» , потоки будут выполняться в цикле while (true) {…}, пока вы не решите остановить тест.
Шаг 4
Настройте пул соединений JDBC. Компонент конфигурации соединения JDBC используется для создания пулов соединений JDBC. URL базы данных, драйвер jdbc, пользователь базы данных и пароль настраиваются с помощью этого компонента. Пулы соединений идентифицируются как «Имя переменной» . JDBC Samplers (запросы) используют это имя переменной (имя пула соединений) для извлечения и передачи соединений. Я назвал тестовый пул соединений как «мой пул БД»
Шаг 5
Определите случайные величины, которые будут использоваться в операторах INSERT. В этом тесте я использую три случайные переменные: идентификатор пользователя, идентификатор заказа и результат . На следующем рисунке показана конфигурация случайного числа для идентификатора пользователя. Генератор случайных чисел даст нам случайные целые числа от 1 до 1000000. Мы можем сослаться на сгенерированное случайное число с именем user_id .
Шаг 6
Компонент JDBC Request — это место, где мы говорим нашим пользователям (темам), что делать. Имя пула, которое было настроено на шаге 3 «my db pool», будет использоваться как «имя переменной, связанной с пулом» . Все потоки будут выполнять подготовленные операторы. Идентификатор пользователя, идентификатор заказа и результат будут сгенерированы конфигуратором случайных чисел (описано в шаге 5)
Шаг 7
Теперь у нас настроены потоки для вставки записей транзакций в таблицу транзакций . На этом последнем шаге мы добавим прослушиватель типа « Сводный отчет» для просмотра результатов теста.
Результаты говорят нам, что 10 одновременно работающих пользователей (потоков), работающих в бесконечном цикле, могут вставить в нашу таблицу транзакций около 3300 строк. Среднее время, затрачиваемое на вставку строки, составляет 2 мс. Вы также можете выбрать слушателя «Graph Results», чтобы просмотреть визуальное представление результатов.
Я создал и запустил простой план тестирования БД. Я надеюсь, что вы найдете этот пост полезным. Помните об этом девизе
если вы не можете измерить это, вы не можете ни управлять этим, ни улучшать это
Счастливого тестирования…
Справка: нагрузочное тестирование реляционных баз данных. С помощью JMeter от нашего партнера по JCG Илькина Уласа, все ваши базы принадлежат нам .