
Докучаев. Основы тестирования ПО - Лекция #6.pptx
- Количество слайдов: 52
Курс «Основы тестирования ПО» Лекция № 6 «Нагрузочное тестирование вебприложений. Продолжение. » Докучаев Сергей / руководитель группы нефункционального тестирования/ Тензор, 2014
Вводная Сегодня на лекции: 1. 2. 3. 4. Описание устройства SUT Как создаётся сценарий Живой пример с JMeter Теория очередей 2
Вводная Литература: 1. Документация JMeter 2. Henry H. Liu - Software Performance and Scalability: A Quantitative Approach 3
Вводная Тестирование производительности - тестирование, которое проводится с целью определения, как быстро работает вычислительная система или её часть под определённой нагрузкой. 4
Объект нагрузки 5
Объект нагрузки Для того, что бы провести нагрузочное тестирование необходимо изучить следующие части системы, которую будем нагружать: 1. 2. 3. 4. Сетевую архитектуру Конфигурацию узлов (какое железо, какой софт, какая ОС, etc. ) Архитектуру приложения Подробное описание работы тестируемого узла 6
Объект нагрузки Вебсервер БЛ БД 7
Объект нагрузки Статика Препроцессор postgres Redis Сервер статики Диспетчер Сервис управления облаком Сервис аутентификации Сервис форматов Сервис классификаторов … Сервер БЛ 8
Объект нагрузки Статика Препроцессор postgres Redis Сервер статики Диспетчер Сервис управления облаком Сервис аутентификации Сервис форматов Сервис классификаторов … Сервер БЛ 9
Объект нагрузки Статика Препроцессор postgres Redis Сервер статики Диспетчер Сервис управления облаком Сервис аутентификации Сервис форматов Сервис классификаторов … Сервер БЛ 10
Объект нагрузки Статика Препроцессор postgres Redis Сервер статики Диспетчер Сервис управления облаком Сервис аутентификации Сервис форматов Сервис классификаторов … Сервер БЛ 11
Объект нагрузки Статика Препроцессор postgres Redis Сервер статики Диспетчер Сервис управления облаком Сервис аутентификации Сервис форматов Сервис классификаторов … Сервер БЛ 12
Объект нагрузки Статика Препроцессор postgres Redis Сервер статики Диспетчер Сервис управления облаком Сервис аутентификации Сервис форматов Сервис классификаторов … Сервер БЛ 13
Проведение тестирования 14
Проведение тестирования Как «много» нужно тестировать? Все данные получены эмпирически и в целом схожи с аналогичными в других компаниях/командах. Для тестирования производительности требуется минимум 100 значений для репрезентативной выборки. Нужно проводить минимум два испытания, желательно три, в идеале более 5 Тест должен длится не менее 10 -15 минут для нагрузочного теста. 15
Проведение тестирования Что нужно предпринять перед началом нагрузочного теста? Согласовать проведение теста (с разработкой, сборщиками, тестировщиками) Изолировать тестируемую систему (например блокировать IP отличные от наших) После блокировки перепроверять/выставлять исходные настройки тестируемой системы 16
Проведение тестирования Что нужно делать во время теста? Чаще всего запускаем ночью, когда нужные стенды свободны, поэтому по факту ничего делать не нужно. Смириться с тем, что всё проконтролировать не получится, как бы мы не старались, но стремится к этому нужно. Если аномалий меньше 5%, то не обращаем внимания, если больше 10%, то останавливаем тестирование (используем автостоперы) 17
Проведение тестирования Пример Цель: проверить соответствует ли производительность сервиса авторизации SLA, по которому авторизация должна осуществляться быстрее чем за 1 секунду при нагрузке в 50 запросов в секунду. Дополнительная цель: выявить верхнюю границу производительности, после которой мы получаем ошибки. 18
Объект нагрузки IIS Диспетчер БЛ Сервис авторизации postgres Redis Сервер БЛ 19
Объект нагрузки IIS Диспетчер БЛ Сервис авторизации postgres Redis Сервер БЛ 20
Объект нагрузки IIS Диспетчер БЛ Сервис авторизации postgres Redis Сервер БЛ 21
Объект нагрузки IIS Диспетчер БЛ Сервис авторизации postgres Redis Сервер БЛ 22
Объект нагрузки IIS Диспетчер БЛ Сервис авторизации postgres Redis Сервер БЛ 23
Объект нагрузки IIS Диспетчер БЛ Сервис авторизации postgres Redis Сервер БЛ 24
Объект нагрузки IIS Диспетчер БЛ Сервис авторизации postgres Redis Сервер БЛ 25
Живой пример 26
Теория очередей 27
Теория очередей Теория массового обслуживания (теория очередей) — раздел теории вероятностей, занимающийся подбором оптимальной системы обслуживания и выстраивания процессов, на основе требований и эмпирических данных. Активно использует методы теории вероятностей и математической статистики. 28
Теория очередей Используется для моделирования процессов: • • очереди в столовой промышленное производство автомобилей или ipod’ов высоконагруженный call-центр телекоммуникационная система, состоящая из множества сетевых устройств, пропускающая через себя гигантские объемы трафика • компьютерные системы, которые выполняют большое число запросов от пользователей 29
Теория очередей Зачем нужна нам? • • представить процессы в математической форме научный, а не инженерный подход к решению задач очень хорошо помогает определить «узкие места» в приложении определение причин возникшей проблемы не методом «научного тыка» • позволяет вычислить необходимые ресурсы при увеличении числа пользователей 30
Теория очередей 31
Теория очередей Условные обозначения: W – время стояния в очереди S – время обслуживания R – общее время от попадания в очередь до оплаты заказа N – длина очереди V – число посетителей, зашедших в столовую U – процент времени, за который кассир работал X – число посетителей, обслуживаемых за один час λ – скорость притока посетителей 32
Теория очередей Условные обозначения: W – время стояния в очереди S – время обработки запроса R – общее время ответа N – длина очереди V – число запросов U – процент времени, за который элемент системы использовался X – пропускная способность системы λ – интенсивность запросов 33
Теория очередей Стохастическая природа параметров: • Мы не знаем, кто когда, как интенсивно начнёт работать с нашим приложением пользователь • Время обслуживания зависит от столь большого числа параметров, что в какой-то степени является рандомным • Остальные параметры так же зависят от нескольких случайных значений и как следствие сами становятся случайными 34
Теория очередей Стохастическая природа параметров: • Мы не знаем, кто когда, как интенсивно начнёт работать с нашим приложением пользователь • Время обслуживания зависит от столь большого числа параметров, что в какой-то степени является рандомным • Остальные параметры так же зависят от нескольких случайных значений и как следствие сами становятся случайными Теория вероятностей 35
Теория очередей 36
Теория очередей 37
Теория очередей 38
Теория очередей Случайные процессы: 1. Процессы Маркова (Поток Пуассона) 2. Детерминистические процессы 3. Общие процессы 39
Теория очередей Если применить процессы Маркова к простейшей системе с очередями, то получаем такие выводы: 1. Число входящих запросов подчиняется распределению Пуассона 2. Интервалы между запросами подчиняются экспоненциальному распределению 3. Время обработки запроса так же подчиняется экспоненциальному распределению 40
Теория очередей 41
Теория очередей 42
Теория очередей Нотация Кенделла: A/S/c/K/N/D A – процесс, описывающий поступление запросов (e. g. Пуассоновский процесс запросов) S – распределение для времени сервиса с – число серверов K – ёмкость системы (сколько пользователей могут одновременно находиться в системе) N – число потенциальных пользователей D – правило обслуживания пользователей (e. g. FIFO) 43
Теория очередей 44
Теория очередей Самая простая и популярная модель: M/M/1 В чём бонусы: • просто считать метрики вручную • подходит даже для других моделей для того, что бы «на коленке» оценить результаты нагрузки или сделать какое-либо прогнозирование 45
Теория очередей Самая простая и популярная модель: M/M/1 Будем рассматривать модель с обратной связью, т. е. для завершения транзакции пользователю ещё раз нужно постоять в очереди (ещё раз отправить запрос). 46
Теория очередей 47
Теория очередей Самая простая и популярная модель: M/M/1 Будем рассматривать модель с обратной связью, т. е. для завершения транзакции пользователю ещё раз нужно постоять в очереди (ещё раз отправить запрос). Данный момент в корне меняет распределения параметра λ: • • • без обратной связи интенсивность запросов подчиняется Пуассоновскому распределению c обратной связью перестаёт быть Пуассоновским но по теореме Джексона поведение очереди продолжает подчиняться законам Пуассоновских процессов 48
Теория очередей Самая простая и популярная модель: M/M/1 Будем рассматривать модель с обратной связью, т. е. для завершения транзакции пользователю ещё раз нужно постоять в очереди (ещё раз отправить запрос). Данный момент в корне меняет распределения параметра λ: • • • без обратной связи интенсивность запросов подчиняется Пуассоновскому распределению c обратной связью перестаёт быть Пуассоновским но по теореме Джексона поведение очереди продолжает подчиняться законам Пуассоновских процессов Важна интенсивность запросов, а не время ответа 49
Теория очередей 50
Вопросы есть? 51
Спасибо за внимание! Докучаев Сергей Валерьевич / sv. dokuchaev@tensor. ru (4852) 262 -000 (доб. 3435) sbis. ru Разработка СБИС