Metrika

11 марта 2013 г.

JMeter: Нагрузочное тестирование MySQL

Речь пойдет об использовании инструмента Apache JMeter™ для нагрузочного тестирования сервера MySQL.

JMeter - это опенсорсный продукт на Java. Его можно использовать для нагрузочного тестирования Web-сервера, FTP-сервера, сервера БД и пр. Обладает хорошим пользовательским интерфейсом и гибкими настройками.

В сети довольно много материалов по JMeter и понять как его использовать для задач нагрузочного тестирования различных систем не трудно. Здесь я опишу проблему, с которой столкнулся я, и ее решение.

Мне было необходимо погонять различные SELECT-запросы к MySQL для определения наиболее проблемных и для их оптимизации. Для этого, сначала,надо было подключить JMeter к серверу MySQL, а затем выполнять SQL-запросы с различными параметрами в условиях.

Как подключать JMeter к MySQL и создавать запросы к базе описано здесь: http://jmeter.apache.org/usermanual/build-db-test-plan.html.  Проблема, которая обычно возникает во время подключения к базе, - это установка драйвера MySQL для Java. Его нужно скачать здесь: http://dev.mysql.com/downloads/connector/j/, распаковать архив и положить файл mysql-connector-java-5.1.23-bin.jar в папку lib в папке установки JMeter.

Мне было интересно делать запросы с реальными условиями, т.е. для каждого нового запроса к базе ставить свои параметры. Для этого я сохранил необходимые значения в CSV файл. Для того, что бы сгенерить выражение для получения данных для запроса из CSV файла, воспользовался Function Helper Dialog (в главном меню: Options->Function Helper Dialog):


Далее добавил полученное выражение как параметр в SQL-запрос: