Некоторое время назад перед нами стояла задача проведения нагрузочного тестирования довольно сложной распределенной системы, предназначенной для одновременной работы большого количества конечных пользователей.
На тот момент у нас уже были автоматизированные сценарии тестирования, которые имитировали поведение обычных пользователей при работе с системой. Сценарии были разработаны с использованием Coded UI Tests и Selenium.
Эти сценарии использовались в рамках текущего автоматизированного регрессионного контроля.
Для того, чтобы организовать нагрузочное тестирование мы решили выполнять параллельный запуск большого количества сценариев, имитирующих обычную работу 100 пользователей в течении длительного времени.
В рамках такого тестирования мы решали задачи поиска деградации производительности системы, поиска узких мест и роста потребления системных ресурсов (утечки памяти, место на дисках, CPU и т.п.)
В качестве платформы размещения тестовых сценариев была выбрана облачная платформа Amazon Web Services (AWS) в следующем виде - мы создали эталонную виртуальную машину в Amazon Elastic Cloud 2 (EC2), на которую установили скрипты автоматизированного тестирования.
Затем, мы разработали отдельное центральное приложение, которое через AWS API дублировало эталонную машину в Amazon EC2 столько раз, сколько нам требовалось (например, создавало 100 одинаковых машин), затем проводило окончательную настройку тестовых сценариев и запускало эти сценарии на выполнение.
В течении заданного времени (например, 5 дней), приложение следило за работой тестовых сценариев, собирало логи, ошибки и данные мониторинга (расход памяти, CPU, производительность операций) с компонентов системы и результаты работы автоматизированных сценариев.
По завершении тестового периода центральное приложение уничтожало все тестовые виртуальные машины (кроме эталонной) и генерировало отчет о результатах тестирования, который содержал сводную информацию по всем машинам и по каждой машине отдельно.
На тот момент у нас уже были автоматизированные сценарии тестирования, которые имитировали поведение обычных пользователей при работе с системой. Сценарии были разработаны с использованием Coded UI Tests и Selenium.
Эти сценарии использовались в рамках текущего автоматизированного регрессионного контроля.
Для того, чтобы организовать нагрузочное тестирование мы решили выполнять параллельный запуск большого количества сценариев, имитирующих обычную работу 100 пользователей в течении длительного времени.
В рамках такого тестирования мы решали задачи поиска деградации производительности системы, поиска узких мест и роста потребления системных ресурсов (утечки памяти, место на дисках, CPU и т.п.)
В качестве платформы размещения тестовых сценариев была выбрана облачная платформа Amazon Web Services (AWS) в следующем виде - мы создали эталонную виртуальную машину в Amazon Elastic Cloud 2 (EC2), на которую установили скрипты автоматизированного тестирования.
Затем, мы разработали отдельное центральное приложение, которое через AWS API дублировало эталонную машину в Amazon EC2 столько раз, сколько нам требовалось (например, создавало 100 одинаковых машин), затем проводило окончательную настройку тестовых сценариев и запускало эти сценарии на выполнение.
В течении заданного времени (например, 5 дней), приложение следило за работой тестовых сценариев, собирало логи, ошибки и данные мониторинга (расход памяти, CPU, производительность операций) с компонентов системы и результаты работы автоматизированных сценариев.
По завершении тестового периода центральное приложение уничтожало все тестовые виртуальные машины (кроме эталонной) и генерировало отчет о результатах тестирования, который содержал сводную информацию по всем машинам и по каждой машине отдельно.
Комментариев нет:
Отправить комментарий