Прежде всего, правильный термин - стресс-тест . Существует довольно много решений для стресс-тестов веб-сайтов, и я бы порекомендовал одно из них - loadimpact . Что они делают, так это бомбардируют ваш сайт запросами с разных серверов по всему миру и дают вам аналитический отчет о том, как ваш сайт справлялся со стрессом. У них есть бесплатный тест, где вы можете получить общее представление, но за большее вам придется заплатить абонентскую плату.
Эти виды испытаний только проверить сайт с посетителями точки зрения, для получения конкретной информации необходимо выполнить профилирование приложения локально, и я на самом деле не имею ничего больше , чтобы добавить к предыдущим ответам, я использую Apache JMeter , а также ,
И, наконец, как любой веб-разработчик, заботящийся о производительности, вы должны взглянуть на YSlow :
YSlow анализирует производительность веб-страницы, проверяя все компоненты на странице, включая компоненты, динамически создаваемые с помощью JavaScript. Он измеряет производительность страницы и предлагает предложения по улучшению.
YSlow для Firefox интегрирован в инструмент веб-разработки Firebug для Firefox.
Чаще всего я нахожу Javascript узким местом, а не внутренним кодом или базой данных. Конечно, плохо написанные запросы могут быть серьезным снижением производительности, но после того, как вы справитесь с ними, всегда запускайте YSlow и следуйте его советам, это спасает жизнь.
Дальнейшее чтение:
на StackOverflow, конечно!
Вы пользуетесь виртуальным хостингом, поэтому маловероятно, что вы сможете запускать какие-либо тесты, которые надлежащим образом указывают на производительность, поскольку нет гарантии уровня ресурсов, к которым ваше приложение будет иметь доступ в любой момент времени.
Однако в этой ситуации я бы начал с отдельного запуска теста на выделенной коробке (это может быть ваш собственный ноутбук); используйте такой инструмент, как пакет нагрузочных тестов Visual Studio или JMeter (который я лично не могу выдержать), и создайте набор тестов, представляющих типичный путь через ваше приложение (вы должны быть в состоянии получить информацию о типичном пути через использование Google Analytics. Если это недоступно, вы можете просто использовать тот, который вы считаете вероятным, но помните, что это не даст как точный базовый уровень). Затем выполните тестирование нарастания, начните с 1 пользователя, затем медленно добавляйте пользователей, пока не достигнете предполагаемой пиковой нагрузки. Это должно показать вам, насколько хорошо работает ваша система в целом (я лично хотел бы пойти немного дальше, чтобы убедиться, что у меня есть запас прочности).
Последнее, что вам нужно сделать, это запустить инструмент профилирования, такой как профилировщик производительности ANTS, во время выполнения теста (имейте в виду, что это добавляет некоторые накладные расходы). Это позволит вам определять длительные запросы и методы, давая вам указатели относительно того, где ваше приложение действительно медленное (один совет: на самом деле это почти никогда не бывает там, где вы думаете).
Основная проблема, с которой вы столкнетесь, заключается в том, что, как я уже сказал, вы работаете на виртуальном хостинге, поэтому практически невозможно будет сделать какую-либо реалистичную эмуляцию живого окружения. Однако, если ваше приложение имеет достаточный запас мощности в среде, аналогичной вашим обещанным ресурсам, вы должны иметь некоторую уверенность в том, что код может удержаться на вашем хостинге, даже если вы выходите за пределы своей среды раньше, чем ожидаете.
источник
Вы можете посмотреть на такие инструменты, как JMeter или The Grinder .
До сих пор я использовал только JMeter, это графический инструмент, который позволяет довольно легко составлять планы тестирования. Вы можете моделировать несколько пользователей с несколькими потоками. Вы также можете записывать типичные случаи использования своего сайта, связывая свой браузер с прокси-сервером JMeter и выполняя реальную работу, поэтому вам не нужно писать запросы с нуля самостоятельно. Grinder основан на сценариях, если я правильно помню, может также подойти.
источник
Мне также нравится Loadimpact для стресс-тестирования. Одна вещь, которую я обычно использую для быстрой проверки на своем сайте, - это Apache Bench. Когда я захочу провести несколько финальных тестов, я посмотрю в сторону платного сервиса.
Моя работа также была вложена в WebLoads, который очень дорогой, но позволяет нам тестировать все наши сайты внутри компании. Я не рекомендую это все же.
источник
Я не думаю, что нагрузочное тестирование может быть выполнено вручную, поскольку оно займет больше времени, чем ожидалось, и будет утомительной задачей. Вы, вероятно, можете пойти на Load Runner, который может пойти для многих пользователей.
источник
Скрипт Autohotkey (AHK) может имитировать пользователя. Пусть работает целый день.
Вы можете запустить его на нескольких полях, чтобы имитировать нескольких пользователей. Приятно, что стиль тестирования полностью под вашим контролем. У вас может быть 1 скрипт AHK, рассылающий спам по функции отчета, и посмотрите, влияет ли он на пользователей других функций.
Хотя я не знаком с возможностями потоков AHK, имитировать тысячи пользователей может быть сложно. Вы можете быть связаны количеством компьютеров, которые у вас есть.
источник