вторник, 23 декабря 2014 г. - www.msmirnov.ru

Нагрузочное тестирование с использованием Amazon Web Services

Некоторое время назад перед нами стояла задача проведения нагрузочного тестирования довольно сложной распределенной системы, предназначенной для одновременной работы большого количества конечных пользователей.

На тот момент у нас уже были автоматизированные сценарии тестирования, которые имитировали поведение обычных пользователей при работе с системой. Сценарии были разработаны с использованием Coded UI Tests и Selenium.

Эти сценарии использовались в рамках текущего автоматизированного регрессионного контроля.

Для того, чтобы организовать нагрузочное тестирование мы решили выполнять параллельный запуск большого количества сценариев, имитирующих обычную работу 100 пользователей в течении длительного времени.

В рамках такого тестирования мы решали задачи поиска деградации производительности системы, поиска узких мест и роста потребления системных ресурсов (утечки памяти, место на дисках, CPU и т.п.)

В качестве платформы размещения тестовых сценариев была выбрана облачная платформа Amazon Web Services (AWS) в следующем виде - мы создали эталонную виртуальную машину в Amazon Elastic Cloud 2 (EC2), на которую установили скрипты автоматизированного тестирования.

Затем, мы разработали отдельное центральное приложение, которое через AWS API дублировало эталонную машину в Amazon EC2 столько раз, сколько нам требовалось (например, создавало 100 одинаковых машин), затем проводило окончательную настройку тестовых сценариев и запускало эти сценарии на выполнение.

В течении заданного времени (например, 5 дней), приложение следило за работой тестовых сценариев, собирало логи, ошибки и данные мониторинга (расход памяти, CPU, производительность операций) с компонентов системы и результаты работы автоматизированных сценариев.

По завершении тестового периода центральное приложение уничтожало все тестовые виртуальные машины (кроме эталонной) и генерировало отчет о результатах тестирования, который содержал сводную информацию по всем машинам и по каждой машине отдельно.
Мой сайт - www.msmirnov.ru