Я покажу вам, как легко настроить тестовые сценарии с графическим интерфейсом пользователя 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 Илькина Уласа, все ваши базы принадлежат нам .





