Дмитрий Лукьяненко, QA Automation рассматривает:
- Selenium IDE;
- Selenium WebDriver;
- Page Obgect Pattern;
- Page Factory Pattern;
- локаторы;
- как построить фреймворк и куда его можно дальше развивать.
2. 2 года в IT
Из них 1,5 связаны с автоматизированным тестированием
Опыт работы в разного типа проектах, от стартапа до больших легаси проектов
Опыт автоматизации на базе Java и .NET
Несколько слов о себе
11. Запись тестов
Различные виды проверок (assertions, verifications)
Создание тестовых наборов
Автоматический запуск тестов по расписанию
Репорты с помощью Pretty Report add-on
И даже экспорт записанных тестов в виде кода
Возможности Selenium IDE
12. Прохождение pre-conditions для ручных тестов
Проверка валидации на стороне клиента
Приложения, ненагруженные Ajax запросами
Минусы:
Запись большого кол-ва ненужных действий
Тяжело поддерживаемые тесты
Экспортируемый код нужно переписывать почти полностью
Работает только в Firefox
Когда использовать?
14. Что такое Selenium WebDriver?
“Selenium WebDriver представляет собой драйвер браузера, то есть
программную библиотеку, которая позволяет разрабатывать программы,
управляющие поведением браузера.”
Алексей Баранцев
16. Необходимые инструменты
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
17. Локаторы
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
18. Page Object Pattern
Принципы:
Методы для взаимодействия с элементами страницы в классах страниц
(Например: HomePage.java)
Тестовые методы в классах тестов
(Например: HomePageTests.java)
Зачем?
Улучшение поддерживаемости кода
Снижение дупликации кода
19. Page Factory Pattern
Принципы:
Элементы страницы описываются в рамках класса страницы
@FindBy (xpath = “//a”)
WebElement signInLink;
Экземпляры элементов создаются в момент инициализации страницы
PageFactory.initElements(driver, HomePage.class);
Поиск элемента осуществляется в момент взаимодействия с ним
driver.FindElement(By.XPath(“//a”)).click()
signInLink.click()
Зачем?
Улучшение поддерживаемости кода
20. Что дальше?
Параметризация
Ожидания
Работа с JavaScript
Скриншотинг
Кроссбраузерность
Многопоточный прогон тестов
Повторный прогон тестов после фейла
Обработка known issues
Расширенние репортинга