Нагрузочное тестирование ПО

суббота, 3 мая 2008 г.

Терминология в нагрузочном тестировании

Чтобы обсуждать подходы к нагрузочному тестированию и проблемы решаемые с его помощью, предлагаю начать с терминологии. Понимая под различными терминами одни и те же сущности можно говорить на "одном языке".


Итак. Нагрузочное тестирование - это автоматизированное тестирование, имитирующее работу определенного количества бизнес пользователей на каком либо общем (разделяемом ими) ресурсе. В качестве примера можно привести работу сотрудников современного банка, в котором все работают с одними и теми же программными приложениями, установленными на банковских серверах. Или использование программного приложения веб магазин, в данном случае посетителями, нагружающими сервера, будут пользователи интернета.


Моделирование происходит с помощью специальных продуктов и техник. Что же, чем и как мы собираемся моделировать. Для того чтобы разобраться в этом и нужно определить терминологию:


1. Приложение - тестируемое прикладное программное обеспечение.
2. Виртуальный пользователь - программный процесс, циклически выполняющий моделируемые операции.
3. Итерация – это один повтор выполняемой в цикле операции.
4. Интенсивность выполнения операции - частота выполнения операции в единицу времени, в тестовом скрипте задается интервалом времени между итерациями.
5. Нагрузка - совокупное количество попыток выполнить операции на общем ресурсе. Создается или пользовательской (клиентской) активностью или нагрузочными скриптами.
6. Производительность - количество выполняемых приложением операций в единицу времени.
7. Масштабируемость приложения - пропорциональный рост производительности при увеличении нагрузки.
8. Профилем нагрузки называется набор операций с заданными интенсивностями, полученными на основе статистики.
9. Нагрузочной точкой называется расчитанное (либо заданное Заказчиком) количество виртуальных пользователей в группах, выполняющих операции с определенными интенсивностями.


Теперь порассуждаем как эти сущности связаны между собой. Выразив интенсивность через интервал времени между итерациями, видим что рост интенсивности моделируемых операций это сокращение интервала времени. Рост нагрузки пропорционален росту интенсивности. Естественно также, что при увеличении интенсивности растет производительность. При этом увеличивается степень использования (загруженности) ресурсов. С какого то момента рост производительности прекращается (а нагрузка может продолжать расти), происходит насыщение и затем деградация системы. В дополнение можно заметить что при тестировании изменение интенсивности операций может подчиняться какому либо закону (например, Пуассона) либо быть равномерным в течении всего теста.
(Раздел терминология может пополняться по мере наполнения блога материалами по теме)

Комментарии: 5:

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]



<< Главная страница