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

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

Embed Size (px)

Citation preview

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

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

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

Test Automation

• Автоматизация тестирования нужна для Для установки предусловий для выполнения

тестов

Для выполнения самих тестов

Для сравнения фактического и ожидаемогорезультата

Для формирования отчетности о выполнениитестов

• Обычно, автоматизируют уже созданные тестовыесценарии, которые уже выполняются в ручном режиме врамках какого-либо формализованного процесса

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

Зачем и когда автоматизировать?

• Частое регрессионное тестирование

• Требуется повторное выполнение теста

• Приемочное тестирование

• Быстрая обратная связь разработке

• Минимизировать человеческий фактор

• Тестирование одного приложения в разных окружениях

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

Selenium

• Selenium это набор инструментов для быстройразработки автоматических тестов.

• Selenium предоставляет богатый набор функцийкоторые очень хорошо подходят для разработкитестов веб-приложений.

• Selenium команды позволяют удобным способомобрабатывать UI элементы и сравниватьожидаемое поведение приложения сфактическим

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

Возможности Selenium

• Поддерживает кросс-бразуерное тестирование. Тесты selenium можно запускать во всех современных браузерах

• Поддерживает написание тестовых скриптов на нескольких языках Java, C#, PHP and Python.

• Богатый набор assert- команд для сравнения ожидаемого и фактического результата

• Встроенный механизм отчетности (логи)

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

SeleniumЭто проект, в рамках которого разрабатывается

серия программных продуктов с открытым

исходным кодом

• Selenium IDE

• Selenium WebDriver

• Selenium RC

• Selenium Server

• Selenium Grid

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

Selenium RC (Remote Control)

• предыдущая версия библиотеки для управления браузерами

• это средство для «удалённого» управления браузером

• Сейчас находится в законсервированном состоянии, не развивается, известные баги не усправляются

• Иногда Selenium RC называется также Selenium 1.0, а WebDriver называется Selenium 2.0

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

Selenium WebDriver

•программная библиотека для

управления браузерами

•основной продукт, разрабатываемый в

рамках проекта Selenium

•это целое семейство драйверов для

различных браузеров, а также набор

клиентских библиотек на разных языках,

позволяющих работать с этими

драйверами

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

Selenium WebDriver

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

Selenium Server

• сервер, который позволяет управлять браузером с удалённой машины, по сети

• поддерживает одновременно два набора команд – для новой версии (WebDriver) и для старой версии (Selenium RC)

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

Selenium Grid• кластер, состоящий из нескольких Selenium-

серверов

• предназначен для организации распределённой сети, позволяющей параллельно запускать много браузеров на большом количестве машин

• Ранее Selenium Grid был самостоятельным продуктом. Сейчас продукт один - Selenium Server, но у него есть несколько режимов запуска: он может работать как самостоятельный сервер, как коммутатор кластера, либо как узел кластера, это определяется параметрами запуска.

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

Selenium IDE• Selenium IDE это среда разработки для

тестов• Реализована расширением для Firefox и

позволяет записывать, редактировать ивоспроизводить тесты

• Selenium IDE умеет сохранять тесты вформате HTML, Java, Ruby scripts, и ещёнескольких

• Позволяет автоматически добавлятьassertions

• Позволяет добавлять команды когда и кудатребуется

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

14

Selenium IDE - UI

Start/Stop записи

Редактор теста

Лог выполнения

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

Язык команд Selenium

• Язык Selenium – это набор команд, которые составляют ваши тесты.

• Последовательность таких команд называется тестовый сценарий.

• Набор команд Selenium часто называют selenese, то есть селенийским языком.

• Команды Selenium бывают трех видов: Действия (Actions), Считыватели(Accessors) и Проверки (Assertions).

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

Основные команды Selenese

Переход по ссылкам – click,clickAndWait

Ввод значений - type

Выбор значений из выпадающих списков – select

Проверка ожидаемых результатов verify/assert

Команды условного ожидания – wait*

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

Синтаксис языка команд Selenium

