Стресс-тестирование метода веб-сервиса с помощью Powershell - PullRequest
1 голос
/ 18 ноября 2008

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

Я планирую написать скрипт Powershell для циклического вызова и вызова этого метода несколько раз.

Есть ли лучший способ сделать это?

Ответы [ 5 ]

3 голосов
/ 18 ноября 2008

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

Пойдите с некоторым многопоточным решением (я не знаю, есть ли у powershell это).

Некоторые инструменты тестирования с открытым исходным кодом перечислены здесь . Просто настройте свой веб-сервис на прием запросов GET, а не только на SOAP (по умолчанию), чтобы вы могли сформировать URL.

1 голос
/ 18 ноября 2008

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

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

0 голосов
/ 21 декабря 2018

Для тех, кто наткнулся на это и не хочет использовать уже упомянутые сторонние опции. Как отмечается в принятом ответе, многопоточное решение является наилучшим, этого можно достичь в PowerShell:

ForEach -Parallel ($item in $collection) {  }

https://docs.microsoft.com/en-us/powershell/module/psworkflow/about/about_foreach-parallel

Хотя число потоков может быть ограничено до 5: Использует ли параллелизированный интерфейс PowerShell не более 5 потоков?

0 голосов
/ 18 ноября 2008

Это действительно зависит от того, есть ли другие требования. Такие как логирование, история и т. Д.

Если быстро и грязно - все, что тебе нужно, значит, ты в порядке.

Если вам нужно что-то более надежное, тогда вы можете посмотреть либо на собственное построение тестового жгута на выбранном вами языке, либо на таких вещах, как Mercury, MS Team Tester, nUnit и т. П.

0 голосов
/ 18 ноября 2008

Лично я бы использовал что-то вроде openSTA .

Это позволяет записывать сеанс с веб-сайтом, а затем воспроизводить его на относительно простом языке сценариев.

Вы также можете легко тестировать веб-сервисы и писать собственные сценарии.

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

Это с открытым исходным кодом и бесплатно.

Создает несколько отчетов, которые можно сохранить в электронной таблице. Затем мы используем сводную таблицу для простого анализа и построения графиков результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...