Цель: Найти решение возникших проблем при тестировании сервисов WCF.
Проблема: При нагрузочном тестировании с помощью ПО VS2010Ultimate и WCFStrom результаты отличаются на порядок, кому верить?
VS2010Ultimate = 0.08 sec
WCFStrom = 0.0025 sec
Правда при одинаковых условиях 1 пользователь 100 запросов. результаты отличаются. При увеличении количества пользователей и времени на тестирование, получаем увеличение запросов в VS2010Ultimate в 2 раза больше. это видно на скринах, но и тестов получает пройдено в VS2010Ultimate в два раза больше.
КОМУ ВЕРИТЬ?
1.png 239,32К 61 Количество загрузок: и 2.png 259,8К 55 Количество загрузок:
Тестирование среды ( кластера, производственных мощностей) и тестирование методов и сервисов.
Возникшие проблемы:
1. Какой инструмент выбрать?
2. Как тестировать ?
3. Какие метрики использовать?
4. Какие счётчики снимать с оборудования?
5. Как проанализировать результаты?
Решение проблем:
1. Какой инструмент выбрать?
При снятии показаний трафика Fiddlerom, выяснили что трафик шифруется и запросы стандартными средствами снять не получиться. Так как получаем шифрованный мусор.Исследовав рынок ПО для нагрузочного тестирования было выбрано два инструмента VS2010Ultimate - Load test и WCFStorm. Окончательное решение пало на VS2010Ultimate. Так как в WCFSTORM нельзя было снимать показания счетчиков с серверов.
2. Как тестировать?
Так как приложение еще не написано то у нас есть просто два сервиса которые видны и несколько методов. Есть еще запрос который пишет в BD данные.
Было написано в VS2010Ultimate несколько модульных тестов на каждый метод. И создан Load test.
3. Какие метрики использовать?
Зависимости были предложены такие:
а) по оси X - Среднее время отклика запросов | по оси Y - Количество пользователей
б) по оси X - Количество ошибок | по оси Y - Количество пользователей
в) по оси X - Среднее время тестов | по оси Y - Среднее время ответов
4. Какие счётчики снимать с оборудования?
Были выбраны счётчики которые шли в шаблонах при создании Loadtest сценария.
Для серверов приложений: CPU, RAM, HDD, LAN, количество обрабатываемых операций и длину очереди.
Для серверов БД: CPU, RAM, HDD, LAN, скорость запись чтения БД.
Для серверов балансировки: LAN, CPU, HDD, RAM
5. Как проанализировать результаты?
Тут столкнулись с проблемой что результаты по замерам скорости запросов оказались совершенно разные в VS2010Ultimate и WCFStorm.