Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Строим свой первый Фреймворк
на Selenium + TestNG
2 года в IT
Из них 1,5 связаны с автоматизированным тестированием
Опыт работы в разного типа проектах, от стартапа до больших легаси проектов
Опыт автоматизации на базе Java и .NET
Несколько слов о себе
Жизнь слишком коротка,
чтобы заниматься
ручным тестированием.
Жизнь слишком коротка,
чтобы заниматься
только
ручным тестированием.
Что такое автоматизированное
тестирование?
Автоматизированное тестирование - это процесс проверки ПО, при котором
основные функции и шаги теста выполняются автоматически с использованием
специальных инструментов.
Преимущества автоматизированного
тестирования:
Повторяемость
Быстрое выполнение тестов
Автономное выполнение тестов
Автоматическая генерация отчетов
Недостатки автоматизированного
тестирования:
Повторяемость
Пропуск мелких ошибок
Затраты на разработку
Затраты на поддержку
Стоимость инструмента
Actions
HTTP
Response
HTTP
Request
Принцип работы Web-приложения
Actions
HTTP
Response
HTTP
Request
А где же Selenium WebDriver?
Assertion
results
Selenium IDE
Запись тестов
Различные виды проверок (assertions, verifications)
Создание тестовых наборов
Автоматический запуск тестов по расписанию
Репорты с помощью Pretty Report add-on
И даже экспорт записанных тестов в виде кода
Возможности Selenium IDE
Прохождение pre-conditions для ручных тестов
Проверка валидации на стороне клиента
Приложения, ненагруженные Ajax запросами
Минусы:
Запись большого кол-ва ненужных действий
Тяжело поддерживаемые тесты
Экспортируемый код нужно переписывать почти полностью
Работает только в Firefox
Когда использовать?
Построение фреймворка на
Selenium WebDriver + TestNG
Что такое Selenium WebDriver?
“Selenium WebDriver представляет собой драйвер браузера, то есть
программную библиотеку, которая позволяет разрабатывать программы,
управляющие поведением браузера.”
Алексей Баранцев
О WebDriver
Языки программирования:
Java
C#
Ruby
Python
и т.д.
Поддерживаемые браузеры:
Firefox 3.6+
Internet Explorer 6+
Safari 2+
Opera 8+
Google Chrome 12.0.712.0+
и т.д.
Необходимые инструменты
Required:
Java SDK (.NET for C#)
IntelliJ IDEA (Eclipse for Java, Visual Studio for C#)
WebDriver - библиотека для работы с браузером
TestNG - фреймворк тестирования (JUnit for Java, NUnit fro C#)
Maven - инструмент для сборки проекта (Ant for Java, MSBuild for C#)
Optional:
FireBug - add-on для Firefox, заменяющий Dev Tools
FirePath - add-on для Firefox, позволяющий писать локаторы в FireBug
Локаторы
1. По id driver.FindElement(By.Id(“id”));
2. По атрибуту name driver.FindElement(By.Name(“name”));
3. По имени класса driver.FindElement(By.ClassName(“className”));
4. По css селектору driver.FindElement(By.Css(“css”));
5. По xPath driver.FindElement(By.XPath(“xPath”));
6. По тексту ссылки driver.FindElement(By.LinkText(“linkText”));
P
R
I
O
R
I
T
Y
Page Object Pattern
Принципы:
Методы для взаимодействия с элементами страницы в классах страниц
(Например: HomePage.java)
Тестовые методы в классах тестов
(Например: HomePageTests.java)
Зачем?
Улучшение поддерживаемости кода
Снижение дупликации кода
Page Factory Pattern
Принципы:
Элементы страницы описываются в рамках класса страницы
@FindBy (xpath = “//a”)
WebElement signInLink;
Экземпляры элементов создаются в момент инициализации страницы
PageFactory.initElements(driver, HomePage.class);
Поиск элемента осуществляется в момент взаимодействия с ним
driver.FindElement(By.XPath(“//a”)).click()
signInLink.click()
Зачем?
Улучшение поддерживаемости кода
Что дальше?
Параметризация
Ожидания
Работа с JavaScript
Скриншотинг
Кроссбраузерность
Многопоточный прогон тестов
Повторный прогон тестов после фейла
Обработка known issues
Расширенние репортинга
Вопросы?

More Related Content

Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG