2. Особенности тестирования WEB-интерфейсов Большое число браузеров со множеством отличий в реализации Различные заранее неизвестные конфигурации на стороне клиента Отсутствие строгих правил в языке HTML Изначальная кроссплатформенность Frontend-части WEB-приложений требует кроссплатформенного тестирования
3. Возможности Selenium Кроссбраузерное и кроссплатформенное тестирование Тестирование на реальном браузере, а не эмуляторе Идентификация элементов интерфейса множеством способов (DOM, XPath, CSS Selector и т.д.) Выполнение произвольного JavaScript-кода на странице тестируемого приложения Возможность «накликать» тест (record & run)
4. Поддерживаемые платформы Windows: Internet Explorer 6 & 7 Firefox 0.8 to 2.0 Mozilla Suite 1.6+, 1.7+ Seamonkey 1.0 Opera 8 & 9 Mac OS X: Safari 2.0.4+ Firefox 0.8 to 2.0 Camino 1.0a1 Mozilla Suite 1.6+, 1.7+ Seamonkey 1.0 Linux: Firefox 0.8 to 2.0 Mozilla Suite 1.6+, 1.7+ Konqueror Opera 8 & 9
5. Архитектура Selenium Selenium RC возможно физическое разделение по машинам Тесты (Java, Ruby, Python, Perl, PHP или .NET)
6. Selenium в действии public class SearchTest extends TestCase { private Selenium selenium ; public void testSearch() { selenium .open( " http://yandex.ru " ); assertEquals ( "Wrong title detected!" , "Яндекс" , selenium .getTitle()); selenium .type( "name=text" , "Кто такой Ктулху?" ); selenium .click( "xpath=//input[@value='Найти']" ); selenium .waitForPageToLoad( "60000" ); assertEquals ( "Кто такой Ктулху?" , selenium .getText( "name=text" )); } }
7. Проблемы и решения Получение скриншотов при параллельном выполнении тестов Борьба с Same Origin Policy Поддержка Internet Explorer Нативное управление - панацея? Тестирование через HTTPS и несоответствие сертификатов
8. Почему Selenium? Свободный, бесплатный, открытый, кроссплатформенный... Хорошо продуманная архитектура, большие возможности по интеграции и масштабированию Удобный и простой в использовании — в отличие от многих платных и тяжеловесных аналогов Наглядный код тестов — залог качественных тестов
9. Промышленное использование Selenium Selenium RC Selenium RC Selenium RC Virtual display Virtual display Virtual display TomCat Server CommandLine Web- интерфейс SVN ANT + JUNIT Servlet + Ядро автотестов