Статьи

OSCON 2006: надежная веб-разработка: тестирование веб-приложений



Докладчик Джон Пол Ашенфелтер (John Paul Ashenfelter) предоставил стандартную коммерческую подачу для тестирования, но с развитой веб-разработкой, и продемонстрировал как Selenium (богатую среду тестирования в браузере, которая позволяет вам писать и запускать свои тесты, используя ничего более сложного, чем HTML и CSS), так и Grinder (бесплатный инструмент для тестирования под нагрузкой, который может быть громоздким, но не будет стоить вам руку и ногу). Слайды и вспомогательные материалы из учебника доступны на веб-сайте TransitionPoint .

Тестирование само по себе представляет собой дисциплину с такими дисциплинами, как пользовательское тестирование, функциональное тестирование и нагрузочное тестирование. Мир настольных веб-разработок — и в некоторой степени — мир веб-разработок enteprise — внедряет все эти типы тестирования с впечатляющей скоростью, но некоторые из уникальных проблем, с которыми сталкиваются веб-разработчики (например, несколько браузеров), означают, что тестирование вступает в силу медленнее в этом мире. В этом выступлении Ашенфельтер продемонстрировал современное искусство тестирования в каждой из этих дисциплин, где задействованные инструменты варьируются от устрашающих до вдохновляющих.

Если вы еще не видели Selenium в действии, вы как веб-разработчик должны по крайней мере загрузить Selenium Core , распаковать его, открыть файл index.html Наблюдайте, как ваш браузер (независимо от того, какой браузер вы используете) немедленно становится платформой для тестирования, поскольку он автоматически взаимодействует с серией страниц и проверяет, ведут ли они себя так, как должны.

Если вы впечатлены, попробуйте сами написать несколько тестов (подсказка: все, что вам нужно написать, это HTML-таблица), или взгляните на Selenium IDE , расширение Firefox, которое может записывать действия пользователя и генерировать сценарий тестирования. на лету.

Менее понятным является Grinder , бесплатный инструмент для нагрузочного тестирования, написанный на Java, который является предпочтительным инструментом Ashenfelter не потому, что он особенно прост в использовании, а потому, что он единственный, который не будет стоить вам десятки тысяч долларов в использовании в реальный мир. Тот факт, что это открытый исходный код, является просто бонусом в этом случае.

Grinder работает, записывая ваши взаимодействия с сайтом, настраивая ваш браузер для подключения к сайту через прокси-сервер. Эти взаимодействия приводят к созданию сценария Jython (Python on Java), который затем можно настроить вручную. Получив скрипт, вы можете настроить The Grinder так, чтобы ваш сайт разбивался десятками (или тысячами) экземпляров этого скрипта, которые выполнялись одновременно.

Ашенфельтер признал, что нагрузочное тестирование не является легкой проблемой для
решить. Он даже предположил, что если ваша цель тестирования нетривиальна, вы можете
просто лучше заплатить консультационной фирме, чтобы прийти и сделать это для
вы. Но для тех, кто делает это самостоятельно, The Grinder — способный (хотя и громоздкий) инструмент.

Чтобы объединить все усилия по тестированию и заставить ваших коллег-разработчиков использовать инструменты тестирования и обратить внимание на результаты, нужно также немного поработать, и совет Ашенфелтера здесь заключался в том, чтобы использовать стандартные инструменты, такие как CruiseControl , и настроить «информационные радиаторы» — системы, позволяющие разработчикам получать результаты автоматизированного тестирования бесшумными, громкими способами, которые не будут игнорироваться (как, скажем, ежедневное электронное письмо).