SlideShare a Scribd company logo
Автоматизация тестирования с 
помощью Selenium
Test Automation 
• Автоматизация тестирования нужна для 
 Для установки предусловий для выполнения 
тестов 
 Для выполнения самих тестов 
 Для сравнения фактического и ожидаемого 
результата 
Для формирования отчетности о выполнении 
тестов 
• Обычно, автоматизируют уже созданные тестовые 
сценарии, которые уже выполняются в ручном режиме в 
рамках какого-либо формализованного процесса
Зачем и когда автоматизировать? 
• Частое регрессионное тестирование 
• Требуется повторное выполнение теста 
• Приемочное тестирование 
• Быстрая обратная связь разработке 
• Минимизировать человеческий фактор 
• Тестирование одного приложения в разных 
окружениях
автоматизация тестирования с помощью Selenium
Selenium 
• Selenium это набор инструментов для быстрой 
разработки автоматических тестов. 
• Selenium предоставляет богатый набор функций 
которые очень хорошо подходят для разработки 
тестов веб-приложений. 
• Selenium команды позволяют удобным способом 
обрабатывать UI элементы и сравнивать 
ожидаемое поведение приложения с 
фактическим
Возможности Selenium 
• Поддерживает кросс-бразуерное тестирование. 
Тесты selenium можно запускать во всех 
современных браузерах 
• Поддерживает написание тестовых скриптов на 
нескольких языках Java, C#, PHP and Python. 
• Богатый набор assert- команд для сравнения 
ожидаемого и фактического результата 
• Встроенный механизм отчетности (логи)
Selenium 
Это проект, в рамках которого разрабатывается 
серия программных продуктов с открытым 
исходным кодом 
• Selenium IDE 
• Selenium WebDriver 
• Selenium RC 
• Selenium Server 
• Selenium Grid
Selenium RC (Remote Control) 
• предыдущая версия библиотеки для 
управления браузерами 
• это средство для «удалённого» управления 
браузером 
• Сейчас находится в законсервированном 
состоянии, не развивается, известные баги 
не усправляются 
• Иногда Selenium RC называется также 
Selenium 1.0, а WebDriver называется 
Selenium 2.0
Selenium WebDriver 
•программная библиотека для 
управления браузерами 
•основной продукт, разрабатываемый в 
рамках проекта Selenium 
•это целое семейство драйверов для 
различных браузеров, а также набор 
клиентских библиотек на разных языках, 
позволяющих работать с этими 
драйверами
Selenium WebDriver
Selenium Server 
• сервер, который позволяет управлять 
браузером с удалённой машины, по сети 
• поддерживает одновременно два набора 
команд – для новой версии (WebDriver) и 
для старой версии (Selenium RC)
Selenium Grid 
• кластер, состоящий из нескольких Selenium- 
серверов 
• предназначен для организации распределённой 
сети, позволяющей параллельно запускать много 
браузеров на большом количестве машин 
• Ранее Selenium Grid был самостоятельным 
продуктом. Сейчас продукт один - Selenium Server, 
но у него есть несколько режимов запуска: он 
может работать как самостоятельный сервер, как 
коммутатор кластера, либо как узел кластера, это 
определяется параметрами запуска.
Selenium IDE 
• Selenium IDE это среда разработки для 
тестов 
• Реализована расширением для Firefox и 
позволяет записывать, редактировать и 
воспроизводить тесты 
• Selenium IDE умеет сохранять тесты в 
формате HTML, Java, Ruby scripts, и ещё 
нескольких 
• Позволяет автоматически добавлять 
assertions 
• Позволяет добавлять команды когда и куда 
требуется
14 
Selenium IDE - UI 
Start/Stop записи 
Редактор теста 
Лог выполнения
Язык команд Selenium 
• Язык Selenium – это набор команд, которые 
составляют ваши тесты. 
• Последовательность таких команд 
называется тестовый сценарий. 
• Набор команд Selenium часто называют 
selenese, то есть селенийским языком. 
• Команды Selenium бывают трех видов: 
Действия (Actions), Считыватели 
(Accessors) и Проверки (Assertions).
Основные команды Selenese 
 Переход по ссылкам – click,clickAndWait 
 Ввод значений - type 
 Выбор значений из выпадающих списков – select 
 Проверка ожидаемых результатов verify/assert 
 Команды условного ожидания – wait*
