Полезные советы, неформальные пояснения к официальным сообщениям, инсайдерская информация о процессе разработки Selenium и всякое другое
Эта статья первоначально была написана как один из выпусков рассылки “Selenium 2.0: сотня полезных советов”, но видя количество однотипных вопросов, которые после выхода версии Selenium 2.22 задаются в разных местах, мы решили опубликовать этот выпуск в виде статьи ...
Когда я начал готовить примеры для рассылки “Selenium 2.0: сотня полезных советов”, передо мной встал вопрос выбора языка, на котором писать эти примеры. С одной стороны, хотелось использовать Java, потому что это “официальный” язык Selenium и все новые штуки сначала реализуются на Java, а только потом переносятся в реализации на других языках. С другой стороны, хотелось сделать так, чтобы примеры были компактными, но при этом полностью завершенными и готовыми к исполнению – взял и целиком запустил. Для этой цели лучше подходят динамические языки, Java слишком “многословна”, много инфраструктурного кода. В конце концов я остановился на промежуточном варианте: сложные примеры на Java, а простые – на Groovy, это динамический язык, но весьма похожий на Java и выполняющийся на виртуальной Java-машине. Но решающим фактором в пользу Groovy стало наличие симпатичной интерактивной консоли, в которой можно удобно экспериментировать со скриптами. Хотите – выполните пример полностью, а хотите – выделите фрагмент кода и выполните только его. ...
На первой онлайн-конференции ConfeT&QA 2011 Андрей Дзыня покорил сердца слушателей тем, что не побоялся показывать вживую, “в прямом эфире”, как создаются тесты – от первых шагов (запись действий пользователя в рекордере), через все этапы построения фреймворка с гибкой архитектурой, до запуска тестов в системе непрерывной интеграции. И всё это за каких-то 20 минут! Мы предлагаем вам самим посмотреть, как это происходило ...
На данный момент мир веб-приложений интенсивно развивается и интерфейс становится все более динамичным. Повсеместно используется асинхронное обновление элементов и AJAX. И такие веб-приложения приходится тестировать с помощью Selenium/WebDriver. Автоматизированный тест можно разбить на атомарные фрагменты, которые многократно выполняются в цикле: “найди элемент”, “выполни действие”, “подожди результат”. При автоматизации AJAX-приложений проблемы возникают со всеми тремя видами фрагментов. Во-первых, искать элементы сложно, потому что они как правило имеют динамические локаторы (нет фиксированных идентификаторов или имен). Во-вторых, спектр возможных действий весьма широк. Это не только клики по ссылкам, как в “традиционных” веб-приложения, но и наведение курсора на элемент, перетаскивание, нажатия клавиш. Ну и самое сложное — это ожидания. Что является признаком того, что некоторое действие выполнилось успешно или неуспешно? Появление или исчезноваение какого-то элемента? Добегание счётчика или прогресс-бара до 100%? А может быть не стоит вообще ждать полного завершения действия, достаточно лишь частичного результата, чтобы уже можно было продолжить выполнение теста? На конференции Selenium Camp Алексей Баранцев рассказал о том, как WebDriver решает все эти три задачи, особенно вторую и третью. ...
На встрече московского клуба тестировщиков 11 августа 2011 года, Игорь Варавко рассказал про автоматизацию тестирования веб-приложений, разработанных с использованием нового стандарта HTML5. В качестве инструмента автоматизации выступал WebDriver (он же Selenium 2), а тесты разрабатывались на языке Ruby. Мы представляем Вам запись этого выступления ...