История о том, как мы тестировали Reporting Services. Часть 2

Back

В ходе работы над одним из крупных проектов перед нами встала задача провести нагрузочное тестирование отчетов, реализованных в Reporting Services (SSRS). Требования ставились довольно серьезные:

  • отчет не должен падать при 3000 одновременных запросов к нему;
  • отчет должен выдать результат не более чем за минуту.

Начало истории можно узнать здесь

Попытка №2. Тестирование через JMeter.

После довольно продолжительных попыток тестирования Reporting Services через средства от Microsoft мы решили перейти к тестированию сторонними утилитами. Для этой цели была выбрана утилита JMeter.
Данная утилита позволяет эмулировать работу браузеров. Как раз то, что нам нужно.
Алгоритм настройки тестов очень доступно описан в блоге: https://www.blazemeter.com/blog/how-load-test-ajaxxhr-enabled-sites-jmeter
При помощи утилиты мы смогли настроить тесты, но наткнулись на проблемы при разворачивании решения на боевые сервера. JMeter, как понятно из названия, для тестирования использует технологии Java. Безопасники компании-заказчика были категорически против ставить её на боевые сервера. В чем мы их никоим образом не виним :)


Попытка №3. Возвращение к истокам

Было решено вернуться к тестированию через средства Microsoft. В этот раз мы пошли следующим путём:

        1. Создали небольшой скрипт на C#, который обращался к серверу SSRS, запрашивая нужный нам отчет в виде .CSV файла.

          2. Создали проект тестирования, в котором вызывали наш скрипт параллельно 400, 500, 600 и т.д. раз.

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

Продолжение следует...

 

Владимир Куркович

Спасибо за проявленный интерес! Интересующие материалы придут вам на указанную почту в течение одного рабочего дня.

Поздравляем, ваша регистрация успешно пройдена!