2. Слайд 2 из 19
Кудрявцев Василий Сергеевич,
Ведущий специалист по нагрузочному тестированию
компании «Дататех», ГК «АйТи».
Введение
Кто я?
Выполняю проекты по нагрузочному тестированию разрабатываемых
компанией продуктов около полутора лет;
Основная схема работы: Заказчик — Разработчик — Тестировщик.
Используемый инструмент: HP LoadRunner;
Тип тестируемых приложений: Web;
3. Суть:
Проблемные ситуации на 5-ти основных этапах проведения НТ:
1. Инициация;
2. Подготовка методики НТ;
3. Подготовка средств НТ;
4. Проведение тестирования;
5. Подготовка отчета.
Введение
О чём я?
Цели:
1. Преобразовать проблемы в задачи;
2. Найти путь решения на раннем этапе;
3. Снизить трудозатраты на НТ в общем.
Слайд 3 из 19
4. Методика нагрузочного тестирования (НТ) — содержит цели
тестирования, ограничения, стратегию тестирования, перечень проводимых
тестов и другую информацию о проводимом НТ;
Средства нагрузочного тестирования (СНТ) — cкрипты и сценарии
создания нагрузки, средства подготовки БД, средства подготовки тестовых
данных, эмуляторы и средства мониторинга;
Инстанс мониторинга — экземпляр мониторинга, описанный
назначением и именем машины (аппаратная загрузка машины портала
portal1, счетчики СУБД сервисов обработки данных serv-data2);
Количество хитов в секунду (Hits/sec) — показатель интенсивности
нагрузки на Систему, выражающий количество запросов в единицу времени.
Введение
НТ, методика? Глоссарий!
Слайд 4 из 19
5. Инициация
Учет участников проекта
«Ты кто такой, давай до свидания!»
# Ситуация: В процессе проведения испытаний, в проект был
вовлечен ранее неизвестный сторонний разработчик.
‼ Проблема: Новый участник начал вносить изменения в модель
нагрузки на позднем этапе проекта НТ.
Решение: Составлять матрицу участников на этапе инициации,
учитывая роль в проекте, заинтересованность и полномочия.
Слайд 5 из 19
6. Инициация
Выбираем ключевой функционал
«Семь операций исключи, одну тестируй!»
# Ситуация: Включено несколько однотипных с точки зрения
нагрузки операций.
‼ Проблема: На разработку скриптов ушло больше времени.
Решение: Изучать операции на однотипность, выбрать ключевые
из нескольких.
Слайд 6 из 19
7. Подготовка методики НТ
Неразработанный функционал
Операции-призраки.
# Ситуация: В методику включен неразработанный функционал.
‼ Проблема: Во время разработки скриптов, функционал уже не
соответствовал документам.
Решение: Не включать в методику операции, функционал которых
еще не разработан, либо описывать отступления и ограничения.
Слайд 7 из 19
8. Подготовка методики НТ
Несоответствие мониторинга
Мониторь то, не знаю что.
# Ситуация: В методике неверно указали инстансы и метрики
мониторинга.
‼ Проблема: Во время проведения испытаний пришлось в срочном
порядке искать аналоги метрик и средств мониторинга.
Решение: Подробно описывать в методике действительную
конфигурацию стенда, инстансы и метрики мониторинга.
Слайд 8 из 19
9. Подготовка методики НТ
Помощь при выборе мониторинга
500 счетчиков СУБД, какой включить?
# Ситуация: На выбор метрик мониторинга ранее неизвестного
инстанса было потрачено несколько дней.
‼ Проблема: Позже выяснилось, что некоторые счетчики лишние, а
нужные не добавили.
Решение: Совещаться с командой по поводу выбора метрик и
возможных средств мониторинга.
Слайд 9 из 19
10. Подготовка методики НТ
Критерии времени отклика
Угнать за 60 секунд, логиниться за секунду.
# Ситуация: Не был проведен должный анализ предложенных
Заказчиком критериев времени отклика.
‼ Проблема: Неутешительные результаты тестирования —
несоответствие критериям у большинства бизнес-операций.
Решение: Обсуждать критерии с Заказчиком и разработчиком,
аргументировать изменения.
Слайд 10 из 19
11. Подготовка СНТ
Учетные записи пользователей
Входит и выходит.
# Ситуация: Отладка скриптов осуществлялась для одного логина и
одной роли.
‼ Проблема: Во время проведения испытаний проявились ошибки,
связанные с ролями и логинами.
Решение: Осуществлять проверку всех используемых ролей и
логинов.
Слайд 11 из 19
12. Подготовка СНТ
Фиксация версии ПО
Баги пофиксили, скрипты поломали.
# Ситуация: В ходе написания скриптов разработчики обновили
версию Системы на стенде.
‼ Проблема: Поменялись ID элементов, скрипты поломались,
пришлось перезаписывать.
Решение: Фиксировать версию программных компонентов, в
планах учитывать риски перезаписи скриптов.
Слайд 12 из 19
13. Проведение тестирования
Предварительный запуск тестов
70000 пользователей за 1 минуту!
# Ситуация: После запуска нагрузочного теста по методике, Система
утратила работоспособность.
‼ Проблема: Восстановление работоспособности заняло много
времени, запуск испытаний был отложен.
Решение: Следует проверять сценарии предварительными
запусками с уменьшенной нагрузкой и длительностью.
Слайд 13 из 19
14. Проведение тестирования
Отклонения от методики
Тестировали по методике, а в итоге недогрузили…
# Ситуация: Выполнены все тесты из методики, команда оповещена
о найденной уязвимости.
‼ Проблема: Не был запущен дополнительный тест для детализации
утечки памяти в этой же итерации тестирования.
Решение: Использовать дополнительные тесты для найденных
проблем, по возможности в этой же итерации тестирования.
Слайд 14 из 19
15. Проведение тестирования
«Страховка» мониторинга
10-й час 20-ти часового теста и мониторинг отключился…
# Ситуация: В ходе тестирования произошел кратковременный сбой
в работе сети.
‼ Проблема: Отключился мониторинг аппаратной загрузки серверов.
Решение: Необходимо «страховать» мониторинг фоновыми
средствами и запасными вариантами.
Слайд 15 из 19
16. Подготовка отчета
Детализации отчетов
200 графиков, 400 страниц. А хотели увидеть только выводы.
# Ситуация: Был составлен подробный отчет на 200 страниц с
множеством графиков.
‼ Проблема: Требовался краткий отчет, приведенная информация
оказалась непонятна Заказчику.
Решение: Следует разделять детализацию отчета на
Предварительный, Бизнес-отчет и Большой отчет.
Слайд 16 из 19
17. Подготовка отчета
Представление графиков
Корреляция количества пчел с объемом меда.
# Ситуация: Отчет прошел 15 итераций согласования в течение 2-х
месяцев.
‼ Проблема: Требовались различные сравнительные графики
результатов теста друг с другом.
Решение: Изначально приводить некоторые сравнительные
графики, основные — с хитами в секунду и количеством ошибок.
Слайд 17 из 19
18. Заключение
Сборник рекомендаций
Инициация
Составлять матрицу участников
Выбирать ключевой функционал
Подготовка
методики НТ
Осторожнее с еще неразработанным функционалом
Подробно описывать мониторинг
Счетчики мониторинга выбирать вместе с командой
Особое внимание критериям времени отклика операций
Подготовка
СНТ
Учитывать роли и логины пользователей
Фиксировать версию Системы
Проведение
тестирования
Проверять тесты предварительными запусками
Использовать отклонения от методики при необходимости
«Страховать» мониторинг
Подготовка
отчета
Готовить отчеты с разной детализацией
Приводить сравнительные графики показателей
Слайд 18 из 19