• Command – имя команды

• Target – локатор элемента цели команды

• Value – входное значение для команды

http://release.seleniumhq.org/selenium-core/1.0.1/reference.html

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

Команды Selenium

• Действия - команды, которые обычно управляют состоянием приложения. Они совершают действия вроде “щелкнуть по той ссылке” или “выбрать эту опцию”.

• Считыватели - анализируют состояние приложения и сохраняют результаты в переменные

• Проверки - проверяют соответствие состояния приложения ожидаемому.

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

Пример структуры html документа (dom tree)

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

Локатор – это строка которая однозначноидентифицирует элемент интерфеса (UI элемент)

• id=login• name=password• link=Найти• xpath=(//button[@type='submit'])[2]• css=a.ra-search-form-currency-link > span

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

Нахождение по “id”• Данный тип локатора является точным.

Используется, когда известно значение атрибута “id” элемента

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

Нахождение по “name”• ищет первый элемент с соответствующим запросу атрибутом

“name”. Если у нескольких элементов одинаковое значение атрибута “name”, то тогда можно использовать фильтры, чтобы отсеять ненужные результаты. Тип фильтра по умолчанию – это значение атрибута “value”.

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

Нахождение гиперссылок по тексту ссылки

• Используя метод поиска по тексту ссылки, находить гиперссылки на веб-странице довольно легко. Если на странице присутствуют две ссылки с одинаковым текстом, то будет использовано первое совпадение.

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

Нахождение с помощью XPath• XPath – это язык, который используется для

нахождения элементов в XML документах.

• Одна из главных причин использования XPath –это отсутствие подходящего атрибута “id” или “name” для элемента, который нужно найти.

• Абсолютное выражение содержит в себе путь XPath начиная от корневого элемента (html), поэтому при малейшем изменении в приложении высока вероятность сбоя.

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

Нахождение с помощью XPath

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

Нахождение с помощью CSS• CSS (Cascading Style Sheets, каскадные таблицы стилей) – это

язык, используемый для описания правил визуализации HTML и XML документов. Для привязки стилей к элементам документа, в CSS используются селекторы. Эти селекторы могут быть использованы Selenium в качестве еще одного метода поиска.

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

Добавление assertions в тест

• Selenese позволяет проверять UI элементы разными способами

• Команды verify/assert используются для Проверки наличия UI элемента на странице

Проверки наличия текста на странице

Проверки состояния UI элемента

• Если не выполняется условие assert весь тест проваливается, если не выполняется verify фиксируется ошибка в лог и тест продолжает выполнение

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

30

Команды verifyverifyTextPresent

Использутсядля проверки

наличия текста на странице.

Добавить можно из

контекстного меню в

браузере

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

Команды verify

verifyTitle Позволяет проверить title

страницы.

Добавить можно также изконтекстного меню браузера

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

Команды verify

verifyElementPresent Провряет наличие конкретного

UI элемента на странице(кнопка, ссылка, поле ввода,итд)

Можно добавить изконтекстного менюбраузера,непосредственно «встав»на элемент и вызвавконтекстное меню

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

Assertions

• Команды assert работают аналогично командам verify. Единственное и важное отличие, если assert не выполняется, то прерывается весь тест и помечается как fail. Если не выполняется verify то тест продолжает работу, записывается ошибка в лог.

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

Assertion

assertTextPresentПроверяет наличие текста

assertTextПроверяет наличие текста у какого-либо UI элемента.

assertTitleПроверяет корректность заголовка страницы

assertValueПроверяет значение у поля ввода

assertElementPresentПроверяет наличие элемента на странице

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

WaitFor команды

waitForPageToLoadЖдет полной загрузки страницы

Синтаксис waitForPageToLoad(timeout); timeout –максимальное время ожидания

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

WaitFor команды

waitForAlertКоманда ждет появление всплывающего окошка с сообщением

waitForTableЖдет полной загрузки таблицы

waitForTitleЖдет появления страницы с нужным заголовком

waitForTextЖдет появления текста на странице