Нагрузочное тестирование проектов на Drupal с использованием Apache JMeter
1. Нагрузочное тестирование
проектов на Drupal с
использованием Apache JMeter
Иван Кинаш
kinash@licel.ru
www.licel.ru
2. План доклада
● Кому и зачем нужны тесты на производительность
● В каких "попугаях" измерять производительность
ресурса
● Кратко о JMeter и особенности его использования при
тестировании Drupal-проектов
● Реальный тестовый сценарий за 5 минут
3. Кому и зачем нужны тесты на
производительность ?
Заказчик
○ Сравнить решения от различных поставщиков и
выбрать оптимальный вариант
○ Сформировать требования к аппаратно-
программному обеспечению с учетом текущей/
планируемой нагрузки
○ Спланировать бюджет
○ Произвести тестирование продукта на выбранной
конфигурации
4. Кому и зачем нужны тесты на
производительность ?
Маркетолог
○ Использовать метрики производительности в
коммерческих предложениях
○ Публикация результатов тестирования
производительности продукта на новых платформах
○ Продемонстрировать в количественных
характеристиках преимущества продукта перед
продуктом конкурента
5. Кому и зачем нужны тесты на
производительность ?
Разработчик + Тестировщик
○ Выявить проблемы с производительностью до их
появления у Заказчика
○ Знать слабые и сильные стороны своего приложения
○ Оценить результат проведенной оптимизации
○ Провести тесты на регрессию после выхода новой
версии
7. Метрики производительности
● Количество запросов в секунду
● Время отклика сервера
● Количество одновременно работающих пользователей
● Потребление аппаратных ресурсов сервера
8. С чего начать ?
1. Составить сценарии работы пользователей
2. Выбрать инструмент для тестирования
3. Подготовить тестовую площадку
4. Создать нагрузку и снять необходимые метрики
5. Сделать выводы :)
9. Open-Source инструменты для тестирования
производительность Web-приложений
Httperf - мощное оружие для стрельбы по площадям
10. Open-Source инструменты для тестирования
производительность Web-приложений
● Написан на Java
● Очень универсальный и расширяемый
● Множество плагинов
● Возможность распределенного тестирования
● Богатый по возможностям встроенный модуль для http
11. Open-Source инструменты для тестирования
производительность Web-приложений
● Написан на Java
● Удобный графический интерфейс для построения
сценариев
● Большой выбор встроенных модулей
● Возможность распределенного тестирования
12. Apache JMeter - Основные блоки
● Test plan
● Thread group
● Controllers & Config Elements
● Samplers
● Listeners
● Timers
● Assertions
● Pre-Processor Elements
● Post-Processor Elements
13. Apache JMeter + Drupal
Демонстрация
Создание тестового сценария работы анонимного
пользователя
Создание тестового сценария работы зарегистрированного
пользователя
14. Apache JMeter + Drupal
● Не забывайте про Http Cookie Manager
● Для получения переменных формы используйте
XPathExtractor - //input[@name='form_token']/@value
● Для массовой генерации данных удобно использовать
возможности модуля Devel
● Поставьте модуль Performance Logging and Monitoring