Курс «Основы тестирования ПО» Лекция № 6 «Нагрузочное

Скачать презентацию Курс «Основы тестирования ПО» Лекция № 6 «Нагрузочное Скачать презентацию Курс «Основы тестирования ПО» Лекция № 6 «Нагрузочное

7-dokuchaev._osnovy_testirovaniya_po_-_lekciya_#6.pptx

  • Количество слайдов: 52

>Курс «Основы тестирования ПО» Лекция № 6 «Нагрузочное тестирование вебприложений. Продолжение.» Докучаев Сергей / Курс «Основы тестирования ПО» Лекция № 6 «Нагрузочное тестирование вебприложений. Продолжение.» Докучаев Сергей / руководитель группы нефункционального тестирования/ Тензор, 2014

>2 Вводная Сегодня на лекции:  Описание устройства SUT Как создаётся сценарий Живой пример 2 Вводная Сегодня на лекции: Описание устройства SUT Как создаётся сценарий Живой пример с JMeter Теория очередей

>3 Вводная Литература:  Документация JMeter Henry H. Liu - Software Performance and Scalability: 3 Вводная Литература: Документация JMeter Henry H. Liu - Software Performance and Scalability: A Quantitative Approach

>4 Вводная Тестирование производительности - тестирование, которое проводится с целью определения, как быстро работает 4 Вводная Тестирование производительности - тестирование, которое проводится с целью определения, как быстро работает вычислительная система или её часть под определённой нагрузкой.

>5 Объект нагрузки 5 Объект нагрузки

>6 Объект нагрузки Для того, что бы провести нагрузочное тестирование необходимо изучить следующие части 6 Объект нагрузки Для того, что бы провести нагрузочное тестирование необходимо изучить следующие части системы, которую будем нагружать: Сетевую архитектуру Конфигурацию узлов (какое железо, какой софт, какая ОС, etc.) Архитектуру приложения Подробное описание работы тестируемого узла

>7 Объект нагрузки Вебсервер БД БЛ 7 Объект нагрузки Вебсервер БД БЛ

>8 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис  форматов Сервис классификаторов … 8 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис форматов Сервис классификаторов … Сервис управления облаком Сервер статики Сервер БЛ postgres Redis

>9 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис  форматов Сервис классификаторов … 9 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис форматов Сервис классификаторов … Сервис управления облаком Сервер статики Сервер БЛ postgres Redis

>10 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис  форматов Сервис классификаторов … 10 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис форматов Сервис классификаторов … Сервис управления облаком Сервер статики Сервер БЛ postgres Redis

>11 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис  форматов Сервис классификаторов … 11 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис форматов Сервис классификаторов … Сервис управления облаком Сервер статики Сервер БЛ postgres Redis

>12 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис  форматов Сервис классификаторов … 12 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис форматов Сервис классификаторов … Сервис управления облаком Сервер статики Сервер БЛ postgres Redis

>13 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис  форматов Сервис классификаторов … 13 Объект нагрузки Диспетчер Статика Препроцессор Сервис аутентификации Сервис форматов Сервис классификаторов … Сервис управления облаком Сервер статики Сервер БЛ postgres Redis

>14 Проведение тестирования 14 Проведение тестирования

>15 Проведение тестирования Как «много» нужно тестировать?  Все данные получены эмпирически и в 15 Проведение тестирования Как «много» нужно тестировать? Все данные получены эмпирически и в целом схожи с аналогичными в других компаниях/командах. Для тестирования производительности требуется минимум 100 значений для репрезентативной выборки. Нужно проводить минимум два испытания, желательно три, в идеале более 5 Тест должен длится не менее 10-15 минут для нагрузочного теста.

>16 Проведение тестирования Что нужно предпринять перед началом нагрузочного теста?  Согласовать проведение теста 16 Проведение тестирования Что нужно предпринять перед началом нагрузочного теста? Согласовать проведение теста (с разработкой, сборщиками, тестировщиками) Изолировать тестируемую систему (например блокировать IP отличные от наших) После блокировки перепроверять/выставлять исходные настройки тестируемой системы

