2008-12-04 3 views
191

Возможно, это неправильный вопрос, но как лучше всего реплицировать большую нагрузку на веб-приложение asp.net? Есть ли простой способ моделирования многих запросов на определенных страницах? Или лучше всего использовать профилировщик для отслеживания одного запроса, а затем работать с ним, если производительность в порядке?Лучший способ стресс-теста на сайте

Было бы хорошо знать, насколько хорошо веб-приложение работает со спецификацией сервера. Я хотел бы иметь возможность имитировать интенсивный трафик на моем тестовом сервере, чтобы я мог работать, если производственный сервер достаточно хорош (в частности, с iis/asp.net, а не с db-производительностью).

+0

Если вы посмотрите на связанный контент, есть достаточно сообщений на эту тему. См. Тесты на нагрузку и производительность. И не обязательно быть конкретным для asp.net, любые инструменты http могут выполнять эту работу. – Loki 2008-12-04 13:35:33

+2

Вы правы, но ответы здесь разные, чем где-то еще. кажется, стоит снова спросить. – 2008-12-04 14:19:58

+8

Вопрос закрыт как не конструктивный, но имеет +126, был снят 65 раз и просмотрен 83,243 раза. :) – 2014-07-30 17:00:39

ответ

53

Мое предложение - сначала выполнить некоторые автоматизированные тесты. Используйте для этого selenium.

Затем развернуть селеновую сетку для тестирования на нескольких компьютерах одновременно.

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

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

Редактировать: Selenium довольно прост в использовании, и он утверждает содержимое страницы, если вы хотите протестировать содержимое. Он также копирует ваше перемещение по странице, если вы пожелаете (это было бы моим предложением) просто перейдите на страницу много, а затем сохраните ее для автоматизации. Избегайте сдачи утверждений, поэтому селен может работать быстрее.

48

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

31

Инструмент (apache bench) ab (apache bench) позволяет отправлять много запросов на одну страницу и указывать, сколько клиентов вы хотите использовать и сколько одновременного соединения вы хотите.

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

Позже вам может понадобиться инструмент, который имитирует конкретный трафик, а не одну страницу. На этом инструменте еще нет средств.

9

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

5

Мы пытались несколько приложений, как испытания коммерческих продуктов и свободно доступных. В конечном счете, это пробная версия программного обеспечения Team Test Load Agent, которое мы пробовали. Он определенно отлично работает и довольно прост в использовании. В конечном счете, он укрепил наш аргумент, чтобы перейти на Team Foundation Server и оснастить все части отдела соответствующими инструментами.

Очевидным недостатком является, однако, цена.

2

Для тестирования веб-сервисов, отдыха с мылом или WCF (включая WebHttpBinding) попробуйте SOA Cleaner. Может быть понижен с: http://xyrow.com. Существует бесплатная версия, и она не требует установки. Он также может выполнять тесты нагрузки.

2

Другой инструмент мне нравится Open STA: http://opensta.org/

Это в основном сосредоточен на тестировании производительности, и это бесплатно.

3

Я использовал WebLOAD для этого проекта. Легко создавать скрипты, и он имеет встроенную поддержку для мониторинга статистики ASP.NET.