Нагрузочное тестирование веб-приложений
Андрей Богачевский
Тезисы
- Pain and Gain. Наш кейс
- SLA вместо наития
- Мануальное тестирование - это не всё
- JMeter - мягкое доминирование
Pain and Gain. Наш кейс
SLA вместо наития
Соглашение об уровне предоставления услуги (Service Level Agreement, SLA) – это соглашение между заказчиком и исполнителем о том, какие, когда и как будут предоставляться услуги.
Также в него входят права и обязанности сторон. Используется SLA в IT и сфере телекоммуникаций.
Параметры качества
- средняя доступность сервера
- минимальная доступность
- среднее время отклика исполнителя на обращение
- максимальное время отклика
- средняя пропускная способность соединения (если исполнитель является интернет-провайдером)
А если по наитию, без SLA?
Возможно вам повезет, но нет
Так как SLA — регулирующий инструмент, то его нужно использовать как инструмент.
То есть регулярно пересматривать, при изменении аппетитов бизнеса.
Мануальное тестирование и еще кое-что
Классификация видов тестирования производительности
- Нагрузочное тестирование - достаточно ли быстро работает система?
- Тестирование стабильности - достаточно ли надежно работает система на долгом интервале времени?
- Тестирование масштабируемости - как будет увеличиться нагрузка на компоненты системы при увеличении числа пользователей?
- Тестирование потенциальных возможностей - какое количество пользователей может работать?
- Конфигурационное тестирование - как заставить систему работать быстрее?
Мягкое доминирование
Почему JMeter?
Одно из наиболее популярных и часто используемых инструментов нагрузочного тестирования.
Изначально JMeter был разработан для тестирования web и FTP приложений.
Не требуется современная инфраструктура для тестирования нагрузки.
- Цена. JMeter – бесплатный инструмент.
- Независимость платформы.Так как JMeter является 100% Java десктопным приложением, он может быть запущен на многих платформах.
- Множественные режимы использования: GUI Mode, Command Line Mode
- Высокий уровень расширяемости. У вас есть возможность писать свои тест кейсы.
- Моделирование. JMeter даёт возможность моделировать поведение нескольких пользователей с параллельными потоками и создавать большую нагрузку на тестируемые веб-приложения.
- Поддержка большого количества протоколов.Он поддерживает все основные протоколы – HTTP, SOAP, LDAP, JDBC, JMS, и FTP.
- Лёгкая интеграция с бесплатными библиотеками. JMeter интегрирован с бесплатными библиотеками Jenkins, Maven и Gradle.
GUI
Конфиг на выходе
Профили нагрузки
Процесс тестирования
Инициализация процесса
Имитация нагрузки
Завершение процесса
Отчет