>17 Проведение тестирования Что нужно делать во время теста?  Чаще всего запускаем ночью, 17 Проведение тестирования Что нужно делать во время теста? Чаще всего запускаем ночью, когда нужные стенды свободны, поэтому по факту ничего делать не нужно. Смириться с тем, что всё проконтролировать не получится, как бы мы не старались, но стремится к этому нужно. Если аномалий меньше 5%, то не обращаем внимания, если больше 10%, то останавливаем тестирование (используем автостоперы)

>18 Проведение тестирования Пример  Цель: проверить соответствует ли производительность сервиса авторизации SLA, по 18 Проведение тестирования Пример Цель: проверить соответствует ли производительность сервиса авторизации SLA, по которому авторизация должна осуществляться быстрее чем за 1 секунду при нагрузке в 50 запросов в секунду. Дополнительная цель: выявить верхнюю границу производительности, после которой мы получаем ошибки.

>19 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации 19 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации

>20 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации 20 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации

>21 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации 21 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации

>22 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации 22 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации

>23 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации 23 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации

>24 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации 24 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации

>25 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации 25 Объект нагрузки Диспетчер IIS Сервер БЛ postgres Redis БЛ Сервис авторизации

>26 Живой пример Живой пример 26 Живой пример Живой пример

>27 Теория очередей 27 Теория очередей

>28 Теория очередей Теория массового обслуживания (теория очередей) — раздел теории вероятностей, занимающийся подбором 28 Теория очередей Теория массового обслуживания (теория очередей) — раздел теории вероятностей, занимающийся подбором оптимальной системы обслуживания и выстраивания процессов, на основе требований и эмпирических данных. Активно использует методы теории вероятностей и математической статистики.

>29 Теория очередей Используется для моделирования процессов:  очереди в столовой промышленное производство автомобилей 29 Теория очередей Используется для моделирования процессов: очереди в столовой промышленное производство автомобилей или ipod’ов высоконагруженный call-центр телекоммуникационная система, состоящая из множества сетевых устройств, пропускающая через себя гигантские объемы трафика компьютерные системы, которые выполняют большое число запросов от пользователей

>30 Теория очередей Зачем нужна нам?  представить процессы в математической форме научный, а 30 Теория очередей Зачем нужна нам? представить процессы в математической форме научный, а не инженерный подход к решению задач очень хорошо помогает определить «узкие места» в приложении определение причин возникшей проблемы не методом «научного тыка» позволяет вычислить необходимые ресурсы при увеличении числа пользователей

>31 Теория очередей 31 Теория очередей

>32 Теория очередей Условные обозначения:  W – время стояния в очереди S – 32 Теория очередей Условные обозначения: W – время стояния в очереди S – время обслуживания R – общее время от попадания в очередь до оплаты заказа N – длина очереди V – число посетителей, зашедших в столовую U – процент времени, за который кассир работал X – число посетителей, обслуживаемых за один час λ – скорость притока посетителей

>33 Теория очередей Условные обозначения:  W – время стояния в очереди S – 33 Теория очередей Условные обозначения: W – время стояния в очереди S – время обработки запроса R – общее время ответа N – длина очереди V – число запросов U – процент времени, за который элемент системы использовался X – пропускная способность системы λ – интенсивность запросов

>34 Теория очередей Стохастическая природа параметров:  Мы не знаем, кто когда, как интенсивно 34 Теория очередей Стохастическая природа параметров: Мы не знаем, кто когда, как интенсивно начнёт работать с нашим приложением пользователь Время обслуживания зависит от столь большого числа параметров, что в какой-то степени является рандомным Остальные параметры так же зависят от нескольких случайных значений и как следствие сами становятся случайными

