Тестирование функциональности веб-приложений
К автоматизированному тестированию функциональности веб-сайтов прибегают довольно редко - как правило из-за сложности самих систем тестирования или неумения ими пользоваться. При этом часто забывают, что веб-сайт - это такая же программа, предназначенная для взаимодействия с пользователем, и перед началом эксплуатации неплохо бы провети тесты: насколько удобно пользователям с ней работать, как она поведёт себя под нагрузкой?
Существуют 2 основных вида тестирования:
- Функциональные испытания: с помощью записи-воспроизведения действий пользователя или скриптов, это инструменты для просмотра вашего сайта, заполнения форм, перехода по ссылкам
- Стресс тестирование: даже если веб-приложение работает нормально с 1 или 10 пользователей, оно может показать совершенно разные результаты (например, узкие места в использовании ресурсов) при 100 или 1000 активных пользователей.
Функциональные испытания
SeleniumHQ - несколько средств тестирования проекта, которые можно применять по отдельности или в комбинациях друг с другом:
- Selenium IDE: плагин к Firefox-у, позволяет записывать последовательность действий и выполнять их в автоматическом режиме
- Selenium Remote Control: клиент-серверная система управления веб-браузером, локально или удалённо, использует практически любой язык программирования и тестирования.
- Selenium Grid: работает как и Selenium Remote Control, но выполняет тесты одновременно на нескольких серверах
- Selenium Core: система тестирования, основанная на Java-script
Watir - набор библиотек на Ruby, он нажимает ссылки, заполняет формы, нажимает кнопки и проверяет полученные результаты.
ActiWATE - Java-платформа для автоматизации тестирования функциональности сайта. Эмулирует действия браузера, поддерживает http-https и Ajax запросы.
WebDriver - проект разработчиков Google, быстрый и простой в управлении. Здесь информация от разработчиков.
HtmlUNIT - одно их самых популярных решений для функциональных тестов, имеет хорошую поддержку JavaScript (которые постоянно совершенствуются) и может работать с jQuery, MooTools, Prototype, Dojo, другими фреймворками.
SaHi - очень простая в управлении система, которая может записывать и воспроизводить сценарии действий пользователя.
OttoMate - набор из 6 приложений для Mac OS
ieunit - Java-script фреймворк для тестирования логики поведения веб-сценариев
FWPTT - еще один веб-сервис для тестирования функциональсти сайтов
Стресс-тестирование веб-сайтов
Pylot - инструмент с открытым исходным кодом, который запускает тесты нагрузки для тестирования производительности и масштабируемости веб-служб
Tsung - может быть использован для стресс-тестов таких сервисов, как HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, Jabber/XMPP servers.
Apache JMeter - известное средство тестирования, моделирует нагрузку как по http-протоколу, так и для баз данных и POP3-серверов
Siege - проект с говорящим названием "Осада"! Поддерживает basic authentication, cookies, HTTP и HTTPS protocols.
The Grinder - Java проект, позволяющий проводить распределённый тест нагрузки с нескольких компьютеров
Продукты тестирования от Microsoft - IIS 6 Web Capacity Analysis Tool (The IIS 6.0 Resource Kit Tools include WCAT), IIS 7.0 Web Capacity Analysis tool, Web Application Stress Tool
А когда вы устанете мучать свои сервера, то возможно вам захочется отвести взгляд от монитора и порадовать его чем-нибудь совершенным, во что тоже вложено много труда и таланта - купить бонсай - и устроить ему стресс-тест.