Виды тестирования производительности

advertisement
Тестирование
производительности
Содержание лекции







Зачем нужно тестировать производительность?
Виды тестирования производительности
Нагрузочное тестирование
Тест на выносливость
Стресс-тест
Тест на работу при нехватке ресурсов
Тест на масштабируемость
Зачем нужно тестировать
производительность?



Как правило, при разработке ПО указывается
необходимая производительность при
определённых конфигурациях сервера/ПО
Тестирование производительности позволяет
выявить несоответствие между ожидаемой и
реальной производительностью системы, а
также слабые места и возможные проблемы.
Тестирование производительности затрагивает
не только ПО как таковое, но и особенности
конфигурации ПО и аппаратные средства.
Виды тестирования
производительности






Нагрузочное тестирование (load testing)
Тест на выносливость (endurance testing)
Стресс-тест (stress-test)
Тест на работу при нехватке ресурсов (exhaust
test)
Тест на масштабируемость (scalability test)
Нагрузочное тестирование



Основной вид тестирования
производительности
Используется для определения времени
отклика при фиксированной нагрузке
либо
Используется для определения нагрузки, не
превышающей фиксированное время отклика
Термины



Время отклика – время, в течение которого
система обрабатывает время действия
пользователя и возвращает результат.
Нагрузка (в данном контексте) – количество
запросов, посылаемых на сервер за единицу
времени.
Производительность системы – способность
выдерживать определённую нагрузку
Нагрузочное тестирование



Тестирование производительности заключается
в эмуляции различных действий большого
количества пользователей.
Последовательность действий пользователя
называется сценарием.
Качество тестировании производительности во
многом зависит от проработки сценариев.
Сценарии




Сценарии должны быть максимально
приближены к реальности
Сценарии могут быть сколь угодно сложными
При разработке сценариев важно понимать
структуру тестируемого ПО и особенности
аппаратного и программного обеспечения
В большинстве ПО для нагрузочного
тестирования существует возможность
параметризации сценариев
Нагрузочное тестирование

Результатом нагрузочного тестирования
обычно является график зависимости времени
отклика от нагрузки (или наоборот)
Выглядит он примерно так:
Average response time for user profiles
14,00
12,00
10,00
response time, sec

8,00
Active reader average
Passive reader average
Forum user average
6,00
4,00
2,00
,00
1230
1360
1490
1620
1750
Users online
1880
2010
2140
2270
Время отклика (Response time)






Согласно исследованиям, впечатления
пользователей от зугрузки страницы вылядят
так:
<1c – отлично
1с-3с – хорошо
3с-6с – приемлимо
6с-12с – неприемлимо, очень плохо
>12c – убейте меня
Тест на выносливость



Проводится для того, чтобы убедиться в
неизменности производительности с течением
времени
Тестирование осуществляется при рассчётной
нагрузке в течение продолжительного (сутки,
или даже больше) времени
Если система стабильно, время отклика не
должно изменяться. Также не должны
изменяться значения счётчиков
производительности на сервере.
Счётчики производительности
на сервере



Загрузка процессоров (CPU load)
Выделение памяти (RAM usage)
Очередь обращения к HDD
Стресс-тест



Проводится для того, чтобы узнать при какой
нагрузке упадёт система, и главное – сможет ли
она сама оправиться от падения.
Также очень важно выяснить, не произойдёт ли
непоправимых сбоев при падении системы.
Стресс-тест проводится при 300% - 1000%
рассчётной загрузке в течении
непродолжительного времени (15-30 мин)
Тест на работу при нехватке
ресурсов



Проводится для того, чтобы узнать сможет ли
система работать при нехватке системных
ресурсов
Если система сможет так работать, нужно
определить какой параметр больше всего
влияет на производительность, и как сильно
Проводится при 100% рассчётной нагрузке в
течение длительного времени, при этом, после
«прогревочного» периода на сервере урезают
один из ресурсов (CPU, RAM, HDD)
Тест на масштабируемость


Проводится для того, чтобы определить как
изменится производительность системы при
изменении характеристик сервера
Проводится при 100% рассчётной нагрузке в
течение длительного времени, при этом через
определённый интервал времени на сервере
изменяется один из параметров (CPU, RAM,
HDD) с небольшим шагом.
Download