
- •Лабораторная работа №3. Автоматизация тестирования с помощью gui
- •Теоретическая часть Введение
- •Установка
- •Возможности ide Панель меню
- •Панель инструментов (Toolbar)
- •Панель тестового сценария
- •Вкладки “Log”, “Reference”, “ui-Element”, “Rollup” (“Лог”, “Справка”, “ui-Element”, “Группировка”)
- •Справка
- •Ui-Element и Группировка
- •Создание тестовых сценариев
- •Добавление проверок через контекстное меню
- •Редактирование
- •Запуск тестовых сценариев
- •Язык команд Selenium
- •Синтаксис языка команд Selenium
- •Наборы тестов
- •Часто используемые команды Selenium
- •Проверка элементов страницы
- •Выбор между командами “assert” и “verify”
- •VerifyTextPresent
- •VerifyElementPresent
- •VerifyText
- •Нахождение элементов
- •Нахождение по идентификатору
- •Нахождение по “id”
- •Нахождение по “name”
- •Нахождение с помощью xPath
- •Нахождение гиперссылок по тексту ссылки
- •Нахождение по dom
- •Нахождение с помощью css
- •Проверка соответствия шаблону
- •Подстановка
- •Шаблоны регулярных выражений
- •Точное совпадение
- •Команды “AndWait”
- •Команды waitFor в приложениях ajax
- •Последовательность выполнения и управление исполнением программы
- •Команды сохранения и переменные Selenium
- •StoreElementPresent
- •StoreText
- •StoreEval
- •JavaScript и параметры языка команд Selenium
- •Использование JavaScript в параметрах, принимающих фрагмент JavaScript
- •Использование JavaScript в “обычных” параметрах
- •Echo – команда вывода данных на экран
- •Точки останова и точки старта
- •Пошаговое выполнение тестового сценария
- •Кнопка “Найти”
- •Просмотр исходного кода страницы при отладке
- •Помощь в построении локаторов
- •Составление набора тестов
- •Практическая часть
Часто используемые команды Selenium
В качестве заключения мы рассмотрим несколько типичных команд. Это будут, пожалуй, самые востребованные при создании тестов команды.
- “open”, открывает страницу по заданному URL.
- “click/clickAndWait”, совершает клик, и, при необходимости, дожидается загрузки страницы.
- “verifyTitle/assertTitle”, проверяет соответствие заголовка страницы ожидаемому.
- “verifyTextPresent”, проверяет наличие ожидаемого текста где-либо на странице.
- “verifyElementPresent”, проверяет страницу на наличие ожидаемого элемента по его HTML-тегу.
- “verifyText”, проверяет наличие на странице ожидаемого текста и соответствующего ему HTML-тега.
- “verifyTable”, проверяет таблицу на наличие ожидаемого содержимого.
- “waitForPageToLoad”, временно прекращает выполнение теста до загрузки ожидаемой страницы. Автоматически вызывается при использовании команды “clickAndWait”.
- “waitForElementPresent”, приостанавливает выполнение до появления ожидаемого элемента интерфейса пользователя с определенным HTML-тегом.
Проверка элементов страницы
Проверка наличия элементов интерфейса пользователя на веб-странице – это наиболее частый вид проверки в тестовых сценариях. Язык команд Selenium позволяет выполнять проверку элементов интерфейса различными способами. Важно, чтобы вы овладели этими методами, так как они определяют, что именно вы проверяете.
Например, вам может понадобиться проверить, что…
а) элемент должен находиться где-то на странице;
б) определенный текст должен находиться где-то на странице;
в) определенный текст должен находиться в определенном месте на странице.
Если вы проверяете заголовок текста, вероятно, вам важно его содержание и расположение вверху страницы. Однако если вы, к примеру, проверяете наличие изображения на главной странице, и веб-дизайнеры часто меняют как само изображение, так и его положение, тогда следует просто выполнять проверку на наличие какого-либо изображения (а не конкретного файла) где-то на странице.
Выбор между командами “assert” и “verify”
Выбор между “assert” и “verify” определяется тем, насколько критичным является результат неуспешной проверки. Нет никакого смысла проверять правильность первого абзаца на странице, когда ваш тест уже провалился при проверке того, что браузер отображает нужную страницу. Если вы не на нужной странице, вы, вероятнее всего, остановите тест, чтобы разобраться в ситуации и как можно быстрее исправить проблему. С другой стороны, вам может понадобиться проверить множество свойств страницы и не прерывать тест, несмотря на то, что первая проверка провалилась, что позволит изучить сразу все ошибки на странице и принять соответствующие меры. Напомним, что “assert” при провале проверки остановит выполнение тестового сценария, в то время как с “verify” тестовый сценарий продолжит выполняться в любом случае.
Лучше всего использовать эти команды для логически сгруппированных проверок, начиная каждую группу с “assert”, за которой следуют одна или несколько “verify”. К примеру:
Команда |
Цель |
Значение |
open |
/download/ |
|
assertTitle |
Downloads |
|
verifyText |
//h2 |
Downloads |
assertTable |
1.2.1 |
Selenium IDE |
verifyTable |
1.2.2 |
June 3, 2008 |
verifyTable |
1.2.3 |
1.0 beta 2 |
Приведенный пример открывает страницу, затем выполняет проверку того, что загрузилась нужная страница, путем сравнения заголовка страницы (с помощью команды “assert”) с ожидаемым значением. Только при успешно выполненной проверке выполняется следующая по списку команда, которая проверяет с помощью “verify” наличие текста в определенном месте на странице. Далее тестовый сценарий проверяет с помощью “assert”, что первая колонка во второй строчке первой таблицы содержит ожидаемое значение, и только после удачно выполненной проверки этого элемента будут выполняться остальные команды, начинающиеся с префикса “verify”.