Serious+performance+testing

2,093 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,093
On SlideShare
0
From Embeds
0
Number of Embeds
1,212
Actions
Shares
0
Downloads
26
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Serious+performance+testing

  1. 1. Тестирование производительности всерьёз Владимир Вахлов, «Эксперт-система»
  2. 2. Производительность систем Цель Методология Инструментарий Ресурсы
  3. 3. Тестирование производительности Нагрузочное Load testing Стресс Stress-testing Стабильности Stability / Soak / Endurance testing Конфигурационное Configuration testing
  4. 4. Нагрузочное тестирование Load testing • Цель: соответствие требованиям • Ожидаемая или планируемая нагрузка • Пробное тестирование при отсутствии требований
  5. 5. Стресс-тестирование Stress-testing • Цель: оценка вне рамок нормального использования • Повышенная или непропорциональная нагрузка • ОсноваТестирования Ёмкости
  6. 6. Тестирование Ёмкости (стресс-тестирование) Capacity testing • Цель: максимальная нагрузка при соответствии требованиям • Часть процесса Планирования Ёмкости • Не путать с тестированием объема (volume testing)0% 20% 40% 60% 80% 100%
  7. 7. Тестирование стабильности Stability / Soak / Endurance testing • Цель: оценка производительности в течение длительного времени • Ожидаемая или планируемая нагрузка • Обнаруживает деградацию производительности во времени
  8. 8. Конфигурационное тестирование Configuration testing • Цель: оптимальная конфигурация системы КОНФИГУРАЦИЯ ОКРУЖЕНИЯ программная аппаратная КОНФИГУРАЦИЯ ПРИЛОЖЕНИЯ программная
  9. 9. Подходы к тестированию Пример (онлайн-магазин авиабилетов) Сервер приложений База данных Веб-клиент API
  10. 10. Необходимость регулярного тестирования • Время ответа пользователю – ключевой показатель производительности • Конкуренция на рынке • Соглашение об уровне предоставления услуг (SLA)
  11. 11. Бизнес-вопрос Сколько билетов может быть продано системой за 1 минуту?
  12. 12. Транзакционный подход Концепция Трактовка бизнес-вопроса: время обработки системой самой важной транзакции (покупка билета) Не должно превышать 2500 мс при 25 одновременных запросах
  13. 13. Транзакционный подход Полученный результат 0 500 1000 1500 2000 2500 5 10 15 20 25 Времяотклика,мс Количество одновременных запросов на бронирование Зависимость среднего времени отклика системы от количества запросов
  14. 14. Транзакционный подход Полученный результат Сервер приложений Поиск Логин Регистрация Навигация Оплата Покупка База данных Рассылка email Рейсы
  15. 15. Транзакционный подход. Недостатки • Не задействует всех внутренних механизмов системы • Не проверяет работу системы в совокупности с другими транзакциями
  16. 16. Мультитранзакционный подход Концепция Трактовка бизнес-вопроса: время обработки системой набора самых важных транзакций Не должны превышать 2500 мс при 25 одновременных запросах каждого типа
  17. 17. Мультитранзакционный подход Полученный результат 0 1000 2000 3000 Логин Покупка Оплата Навигация Поиск Времяотклика,мс Тип запроса Время отклика системы на критические запросы
  18. 18. Мультитранзакционный подход Полученный результат Сервер приложений Поиск Логин Регистрация Навигация Оплата Покупка База данных
  19. 19. Мультитранзакционный подход Недостатки • Не учитывает взаимосвязи между транзакциями • Не задействует последовательности и цепочки транзакций
  20. 20. Мультитранзакционный подход Полученный результат Поиск Логин Навигация Оплата Покупка База данных Обнуление сессий Добавление в кэш Навигация Проверка миль Навигация Пересчет и оплата Добавление карты Навигация Связь с банком
  21. 21. Ориентация на конечного пользователя Концепция Трактовка бизнес-вопроса: сумеет ли система обработать N одновременно работающих с ней пользователей? ...исходя из описанных требований ко времени обработки всех критических транзакций
  22. 22. Ориентация на конечного пользователя Концепция • Задействует все критические транзакции, пропорции и побочные действия пользователя • Стремится покрыть все механизмы системы, влияющие на производительность
  23. 23. Ориентация на конечного пользователя Концепция ?
  24. 24. Ориентация на конечного пользователя 0 200 400 600 800 1,000 0:00 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00 КоличествозапросовтипаN Время Количество входящих в живую систему запросов Нагрузка на живой платформе Модель нагрузки для теста, основанная на среднем значении Модель, основанная на максимуме
  25. 25. Ориентация на конечного пользователя Концепция • Модель, основанная на средних • Модель, основанная на максимумах
  26. 26. Модель, основанная на средних  Определяет соответствие системы требованиям  Не даёт понимания о работе системы при регулярных всплесках активности  Плохо обнаруживает узкие места
  27. 27. Модель, основанная на максимумах  Обнаруживает узкие места  В случае провала не даёт ответа о реальном соответствии требованиям  Предъявляет завышенные требования к системе на программном и аппаратном уровнях
  28. 28. Ориентация на конечного пользователя • Модель, основанная на средних • Модель, основанная на максимумах 
  29. 29. Реалистичный подход Концепция Динамическая нагрузка! 
  30. 30. Реалистичный подход Концепция 0 200 400 600 800 1,000 1,200 1,400 1,600 1,800 0:00 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00 КоличествозапросовтипаN Количество входящих в систему запросов Нагрузка на живой платформе Модель нагрузки для теста Модель, линейно увеличенная вдвое
  31. 31. Реалистичный подход  Критические транзакции  Пропорциональность  Типичные действия пользователя  Случайность действий пользователя  Обработка внешних событий  Динамическая скорость нагрузки  Включение различных интерфейсов
  32. 32. Реалистичный подход. Что необходимо? • Framework • Аппаратные мощности
  33. 33. Применение Тестируемый серверЕдиное управление
  34. 34. Применение. Computing Cloud. Тестируемый серверЕдиное управление
  35. 35. Эффективность  Нахождение максимального числа узких мест системы  Более прагматичное отношение к аппаратным ресурсам и оптимизации кода  Адекватная оценка перспектив системы
  36. 36. Итоги • Реалистичный подход сложен, но максимально эффективен для мультипользовательских систем • Наличие правильного инструментария дает возможность для гибкого тестирования системы • Развитие Cloud Computing систем упрощает и делает подход актуальным уже сегодня.
  37. 37. Вопросы?

×