Подтвердить что ты не робот

Как настроить тест нагрузки/стресса для веб-сайта?

Мне было поручено стресс/нагружать тестирование нашего веб-сайта компании с самого начала и ничего не знают об этом. Каждый поиск, который я делаю в google для "загрузки тестового веб-сайта", просто возвращается с различными компаниями и программным обеспечением для физического тестирования нагрузки.

В настоящее время меня больше интересует, как на самом деле начать настройку теста нагрузки, как то, что я должен принимать во внимание до тестирования нагрузки, на каких страницах на моем сайте я должен тестировать нагрузку и какие вещи я собирается захотеть следить за выполнением теста. Наш веб-сайт находится на многоуровневой системе в комплекте с отдельным сервером базы данных (IIS 7 Web Server, SQL Server 2000 db). Я предполагаю, что я хочу отслеживать как веб-сервер, так и сервер базы данных для тестирования загрузки, однако при настройке сценариев загрузки тестового веб-сервера мне придется использовать страницы, которые запрашивают базу данных, чтобы увидеть любую нагрузку на сервере базы данных на в то же время.

Проверяются ли веб-серверы и серверы баз данных одновременно или выполняются как отдельные тесты?

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

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

Спасибо заранее.

4b9b3361

Ответ 1

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

Ответ 2

Вообще говоря, тесты нагрузки будут проходить через общие сценарии с различными пользовательскими нагрузками.

Так, например, вы можете настроить тест, в котором 50 пользователей регистрируются каждую секунду в течение 10 минут, а другое, где число начинается с 5 пользователей в секунду и масштабируется до 1000/секунды или любые номера имеют смысл для вашего ваш сайт.

изменить:
Идея состоит в том, чтобы проверить, как ваше фактическое приложение ведет себя при использовании на всех уровнях.
Если вы собираетесь тестировать нагрузку, определенно инвестировать (время и/или) в хороший инструмент.

Ответ 3

Здесь перечислены инструменты, которые помогут вам начать с этого. Вы правы, что хотите сначала прочитать его, стресс-тестирование может осложниться.

http://www.softwareqatest.com/qatweb1.html

Ответ 4

Шаг №1 для существующего сайта или замена для него - сбор и анализ. Статистика.

Нет смысла в первых предсказаниях моделирования, если они находятся за пределами центрального предела. (В любом случае они выйдут в строгом подходе)

И во всех случаях вы должны работать совместно с кем-то из НОК. Причины слишком очевидны, и нить здесь, поддерживающая подход героев, не подходит для вашей компании; тем более, что вы будете учиться, когда идете. Не сказать, что вы не можете быть героем, но NOC, как известно, воинственны к номерам производительности, которые выпадают на их коленях на совещании по принятию решений.

Ответ 5

Сначала возьмите инструмент для веб-стресса, например Neoload.

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

Моделирование активности пользователей может быть довольно сложным, но хорошие инструменты для стресса, такие как Neoload, позволяют вам точно моделировать точное поведение любой машины, поражающей ваш сервер. В идеале вы будете обрабатывать сетевой трафик так же, как обычно, поэтому убедитесь, что вы набрали балансировку нагрузки, если у вас есть.

Ответ 6

Я нашел тестовую версию Visual Studio легче тестировать (хотя она не бесплатна). Вы можете записывать сеанс просмотра в виде одного теста, и это позволит вам легко прочитать статистику perfmon из вашего веб-сервера и базы данных.

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

Запрос, который даст вам представление о максимальной нагрузке.

Следующий шаг - сформулировать цель или два для тестирования. Вам нужно убедиться, что веб-сайт способен обрабатывать пиковые нагрузки на одной странице или два из X запросов в секунду?

Намерены ли вы увеличить количество пользователей сайта, и в этом случае загрузите текущую загрузку журнала IIS и создайте веб-сайты, которые могут имитировать этот диапазон запросов страниц, но загружать ожидаемых одновременно работающих пользователей.

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

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

Ответ 7

Как вы можете видеть по ответам на этот вопрос, для тестирования нагрузки доступно множество программ. По моему опыту я нашел Siege, чтобы быть моим личным фаворитом. Он прост, предоставляет большинство параметров, необходимых для тестирования нагрузки. Вот пример использования:

seige -c 10 -t 1M http://www.google.com

Это отправит 10 одновременных запросов на google.com в течение 1 минуты. Если вы хотите протестировать более одной страницы, вы также можете предоставить файл, содержащий список URL-адресов.

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