Как строго протестировать сайт? - PullRequest
9 голосов
/ 01 апреля 2010

Как строго проверить сайт на безопасность и скорость?

Каковы пути и инструменты для этого?

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

Ответы [ 9 ]

6 голосов
/ 01 апреля 2010

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

https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site#answer-305381

Редактировать:

http://jmeter.apache.org/

Apache JMeter - это программное обеспечение с открытым исходным кодом, 100% чистое Java-приложение для настольных компьютеров, предназначенное для загрузки функциональных возможностей тестирования и измерения производительности. It was originally designed for testing Web Applications but has since expanded to other test functions.

5 голосов
/ 01 апреля 2010

Если это просто стресс-тест, попробуйте http://freshmeat.net/projects/siege/

Siege - утилита для регрессионного тестирования и тестирования. Он может провести стресс-тестирование одного URL-адреса с определенным пользователем числом имитируемых пользователей или может считывать многие URL-адреса в память и одновременно подвергать их стрессу. Программа сообщает общее количество записанных обращений, переданных байт, время отклика, параллелизм и статус возврата. Siege поддерживает протоколы HTTP / 1.0 и 1.1, директивы GET и POST, файлы cookie, ведение журнала транзакций и базовую аутентификацию. Его функции настраиваются для каждого пользователя.

или http://httpd.apache.org/docs/1.3/programs/ab.html

ab - это инструмент для оценки производительности вашего Apache Сервер протокола передачи гипертекста (HTTP). Это делает это давая вам представление о том, сколько запросов в секунду ваша установка Apache может обслуживать.

Чтобы проверить ваш код PHP, используйте PHPUnit . Чтобы проверить ваш интерфейс, используйте Selenium .

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

4 голосов
/ 04 июня 2010

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

Осада - отличная проверка на здравомыслие, и она имеет очень низкий барьер для входа. Это стандартный пакет в Ubuntu и других, и для его работы требуются только параметры командной строки. Таким образом, вы можете захлопнуть свой сайт так сильно, как вы хотите (или осмелитесь), чтобы увидеть, где переломный момент. Мой опыт показывает, что несколько веб-серверов деградируют линейно. По мере увеличения нагрузки они становятся немного медленнее, затем немного медленнее, а затем BAM ваше время загрузки увеличивается до 20 секунд. Знание того, когда это произойдет, даст вам представление о том, сколько нужно волноваться и нужно ли что-то делать. Если вы не попали в стену до 500+ одновременных пользователей, то у вас есть некоторая свобода действий.

Но учтите, что осада действительно больше связана с тестированием вашего веб-сервера, чем вашего веб-сайта.

Поскольку тот же плакат, о котором упоминалось ранее, Selenium является отличным инструментом для этого, тем не менее, стоит потратить некоторое время. На самом деле вы можете запустить несколько тестов, просто используя Selenium IDE и запустив их либо в своем браузере под Selenium RC в виде набора HTTP, но не переходя в сценарии (хотя вы захотите это сделать). Плюсом и минусом этого подхода является то, что он работает на реальном браузере, поэтому запуск теста только на одной машине не даст вам реальных результатов, потому что ваша машина просто не успевает за ней. Вам нужно запустить и настроить SRC и Selenium Grid, это может быть сложной задачей, но она того стоит, если вы будете заниматься этим снова и снова, особенно если у вас есть немного знаний о виртуальных машинах.

Ребята, которые создали Selenium, теперь предлагают коммерческий облачный RC, который запускает все стандартные браузеры и записывает видео сеанса (которое вы можете отключить для теста производительности). Это в http://saucelabs.com и для нагрузочного тестирования, или для быстрых бесплатных тестов во всех браузерах, это здорово. (Я все еще выполняю функциональные тесты локально). Опять же, это стоит, но это разумно.

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

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

Последнее, что перед запуском, если у вас нет программы юзабилити, позвольте некоторым непрограммистам / веб-пользователям использовать ее, наблюдать за ними и просить их выполнять различные «задачи» (зарегистрироваться найди что-нибудь, не "нажимай") Это звучит как юзабилити-тестирование, но для этого уже слишком поздно, но вы будете удивлены, как быстро люди, которые не думают, как вы, находят ошибки в своем коде. Надеемся, что это откроет новые горизонты областей, которые вы еще не тестировали.

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

3 голосов
/ 01 апреля 2010

Также я бы упомянул Цунг .

Покраснение от их введения:

Tsung - это мульти-протокол с открытым исходным кодом. инструмент для тестирования распределенной нагрузки

Может использоваться для подчеркивания HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP и Jabber / XMPP серверы. Цунг (ранее известный как IDX-цунами) является бесплатным программное обеспечение, выпущенное под GPLv2 лицензия. * * 1010

Цель Цунга - симулировать пользователи для проверки масштабируемости и производительность на основе IP клиент / серверные приложения. Вы можете использовать его для нагрузочного и стресс-тестирования ваших серверов. Многие протоколы имеют был реализован и протестирован, и это может быть легко продлен WebDAV, LDAP и поддержка MySQL были добавлены недавно (экспериментально).

Может быть распределен по нескольким клиентские машины и способен моделировать сотни тысяч виртуальные пользователи одновременно (или даже миллионы, если у вас достаточно оборудования ...).

Цунг разработан в Эрланге, язык с открытым исходным кодом от Ericsson для построения надежного отказоустойчивого распределенные приложения.

Tsung поддерживается Process-One

2 голосов
/ 01 апреля 2010

Вы проверяли apachebenchmark?

http://httpd.apache.org/docs/1.3/programs/ab.html

полезно для проверки того, как вы можете обрабатывать нагрузку и одновременные соединения

2 голосов
/ 01 апреля 2010

вы можете использовать WEBLOAD. Это инструмент для нагрузочного тестирования. Перейти на www.webload.com

1 голос
/ 01 апреля 2010

http://seleniumhq.org/ - это технология для поиска.

Цитаты с их сайта:

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

Одной из ключевых особенностей Selenium является поддержка выполнения тестов на несколько браузерных платформ.

Наиболее важной частью, вероятно, является: Selenium-RC (пульт дистанционного управления)

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

Selenium-RC предоставляет API (Интерфейс прикладного программирования) и библиотека для каждого из поддерживаемых языки: HTML, Java, C #, Perl, PHP, Python и Ruby. Эта способность использовать Selenium-RC с высоким уровнем язык программирования для разработки теста случаи также позволяет автоматизировать тестирование для интеграции с среда автоматизированной сборки проекта.

1 голос
/ 01 апреля 2010

Получить на главной странице Slashdot

1 голос
/ 01 апреля 2010

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

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