>35 Теория очередей Стохастическая природа параметров:  Мы не знаем, кто когда, как интенсивно 35 Теория очередей Стохастическая природа параметров: Мы не знаем, кто когда, как интенсивно начнёт работать с нашим приложением пользователь Время обслуживания зависит от столь большого числа параметров, что в какой-то степени является рандомным Остальные параметры так же зависят от нескольких случайных значений и как следствие сами становятся случайными Теория вероятностей

>39 Теория очередей Случайные процессы:  Процессы Маркова (Поток Пуассона)  Детерминистические процессы 39 Теория очередей Случайные процессы: Процессы Маркова (Поток Пуассона) Детерминистические процессы Общие процессы

>40 Теория очередей Если применить процессы Маркова к простейшей системе с очередями, то получаем 40 Теория очередей Если применить процессы Маркова к простейшей системе с очередями, то получаем такие выводы: Число входящих запросов подчиняется распределению Пуассона Интервалы между запросами подчиняются экспоненциальному распределению Время обработки запроса так же подчиняется экспоненциальному распределению

>43 Теория очередей Нотация Кенделла: A/S/c/K/N/D  A – процесс, описывающий поступление запросов (e.g. 43 Теория очередей Нотация Кенделла: A/S/c/K/N/D A – процесс, описывающий поступление запросов (e.g. Пуассоновский процесс запросов) S – распределение для времени сервиса с – число серверов K – ёмкость системы (сколько пользователей могут одновременно находиться в системе) N – число потенциальных пользователей D – правило обслуживания пользователей (e.g. FIFO)

>45 Теория очередей Самая простая и популярная модель: M/M/1  В чём бонусы: просто 45 Теория очередей Самая простая и популярная модель: M/M/1 В чём бонусы: просто считать метрики вручную подходит даже для других моделей для того, что бы «на коленке» оценить результаты нагрузки или сделать какое-либо прогнозирование

>46 Теория очередей Самая простая и популярная модель: M/M/1  Будем рассматривать модель с 46 Теория очередей Самая простая и популярная модель: M/M/1 Будем рассматривать модель с обратной связью, т.е. для завершения транзакции пользователю ещё раз нужно постоять в очереди (ещё раз отправить запрос).

>47 Теория очередей 47 Теория очередей

>48 Теория очередей Самая простая и популярная модель: M/M/1  Будем рассматривать модель с 48 Теория очередей Самая простая и популярная модель: M/M/1 Будем рассматривать модель с обратной связью, т.е. для завершения транзакции пользователю ещё раз нужно постоять в очереди (ещё раз отправить запрос). Данный момент в корне меняет распределения параметра λ: без обратной связи интенсивность запросов подчиняется Пуассоновскому распределению c обратной связью перестаёт быть Пуассоновским но по теореме Джексона поведение очереди продолжает подчиняться законам Пуассоновских процессов

>49 Теория очередей Самая простая и популярная модель: M/M/1  Будем рассматривать модель с 49 Теория очередей Самая простая и популярная модель: M/M/1 Будем рассматривать модель с обратной связью, т.е. для завершения транзакции пользователю ещё раз нужно постоять в очереди (ещё раз отправить запрос). Данный момент в корне меняет распределения параметра λ: без обратной связи интенсивность запросов подчиняется Пуассоновскому распределению c обратной связью перестаёт быть Пуассоновским но по теореме Джексона поведение очереди продолжает подчиняться законам Пуассоновских процессов Важна интенсивность запросов, а не время ответа

>51 Вопросы есть? 51 Вопросы есть?

>Спасибо за внимание! Разработка СБИС  Докучаев Сергей Валерьевич / sv.dokuchaev@tensor.ru (4852) 262-000 (доб. Спасибо за внимание! Разработка СБИС Докучаев Сергей Валерьевич / [email protected] (4852) 262-000 (доб. 3435) sbis.ru

>

>

>

>

>

>

>