Синтаксис языка команд Selenium 
• Command – имя команды 
• Target – локатор элемента цели команды 
• Value – входное значение для команды 
http://release.seleniumhq.org/selenium-core/1.0.1/reference.html
Команды Selenium 
• Действия - команды, которые обычно 
управляют состоянием приложения. Они 
совершают действия вроде “щелкнуть по той 
ссылке” или “выбрать эту опцию”. 
• Считыватели - анализируют состояние 
приложения и сохраняют результаты в 
переменные 
• Проверки - проверяют соответствие 
состояния приложения ожидаемому.
Пример структуры html документа (dom tree)
автоматизация тестирования с помощью Selenium
Локатор – это строка которая однозначно 
идентифицирует элемент интерфеса (UI элемент) 
• id=login 
• name=password 
• link=Найти 
• xpath=(//button[@type='submit'])[2] 
• css=a.ra-search-form-currency-link > span
Нахождение по “id” 
• Данный тип локатора является точным. 
Используется, когда известно значение 
атрибута “id” элемента
Нахождение по “name” 
• ищет первый элемент с соответствующим запросу атрибутом 
“name”. Если у нескольких элементов одинаковое значение 
атрибута “name”, то тогда можно использовать фильтры, 
чтобы отсеять ненужные результаты. Тип фильтра по 
умолчанию – это значение атрибута “value”.
Нахождение гиперссылок по тексту ссылки 
• Используя метод поиска по тексту ссылки, находить 
гиперссылки на веб-странице довольно легко. Если на 
странице присутствуют две ссылки с одинаковым текстом, 
то будет использовано первое совпадение.
Нахождение с помощью XPath 
• XPath – это язык, который используется для 
нахождения элементов в XML документах. 
• Одна из главных причин использования XPath – 
это отсутствие подходящего атрибута “id” или 
“name” для элемента, который нужно найти. 
• Абсолютное выражение содержит в себе путь 
XPath начиная от корневого элемента (html), 
поэтому при малейшем изменении в приложении 
высока вероятность сбоя.
Нахождение с помощью XPath
Нахождение с помощью CSS 
• CSS (Cascading Style Sheets, каскадные таблицы стилей) – это 
язык, используемый для описания правил визуализации 
HTML и XML документов. Для привязки стилей к элементам 
документа, в CSS используются селекторы. Эти селекторы 
могут быть использованы Selenium в качестве еще одного 
метода поиска.
автоматизация тестирования с помощью Selenium
Добавление assertions в тест 
• Selenese позволяет проверять UI элементы 
разными способами 
• Команды verify/assert используются для 
 Проверки наличия UI элемента на странице 
 Проверки наличия текста на странице 
 Проверки состояния UI элемента 
• Если не выполняется условие assert весь тест 
проваливается, если не выполняется verify 
фиксируется ошибка в лог и тест продолжает 
выполнение
30 
Команды 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 
Ждет появления текста на странице

More Related Content

PPTX
Автоматизация и Selenium IDE
PPTX
Factory Design Pattern
PDF
Form認証で学ぶSpring Security入門
PDF
Pengenalan ReactJS
PPT
ジェネリクスの基礎と クラス設計への応用
PPTX
Collections framework in java
PPTX
Create rest service in osb 12c that response any type in the service like jso...
PDF
Základy licencování Oracle software
Автоматизация и Selenium IDE
Factory Design Pattern
Form認証で学ぶSpring Security入門
Pengenalan ReactJS
ジェネリクスの基礎と クラス設計への応用
Collections framework in java
Create rest service in osb 12c that response any type in the service like jso...
Základy licencování Oracle software

What's hot (20)

PDF
Java 8 features
PPTX
C++20 features
PDF
Java 8 Lambda Expressions & Streams
PDF
스프링 시큐리티 구조 이해
PDF
자바 서버 애플리케이션 아키텍처 안티 패턴
PDF
How To Become Better Engineer
PPT
Шаблоны разработки ПО. Шаблоны GRASP
PPTX
A Brief Introduction to Test-Driven Development
PPTX
Factory Design Pattern
PDF
TestNG Annotations in Selenium | Edureka
PPTX
Reactive Programming in Java 8 with Rx-Java
PDF
SQLアンチパターン - ナイーブツリー
PPTX
Kotlin presentation
PDF
Spring3.1概要 AOP & MVC
PPT
Factory Method Pattern
PPTX
bashでWebブラウザ(Selenium WebDriver)を動かした話
KEY
Lightning Talks日本上陸
PDF
L'API Collector dans tous ses états
ODP
どこに何を書くのか?
PDF
JSF2.2で簡単webアプリケーション開発
Java 8 features
C++20 features
Java 8 Lambda Expressions & Streams
스프링 시큐리티 구조 이해
자바 서버 애플리케이션 아키텍처 안티 패턴
How To Become Better Engineer
Шаблоны разработки ПО. Шаблоны GRASP
A Brief Introduction to Test-Driven Development
Factory Design Pattern
TestNG Annotations in Selenium | Edureka
Reactive Programming in Java 8 with Rx-Java
SQLアンチパターン - ナイーブツリー
Kotlin presentation
Spring3.1概要 AOP & MVC
Factory Method Pattern
bashでWebブラウザ(Selenium WebDriver)を動かした話
Lightning Talks日本上陸
L'API Collector dans tous ses états
どこに何を書くのか?
JSF2.2で簡単webアプリケーション開発
Ad

Similar to автоматизация тестирования с помощью Selenium (20)

PPTX
автоматизация тестирования с помощью Selenium
PDF
Плюсы и минусы автоматизации, пример из жизни
PPT
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
PPT
Функциональное тестирование. Семейство продуктов Selenium
PDF
Testing with Selenium
PDF
Как построить свой фреймворк для автотестов?
PPTX
Automation Functional Testing in Agile Projects
ODP
Selenium на практике и подводные камни
PPTX
Katerina Simonova CSEDays
PPTX
Simonova CSEDays
PPTX
Katerina Simonova CSEDays
PPTX
Web driver история одной миграции
PPTX
Meeting #4. Frameworks.
PPT
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
PPTX
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
PPT
Selenium Begins
PPTX
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
PPT
Simonova sql server-enginetesting
PPT
Решения для автоматизации тестирования Web-приложений на базе Selenium
автоматизация тестирования с помощью Selenium
Плюсы и минусы автоматизации, пример из жизни
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Функциональное тестирование. Семейство продуктов Selenium
Testing with Selenium
Как построить свой фреймворк для автотестов?
Automation Functional Testing in Agile Projects
Selenium на практике и подводные камни
Katerina Simonova CSEDays
Simonova CSEDays
Katerina Simonova CSEDays
Web driver история одной миграции
Meeting #4. Frameworks.
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
Selenium Begins
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Simonova sql server-enginetesting
Решения для автоматизации тестирования Web-приложений на базе Selenium
Ad

More from vyacheslavmaslov (14)

PPT
6 лекция. тестирование производительности
PPT
5 лекция. презентация
PPT
3 лекция. презентация
PPT
3 лекция. презентация
PPTX
How towritebugreports
PPT
02-lection-ka
PPT
01-lection-ka
PPTX
белый ящик
PPTX
03 load testing
PPTX
PPTX
How towritebugreports
PPTX
тестирование по стратегии черного ящика
PPTX
PPTX
6 лекция. тестирование производительности
5 лекция. презентация
3 лекция. презентация
3 лекция. презентация
How towritebugreports
02-lection-ka
01-lection-ka
белый ящик
03 load testing
How towritebugreports
тестирование по стратегии черного ящика

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

  • 2. Test Automation • Автоматизация тестирования нужна для  Для установки предусловий для выполнения тестов  Для выполнения самих тестов  Для сравнения фактического и ожидаемого результата Для формирования отчетности о выполнении тестов • Обычно, автоматизируют уже созданные тестовые сценарии, которые уже выполняются в ручном режиме в рамках какого-либо формализованного процесса
  • 3. Зачем и когда автоматизировать? • Частое регрессионное тестирование • Требуется повторное выполнение теста • Приемочное тестирование • Быстрая обратная связь разработке • Минимизировать человеческий фактор • Тестирование одного приложения в разных окружениях
  • 5. Selenium • Selenium это набор инструментов для быстрой разработки автоматических тестов. • Selenium предоставляет богатый набор функций которые очень хорошо подходят для разработки тестов веб-приложений. • Selenium команды позволяют удобным способом обрабатывать UI элементы и сравнивать ожидаемое поведение приложения с фактическим
  • 6. Возможности Selenium • Поддерживает кросс-бразуерное тестирование. Тесты selenium можно запускать во всех современных браузерах • Поддерживает написание тестовых скриптов на нескольких языках Java, C#, PHP and Python. • Богатый набор assert- команд для сравнения ожидаемого и фактического результата • Встроенный механизм отчетности (логи)
  • 7. Selenium Это проект, в рамках которого разрабатывается серия программных продуктов с открытым исходным кодом • Selenium IDE • Selenium WebDriver • Selenium RC • Selenium Server • Selenium Grid
  • 8. Selenium RC (Remote Control) • предыдущая версия библиотеки для управления браузерами • это средство для «удалённого» управления браузером • Сейчас находится в законсервированном состоянии, не развивается, известные баги не усправляются • Иногда Selenium RC называется также Selenium 1.0, а WebDriver называется Selenium 2.0
  • 9. Selenium WebDriver •программная библиотека для управления браузерами •основной продукт, разрабатываемый в рамках проекта Selenium •это целое семейство драйверов для различных браузеров, а также набор клиентских библиотек на разных языках, позволяющих работать с этими драйверами
  • 11. Selenium Server • сервер, который позволяет управлять браузером с удалённой машины, по сети • поддерживает одновременно два набора команд – для новой версии (WebDriver) и для старой версии (Selenium RC)
  • 12. Selenium Grid • кластер, состоящий из нескольких Selenium- серверов • предназначен для организации распределённой сети, позволяющей параллельно запускать много браузеров на большом количестве машин • Ранее Selenium Grid был самостоятельным продуктом. Сейчас продукт один - Selenium Server, но у него есть несколько режимов запуска: он может работать как самостоятельный сервер, как коммутатор кластера, либо как узел кластера, это определяется параметрами запуска.
  • 13. Selenium IDE • Selenium IDE это среда разработки для тестов • Реализована расширением для Firefox и позволяет записывать, редактировать и воспроизводить тесты • Selenium IDE умеет сохранять тесты в формате HTML, Java, Ruby scripts, и ещё нескольких • Позволяет автоматически добавлять assertions • Позволяет добавлять команды когда и куда требуется
  • 14. 14 Selenium IDE - UI Start/Stop записи Редактор теста Лог выполнения
  • 15. Язык команд Selenium • Язык Selenium – это набор команд, которые составляют ваши тесты. • Последовательность таких команд называется тестовый сценарий. • Набор команд Selenium часто называют selenese, то есть селенийским языком. • Команды Selenium бывают трех видов: Действия (Actions), Считыватели (Accessors) и Проверки (Assertions).
  • 16. Основные команды Selenese  Переход по ссылкам – click,clickAndWait  Ввод значений - type  Выбор значений из выпадающих списков – select  Проверка ожидаемых результатов verify/assert  Команды условного ожидания – wait*
  • 17. Синтаксис языка команд Selenium • Command – имя команды • Target – локатор элемента цели команды • Value – входное значение для команды http://release.seleniumhq.org/selenium-core/1.0.1/reference.html
  • 18. Команды Selenium • Действия - команды, которые обычно управляют состоянием приложения. Они совершают действия вроде “щелкнуть по той ссылке” или “выбрать эту опцию”. • Считыватели - анализируют состояние приложения и сохраняют результаты в переменные • Проверки - проверяют соответствие состояния приложения ожидаемому.
  • 19. Пример структуры html документа (dom tree)
  • 21. Локатор – это строка которая однозначно идентифицирует элемент интерфеса (UI элемент) • id=login • name=password • link=Найти • xpath=(//button[@type='submit'])[2] • css=a.ra-search-form-currency-link > span
  • 22. Нахождение по “id” • Данный тип локатора является точным. Используется, когда известно значение атрибута “id” элемента
  • 23. Нахождение по “name” • ищет первый элемент с соответствующим запросу атрибутом “name”. Если у нескольких элементов одинаковое значение атрибута “name”, то тогда можно использовать фильтры, чтобы отсеять ненужные результаты. Тип фильтра по умолчанию – это значение атрибута “value”.
  • 24. Нахождение гиперссылок по тексту ссылки • Используя метод поиска по тексту ссылки, находить гиперссылки на веб-странице довольно легко. Если на странице присутствуют две ссылки с одинаковым текстом, то будет использовано первое совпадение.
  • 25. Нахождение с помощью XPath • XPath – это язык, который используется для нахождения элементов в XML документах. • Одна из главных причин использования XPath – это отсутствие подходящего атрибута “id” или “name” для элемента, который нужно найти. • Абсолютное выражение содержит в себе путь XPath начиная от корневого элемента (html), поэтому при малейшем изменении в приложении высока вероятность сбоя.
  • 27. Нахождение с помощью CSS • CSS (Cascading Style Sheets, каскадные таблицы стилей) – это язык, используемый для описания правил визуализации HTML и XML документов. Для привязки стилей к элементам документа, в CSS используются селекторы. Эти селекторы могут быть использованы Selenium в качестве еще одного метода поиска.
  • 29. Добавление assertions в тест • Selenese позволяет проверять UI элементы разными способами • Команды verify/assert используются для  Проверки наличия UI элемента на странице  Проверки наличия текста на странице  Проверки состояния UI элемента • Если не выполняется условие assert весь тест проваливается, если не выполняется verify фиксируется ошибка в лог и тест продолжает выполнение
  • 30. 30 Команды verify verifyTextPresent Использутсядля проверки наличия текста на странице. Добавить можно из контекстного меню в браузере
  • 31. Команды verify verifyTitle  Позволяет проверить title страницы.  Добавить можно также из контекстного меню браузера
  • 32. Команды verify verifyElementPresent  Провряет наличие конкретного UI элемента на странице (кнопка, ссылка, поле ввода, итд)  Можно добавить из контекстного меню браузера, непосредственно «встав» на элемент и вызвав контекстное меню
  • 33. Assertions • Команды assert работают аналогично командам verify. Единственное и важное отличие, если assert не выполняется, то прерывается весь тест и помечается как fail. Если не выполняется verify то тест продолжает работу, записывается ошибка в лог.
  • 34. Assertion  assertTextPresent Проверяет наличие текста  assertText Проверяет наличие текста у какого-либо UI элемента.  assertTitle Проверяет корректность заголовка страницы  assertValue Проверяет значение у поля ввода  assertElementPresent Проверяет наличие элемента на странице
  • 35. WaitFor команды waitForPageToLoad Ждет полной загрузки страницы Синтаксис waitForPageToLoad(timeout); timeout – максимальное время ожидания
  • 36. WaitFor команды waitForAlert Команда ждет появление всплывающего окошка с сообщением waitForTable Ждет полной загрузки таблицы waitForTitle Ждет появления страницы с нужным заголовком waitForText Ждет появления текста на странице