Слайд 1 - It4business.ru

реклама
Нагрузочное
тестирование
Тимур Хайруллин, Яндекс
Нагрузочное тестирование
• ЗАЧЕМ тестировать?
• ЧТО тестировать
• ЧЕМ тестировать?
• КАК тестировать?
• КАК организвать процесс?
• КАК теперь со всем этим жить? :-)
ПОЧЕМУ?
• Правило «0.1 – 1 – 10»: субъективные ощущения от
интерфейса
• Пример исследований: 33% пользователей не дожидаются
загрузки страницы с описанием модели, если ждать приходится
дольше 4 сек.
• три года назад 33% не хотели ждать дольше 8 сек: broadband
everywhere!
ПОЧЕМУ?
Работает или нет?
• Работает: HTTP 200
• Не работает: HTTP 500
• «Работает, но не очень»: слишком медленно!
• ОК,
failure, soft failure
ПОЧЕМУ?
• Определяем критерии качества: «что такое хорошо и что такое
плохо» в секундах
• Критично ли, если пользователь прождёт лишнюю секунду
НА ЭТОЙ СТРАНИЦЕ?
• Универсального рецепта нет: для разных страниц разное
время отклика можно считать допустимым
ЧТО?
А что мы, собственно говоря,
собираемся тестировать?
• Что мы знаем о жизни нашего сайта?
ЧТО?
• Оценить, сколько хитов придёт на сайт в течение суток
• Уточнить распределение нагрузки по времени суток
ЧТО?
• Кружок моделирования, задача – построить минимальную
модель с максимальной функциональностью
• Важно найти точки модели с минимальной sclability и
постараться физически разнести их
• И вот на этой модели мы попытаемся взлететь :-)
ЧЕМ?
• Рукоятки управления инструмента: интенсивность, сценарии
• Приборы инструмента: интенсивность, время ответа
•Commercial software: дорого, неудобно и нерасширяемо
• Free software: гибко, но не всегда устраивает
• Home-made: нужно делать, зато устраивает всем
• Наш выбор: 2+3
КАК?
• Performance testing (оценочное)
• Load testing
(нагрузочное)
• Stress testing
(стрессовое)
• Volume testing(объёмное)
• Recovery testing
(аварийное)
• Scalability testing
(масштабное)
КАК?
Performance testing, или
оценочное тестирование
• Отвечает на вопрос «как быстро работает наша система?»
• Отвечает на вопрос «устраивает ли нас быстродействие нашей
системы?»
• Методика: «дадим нагрузку N, как быстро отвечает наша
система?»
КАК?
Load testing, или «нагрузочное»
тестирование
• Отвечает на вопрос «что происходит с нашей системой при
работе в режиме 24x7x365?»
• Методика: нагрузить систему в течение длительного времени,
включить мониторинги и наблюдать
КАК?
Stress testing, ну, понятно ;-)
• Отвечает на вопрос «что происходит с нашей системой при
значительном превышении расчётной нагрузки?»
• Методика: наблюдать за поведением системы и особенно – как
именно она НЕ РАБОТАЕТ ;-)
КАК?
Volume testing, или объёмное
тестирование
• Отвечает на вопрос «что происходит с нашей системой при
значительном росте данных?»
• Отвечает на вопрос «что происходит с нашей системой через
полгода? А через год?»
• Методика: увеличить объем тестовых данных (вдвое, в пять,
десять раз» и провести повторное оценочное тестирование
КАК?
Recovery testing, или аварийное
тестирование
• Отвечает на вопрос «что происходит с нашей системой при
отказе одного из компонетов? А при недостатке ресурсов?»
• Суть – скорее тестирование процедур принятия решений
• Методика: «выдернуть» из-под системы ресурс, наблюдать, как
именно система НЕ РАБОТАЕТ
КАК?
Scalability testing, или
масштабное тестирование
• Отвечает на вопрос «что происходит с нашей системой при
добавлении ресурсов?»
• Методика: сложна и запутана :-(
КАК организовать процесс?
• Планирование: нагрузочное тестирование – часть
производственного процесса
• Багтрекер: баг по нагрузке – такой же баг!
• Предсказание: знать нагрузку в будущем. На год вперёд,
например
• Склероз: хранить результаты тестирования
ПРОБЛЕМЫ? Да :-(
• Огромные объёмы данных для анализа
• Сложность и неточность предсказаний
• Отсутствие квалифицированных кадров
• «финансирование» по остаточному принципу, неразвитость
направления в целом
РЕШЕНИЯ? Да! :-)
• Читайте логи, они рулез!
• Следите за статистикой и приборами
• Учите коллег простым трюкам
• Вырастите в коллективе ответственного. Или назначьте :-)
• Следите за тенденциями, ростом интернета, например
• Будьте в курсе того, что происходит вокруг
ВОПРОСЫ? Да!
СПАСИБО!
Скачать