Автоматизация тестирования с 
помощью Selenium
Test Automation 
• Автоматизация тестирования нужна для 
 Для установки предусловий для выполнения 
тестов 
 Для выполнения самих тестов 
 Для сравнения фактического и ожидаемого 
результата 
Для формирования отчетности о выполнении 
тестов 
• Обычно, автоматизируют уже созданные тестовые 
сценарии, которые уже выполняются в ручном режиме в 
рамках какого-либо формализованного процесса
Зачем и когда автоматизировать? 
• Частое регрессионное тестирование 
• Требуется повторное выполнение теста 
• Приемочное тестирование 
• Быстрая обратная связь разработке 
• Минимизировать человеческий фактор 
• Тестирование одного приложения в разных 
окружениях
Selenium 
• Selenium это набор инструментов для быстрой 
разработки автоматических тестов. 
• Selenium предоставляет богатый набор функций 
которые очень хорошо подходят для разработки 
тестов веб-приложений. 
• Selenium команды позволяют удобным способом 
обрабатывать UI элементы и сравнивать 
ожидаемое поведение приложения с 
фактическим
Возможности Selenium 
• Поддерживает кросс-бразуерное тестирование. 
Тесты selenium можно запускать во всех 
современных браузерах 
• Поддерживает написание тестовых скриптов на 
нескольких языках Java, C#, PHP and Python. 
• Богатый набор assert- команд для сравнения 
ожидаемого и фактического результата 
• Встроенный механизм отчетности (логи)
Selenium Components 
• Selenium IDE 
• Selenium WebDriver 
• Selenium RC 
• Selenium Server 
• Selenium Grid
Selenium IDE 
• Selenium IDE это среда разработки для тестов 
• Реализована расширением для Firefox и 
позволяет записывать, редактировать и 
воспроизводить тесты 
• Selenium IDE умеет сохранять тесты в формате 
HTML, Java, Ruby scripts, и ещё нескольких 
• Позволяет автоматически добавлять assertions 
• Позволяет добавлять Selenese команды когда и 
куда требуется
9 
Selenium IDE - UI 
Start/Stop записи 
Редактор теста 
Лог выполнения
Основные команды Selenese 
 Переход по ссылкам – click,clickAndWait 
 Ввод значений - type 
 Выбор значений из выпадающих списков – select 
 Проверка ожидаемых результатов verify/assert 
 Команды условного ожидания – wait*
