- •Нефункциональное тестирование веб-сервисов
- •Тестирование производительности
- •Планирование тестирования производительности веб-сервиса.
- •Использование SoapUi для тестирования производительности
- •Интервалы выполнения нагрузочного теста
- •Стратегии нагрузочного тестирования в SoapUi
- •Простая стратегия нагрузки
- •Пример.
- •«Взрывная» стратегия нагрузки
- •Потоковая стратегия
- •Вариативная стратегия
- •Отчет и статистика нагрузочного тестирования в SoapUi
- •Графики
- •Использование операторов контроля (assertion) в нагрузочных тестах soapUi
- •Оператор контроля Max Errors
- •Оператор контроля Step Average
- •Оператор контроля Step tps
- •Оператор контроля Step Maximum
- •Оператор контроля Step Status
- •Дополнительные опции нагрузочного тестирования
Использование SoapUi для тестирования производительности
Давайте посмотрим на то, как SoapUI может помочь в достижении целей тестирования производительности вашего веб-сервиса. Как мы говорили выше, тестирование производительности веб-услуг работает не только с SOAP или XML сообщений. Так как SoapUI поддерживает несколько форматов сообщений через единый интерфейс, вы можете запустить несколько видов тестов производительности. В вашем SOA, вы можете иметь различные виды услуг, некоторые SOAP, некоторые JSON, а некоторые обычный XML над HTTP. Очевидно, что вы не хотите сохранять совершенно разные тестовые сценарии или инструменты для проверки производительности веб-сервисов, которые потребляет различные типы сообщений. SoapUI позволяет сохранить все тесты в одном месте и поддерживать их из единого интерфейса.
Кроме того, SoapUI позволяет пользователям настраивать различные параметры тестирования нагрузки, такие как введения задержки между потоками, для имитации реальных прецедентов.
Интервалы выполнения нагрузочного теста
Limit определяют интервал выполнения нагрузочного теста. Есть две переменные для определения ограничений: Предельное значение и тип лимита. Типов лимитов есть три;
Total Runs (всего выполнено)
Seconds (секунды)
Runs per Thread (всего запущено на поток)
Тип предела Total Runs используется, для определения количества раз выполнения тест-кейса. Если установить 60 Total Runs, тест-кейс выполняется 60 раз. При этом если тест-кейс включает N тестовых шагов, все N шаги будут выполнены 60 раз.
Если мы устанавливаем тип предела Seconds, то тест будет работать, пока заданное время не закончится
Тип предела Runs per Thread может быть использован для определения количества запусков TestCase в несколько потоков. Например, если установить ограничение в 5 запусков и количество потоков 2, то TestCase отработает 10 раз
Потоки в SoapUI Потоки выступают в качестве виртуальных пользователей в нагрузочном тесте. Если число потоков устанавливается как N, то SoapUI создает N клонов, в связанном TestCase и выполняет их. Можно установить столько юзеров, сколько может обработать тестируемая среда
Стратегии нагрузочного тестирования в SoapUi
SoapUI позволяет моделировать различные типы нагрузки на веб-сервисы В бесплатной версии SoapUI, можно выделить следующие типы стратегий:
Simple
Burst
Thread
Variance
Каждая из этих стратегий имеет соответствующие ей переменные, такие как Test Delay, Random и другие
Простая стратегия нагрузки
Стратегия тестирования нагрузки по умолчанию в SoapUI это стратегия Simple. В Simple стратегии, Test Delay определяет задержку между каждым тестом. Переменная Random используется для выбора относительного количества случайных отклонений от указанной Test Delay. Если Test Delay указан 1000 мс и Random 0,то каждый тест будет выполняться с интервалом в 1 секунду. Если Random 1, то все тесты будут выполнены со случайной задержкой между каждым тестом.
Пример.
Установите следующие параметры нагрузочного теста:
Threads= 2
Strategy= Simple
Test Delay= 5000
Random= 0
Limit= 30 seconds
Если запустить тест, то заметим, что cnt value (общее количество раз выполнения TestStep) увеличивается на 2 с интервалом в 5 секунд. Так как мы определили два потока, то естественно, что TestCase будет выполняться 2 раза с 5-секундными интервалами (задержка 5000 мс и Random=0 ). Тест будет выполняться с 5 секундными интервалами в два потока в течение 30 секунд. Если мы установим Random 1, все тестовые потоки будут выполнены с произвольной задержки между друг другом.
Важно Простая стратегия нагрузка идеально подходит для оценки веб-службы (бенчмаркинга). Если установить Random=0, то можно будет сравнивать производительность веб-сервиса до и после каких-либо обновлений и определять есть ли изменения показателей.
Также можно выполнять стресс-тесты с простой стратегией нагрузки. Установив Random=0 и Test Delay=0, можно имитировать "взрыв" в тестируемой веб-службе.
