2009-10-15 2 views
1

У меня есть WebTest с делает простой вызов к WebService, который выглядит так:Web Service нагрузочное тестирование с использованием WebTest

MyWebService webService = new MyWebService(); 

webService.Timeout = 180000; 

webService.myMethod(); 

Я не использую ThinkTimes, также Run Продолжительность устанавливается на 5 минут. Когда я запустил этот тест, имитирующий только один пользователь, проверить счетчики, и я нашел что-то вроде этого:

тесты Всего: 4500

сетевого интерфейса \ Байты, посланные (агент машина): 35500

Тогда я побежал те же тесты, но на этот раз имитируя 2 пользователей, и я получил что-то вроде этого:

тестов Всего: 2225

сетевой интерфейс \ Bytes Sent (агент машина): 30500

Так что, когда я увеличил число пользователей тестов/сек составляет половину, чем при использовании только 1 пользователя и байты, отправленном агент также был ниже. Я думаю, что это странно, потому что, похоже, у меня нет узкого места на моей машине-агенте, поскольку процессор никогда не превышает 30%, и у меня более 1,5 ГБ оперативной памяти, также мое использование сети составляет 0,5% от ее емкости.

Чтобы устранить эту проблему, я проверил тест, используя Шаблон Шага, имитируемые пользователи перешли от 20 до 800 пользователей. Когда я проверяю запросы/сек, они практически постоянны во всем тесте, поэтому ясно, что в моем тесте или в моей среде что-то не удается увеличить число запросов.

Было бы ожидаемым поведением, если бы «время отклика» становилось все выше, потому что оно сказывало бы, что запросы не обрабатывались должным образом, но странно, что время отклика практически постоянное все время, и это довольно низкий фактически.

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

ответ

0

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

+0

Спасибо за ваш ответ Nat, я запускаю 2 теста одновременно, но на разных компьютерах оба игрока попадают в один и тот же веб-сервис, и я заметил, что оба пользователя имеют одинаковые запросы/сек, когда они работают в одиночку. Также я запустил виртуальную машину с VSTS на своем ПК, я начал тест с этой виртуальной машины и с VSTS на моем собственном компьютере одновременно, и у обоих были те же запросы/сек, что и у них при работе в одиночку, поэтому я думаю, что, возможно, это узкое место в моем агенте, а не на стороне узкого места. Кроме того, я думаю, что этот тест может сказать мне, что в сети нет узких мест, потому что мой компьютер и моя виртуальная машина имеют один и тот же сетевой адаптер. – Carlos

+0

После этого я запустил 2 VSTS на своем компьютере и начал один и тот же тест, на этот раз запросы/сек были уменьшены в два раза. Кажется, что есть какое-то ограничение для VisualStudio или для каждой системы, но я не уверен, что вызывает это ограничение. – Carlos

+0

Карлос, вместо того, чтобы пытаться запустить экземпляр VSTS на двух машинах, почему бы вам не попробовать создать тест нагрузки? – HashName