Про Тестинг: обеспечение качества, тестирование, автоматизация

Раздел: Автоматизация > Нагрузочное тестирование > Терминология

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

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

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

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

  1. Виртуальный пользователь (Virtual User) - программный процесс, циклически выполняющий моделируемые операции
  2. Итерация (Iteration) – это один повтор выполняемой в цикле операции
  3. Интенсивность выполнения операции (Operation Intensity) - частота выполнения операции в единицу времени, в тестовом скрипте задается интервалом времени между итерациями
  4. Нагрузка (Loading) - совокупное выполнение операций на общем ресурсе (тр./сек, хитов/сек)
  5. Производительность (Performance) - количество выполняемых операций за период времени (N операций за M часов)
  6. Масштабируемость приложения (Application Scalability) - пропорциональный рост производительности при увеличении нагрузки
  7. Профиль нагрузки (Performance Profile) - это набор операций с заданными интенсивностями, полученный на основе сбора статистических данных либо определенный путем анализа требований к тестируемой системе
  8. Нагрузочной точкой называется рассчитанное (либо заданное Заказчиком) количество виртуальных пользователей в группах, выполняющих операции с определенными интенсивностями

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


Автор: Андрей Широбоков

Наверх