Пример структуры html документа (dom tree)
Локатор – это строка которая однозначно 
идентифицирует UI элемент 
• id=login 
• name=password 
• link=Найти 
• xpath=(//button[@type='submit'])[2] 
• css=a.ra-search-form-currency-link > span
Добавление assertions в тест 
• Selenese позволяет проверять UI элементы 
разными способами 
• Команды verify/assert используются для 
 Проверки наличия UI элемента на странице 
 Проверки наличия текста на странице 
 Проверки состояния UI элемента 
• Если не выполняется условие assert весь тест 
проваливается, если не выполняется verify 
фиксируется ошибка в лог и тест продолжает 
выполнение
16 
Команды verify 
verifyTextPresent 
Использутсядля проверки 
наличия текста на странице. 
Добавить можно из 
контекстного меню в 
браузере
Команды verify 
verifyTitle 
 Позволяет проверить title 
страницы. 
 Добавить можно также из 
контекстного меню браузера
Команды verify 
verifyElementPresent 
 Провряет наличие конкретного 
UI элемента на странице 
(кнопка, ссылка, поле ввода, 
итд) 
 Можно добавить из 
контекстного меню 
браузера, 
непосредственно «встав» 
на элемент и вызвав 
контекстное меню
Assertions 
• Команды assert работают аналогично 
командам verify. Единственное и важное 
отличие, если assert не выполняется, то 
прерывается весь тест и помечается как 
fail. Если не выполняется verify то тест 
продолжает работу, записывается 
ошибка в лог.
Assertion 
 assertTextPresent 
Проверяет наличие текста 
 assertText 
Проверяет наличие текста у какого-либо UI элемента. 
 assertTitle 
Проверяет корректность заголовка страницы 
 assertValue 
Проверяет значение у поля ввода 
 assertElementPresent 
Проверяет наличие элемента на странице
WaitFor команды 
waitForPageToLoad 
Ждет полной загрузки страницы 
Синтаксис waitForPageToLoad(timeout); timeout – 
максимальное время ожидания
WaitFor команды 
waitForAlert 
Команда ждет появление всплывающего окошка с 
сообщением 
waitForTable 
Ждет полной загрузки таблицы 
waitForTitle 
Ждет появления страницы с нужным заголовком 
waitForText 
Ждет появления текста на странице

автоматизация тестирования с помощью Selenium

  • 1.
  • 2.
    Test Automation •Автоматизация тестирования нужна для  Для установки предусловий для выполнения тестов  Для выполнения самих тестов  Для сравнения фактического и ожидаемого результата Для формирования отчетности о выполнении тестов • Обычно, автоматизируют уже созданные тестовые сценарии, которые уже выполняются в ручном режиме в рамках какого-либо формализованного процесса
  • 3.
    Зачем и когдаавтоматизировать? • Частое регрессионное тестирование • Требуется повторное выполнение теста • Приемочное тестирование • Быстрая обратная связь разработке • Минимизировать человеческий фактор • Тестирование одного приложения в разных окружениях
  • 5.
    Selenium • Seleniumэто набор инструментов для быстрой разработки автоматических тестов. • Selenium предоставляет богатый набор функций которые очень хорошо подходят для разработки тестов веб-приложений. • Selenium команды позволяют удобным способом обрабатывать UI элементы и сравнивать ожидаемое поведение приложения с фактическим
  • 6.
    Возможности Selenium •Поддерживает кросс-бразуерное тестирование. Тесты selenium можно запускать во всех современных браузерах • Поддерживает написание тестовых скриптов на нескольких языках Java, C#, PHP and Python. • Богатый набор assert- команд для сравнения ожидаемого и фактического результата • Встроенный механизм отчетности (логи)
  • 7.
    Selenium Components •Selenium IDE • Selenium WebDriver • Selenium RC • Selenium Server • Selenium Grid
  • 8.
    Selenium IDE •Selenium IDE это среда разработки для тестов • Реализована расширением для Firefox и позволяет записывать, редактировать и воспроизводить тесты • Selenium IDE умеет сохранять тесты в формате HTML, Java, Ruby scripts, и ещё нескольких • Позволяет автоматически добавлять assertions • Позволяет добавлять Selenese команды когда и куда требуется
  • 9.
    9 Selenium IDE- UI Start/Stop записи Редактор теста Лог выполнения
  • 10.
    Основные команды Selenese  Переход по ссылкам – click,clickAndWait  Ввод значений - type  Выбор значений из выпадающих списков – select  Проверка ожидаемых результатов verify/assert  Команды условного ожидания – wait*
  • 11.
    Пример структуры htmlдокумента (dom tree)
  • 12.
    Локатор – этострока которая однозначно идентифицирует UI элемент • id=login • name=password • link=Найти • xpath=(//button[@type='submit'])[2] • css=a.ra-search-form-currency-link > span
  • 15.
    Добавление assertions втест • Selenese позволяет проверять UI элементы разными способами • Команды verify/assert используются для  Проверки наличия UI элемента на странице  Проверки наличия текста на странице  Проверки состояния UI элемента • Если не выполняется условие assert весь тест проваливается, если не выполняется verify фиксируется ошибка в лог и тест продолжает выполнение
  • 16.
    16 Команды verify verifyTextPresent Использутсядля проверки наличия текста на странице. Добавить можно из контекстного меню в браузере
  • 17.
    Команды verify verifyTitle  Позволяет проверить title страницы.  Добавить можно также из контекстного меню браузера
  • 18.
    Команды verify verifyElementPresent  Провряет наличие конкретного UI элемента на странице (кнопка, ссылка, поле ввода, итд)  Можно добавить из контекстного меню браузера, непосредственно «встав» на элемент и вызвав контекстное меню
  • 19.
    Assertions • Командыassert работают аналогично командам verify. Единственное и важное отличие, если assert не выполняется, то прерывается весь тест и помечается как fail. Если не выполняется verify то тест продолжает работу, записывается ошибка в лог.
  • 20.
    Assertion  assertTextPresent Проверяет наличие текста  assertText Проверяет наличие текста у какого-либо UI элемента.  assertTitle Проверяет корректность заголовка страницы  assertValue Проверяет значение у поля ввода  assertElementPresent Проверяет наличие элемента на странице
  • 21.
    WaitFor команды waitForPageToLoad Ждет полной загрузки страницы Синтаксис waitForPageToLoad(timeout); timeout – максимальное время ожидания
  • 22.
    WaitFor команды waitForAlert Команда ждет появление всплывающего окошка с сообщением waitForTable Ждет полной загрузки таблицы waitForTitle Ждет появления страницы с нужным заголовком waitForText Ждет появления текста на странице