SlideShare ist ein Scribd-Unternehmen logo
1 von 53
V I Q A
Virtual Intelligence
Quality Assurance
Обо мне
Роман Иовлев
QAAutomation Lead
V I Q A
Задача.
Почему не хватило Selenium
UI обертка - Yandex QA Tools достоинства
Проблемы Yandex QA Tool и их решения в VIQA
Описание концепции Virtual Intelligence
Плюшки VIQA и расширение PageObjects
Видео примеры
Что дальше
Virtual Intelligence Quality Assurance
Tool
.Net C#
Selenium 2.X
PageObjects
https://github.com/Supreme85/VIQAUITestingTool
Задача
Тестирование Web UI
Интеграционное тестирование
Like User Behavior Tests
Легко поддерживаемые, логирование и пр.
Selenium?
Довольно низкоуровневый язык
Есть только абстрактный WebElement
Нет таких понятий как сайт, страницы, блоки,
html элементы
Зачастую тесты выглядят примерно так
driver.FindElement(By.XPath(“somelocator1")).SendKeys("1000");
driver.FindElement(By.XPath(“somelocator2")).SendKeys("20000");
driver.FindElement(By.XPath(“somelocator3")).Click();
driver.FindElement(By.XPath(“somelocator4")).Click();
driver.FindElement(By.XPath(“somelocator5").Click();
driver.FindElement(By.XPath(“somelocator6")).Click();
driver.FindElement(By.XPath(“somelocator7")).Click();
driver.FindElement(By.XPath(“somelocator8")).Click();
driver.FindElement(By.XPath(“somelocator9")).Click();
driver.FindElement(By.XPath(“somelocator10")).Click();
Надстройка над Selenium
Yandex QA Tool
Работает с понятными элементами:
Button, Checkbox, TextInput
Использует PageObjects и Blocks
Хороший инструмент для тестирования UI,
но...
Кнопка
<input type=“button” value=“Найти”>
Кнопки бывают разные
Кнопки бывают разные
Кнопки бывают разные
<a href=“…”>
<span>
<img src=“…”>
Найти
<span>
</a>
Yandex QA Tool
Yandex QA Tool
Написать свой класс отнаследовавшись от
TypifiedElement
V I Q A
new Checkbox(“My Checkbox")
{
ClickAction = () => MyElementForClick.Click(),
GetLabelFunc = () => MyElementForLabel.Label,
IsSelectedFunc = () =>
MyElementForClick.GetAttribute("checked") == "1",
};
Интерфейсы (Checkbox)
Атрибуты
IsChecked
Label
Действия
Click
Check
Uncheck
SetValue
V I Q A Интерфейсы
public interface ICheckbox : IClickable, ILabeled, ISetValue
{
void Check();
void Uncheck();
bool IsChecked();
}
Переопределение действия
из нескольких шагов
new DropDown("My Dropdown") {
SelectAction = val => {
MySelectMainElement.Click();
MySelectListElement.WithName(val).Click();
}
};
Логирование
Хочется логировать все действия, которые
делают элементы
Хочется управлять этим логированием
Yandex QA Tool
Yandex QA Tool
Пишите свои классы
V I Q A
Встроеный логер
Кастомный логер IWebLogger
VIAction
Настройка Логера
new Site().Logger = MyLogger();
interface IWebLogger {
void Event (string msg);
void Error (string msg)
} }
VIAction для всех элементов
VIElement.DefaultViAction =
(viElement, text, viAction) => {
viElement.Logger.Event(“Do action: ” + text);
viAction.Invoke();
}
VIAction для одного элемента
VIAction для одного элемента
new RadioButtons(“Сенсорный экран”,
“#sensorScreen”) {
VIAction = (viElement, text, viAction) => {
if (!FirstSensorRadioButton.IsDisplayed)
SensorBlock.Click();
viAction.Invoke();
}
};
О Названии или AI vs VI
Artificial Intelligence
Virtual Intelligence
Сайт
Сайт
Страница1
Страница2
Секция1
Секция2
Элемент
Секция
Элемент
Yandex QA Tool
Yandex QA Tool
PageObjects
Block
HtmlElement
Block
V I Q A
VISite
VIPage
VIElement
VIElement
VISite
WebDriver
Общие настройки (Логирование, Таймауты)
Домен
Каскадная инициализация Страниц
OpenPage/OpenHomePage
Тест
site.OpenHomePage();
{
var _ = HomePage;
_.TextFieldFrom.Input("1000");
_.TextFieldTo.Input("2000");
_.MyCheckbox.Check();
_.MyRadioButtons.Select("да");
_.SearchButton.Click();
}
Assert.IsNotNull(SearchPage.ExpectedElement.WaitWebElement());
VI-элемент
Простые:
Button, CheckBox, Link, TextArea,
TextField, Clickable, Text, ClickableText
Сложные:
CheckList, RadioButtons,
Dropdown, DataForm
Block vs ViElement
Форма для логина аналогична чекбоксу
Yandex QA Tool
[FindsBy(How = How. ClassName, Using = “my-checkbox")]
public CheckBox MyCheckbox;
V I Q A
[Name(Name = "Wi-fi"), Locate(ByXPath = "//*[@class=‘my-checkbox']")]
public ICheckbox MyCheckbox1 = new Checkbox();
[Name(Name = "Wi-fi"), Locate(ByClassName = “my-checkbox")]
public Checkbox MyCheckbox2;
public ICheckbox MyCheckbox3
= new Checkbox("Wi-fi", "#my-checkbox");
public Checkbox MyCheckbox4
= new Checkbox("Wi-fi", By.CssSelector("#my-checkbox"));
Fill Form
Быстрое Массовое заполнение элементов
ISetValue из данных
Множество Элементов
Заполнение в Selenium
driver.FindElement(Locators.FromTextField).SendKeys("1000");
driver.FindElement(Locators.ToTextField).SendKeys("20000");
driver.FindElement(Locators.WifiExpand).Click();
driver.FindElement(Locators.WifiCheckbox).Click();
driver.FindElement(Locators.SensorScrnExpand).Click();
driver.FindElement(Locators.SensorScrnRadio(“да”)).Click();
driver.FindElement(Locators.ProcessorExpand).Click();
driver.FindElement(Locators.ProcessorCheckbox(“AppleA4”)).Click();
driver.FindElement(Locators.ProcessorCheckbox(“AppleA5”)).Click();
driver.FindElement(Locators.ProcessorCheckbox(“AppleA7”)).Click();
Заполнение в VIQA
{
var _ = ProductPage.FilterSection;
_.TextFieldFrom.Input("1000");
_.TextFieldTo.Input("2000");
_.WiFiCheckbox.Check();
_.SensorScreenRadioButtons.Select("да");
_.ProcessorTypesChecklist.CheckGroup(
new[]{"Apple A5", "Apple A6", "Apple A7"});
}
Fill Form
ProductPage.FilterSection.FillForm(MyProduct);
Форма
Работа с формой описывается отдельно
Форма заполняется из бизнес сущности/ей
Одна строчка в коде
VI-элементы: More
А также:
Стабильный поиск элемента
Встроенная Проверка уникальности элемента
Стабильное нажатие элементов
Переопределение действий для любых VIElements
Логирование всех действий и результатов по умолчанию
Еще плюшки
Драйвер стартует при первом вызове Open
Браузер открывается на весь экран
KillAllRunWebDrivers
Написание тестов
Создаем Сайт. Настраиваем его
Создаем страницы/Секции VIElement-ов
Описываем-обучаем элементы для каждой страницы
Описываем Действия со страницами
Составляем тесты
VIQA Profit
Обучаемые Веб Элементы
Использование Интерфейсов
Простота использования
Шаблоны PageObjects, каскадная
инициализация элементов
VIQA Profit
Встроенные логирование и алертинг
Широкие возможность настройки
Фреймворка (свой логгер, настройки
webDriver, таймауты и прочее)
Множество небольших но
приятных мелочей
Планы
Java
Блог
Английское Комьюнити
Ряд других проектов по тестированию
Попробуйте сами 
Роман Иовлев
Email: viqablog@gmail.com или
romanyister@gmail.com
GitHub
https://github.com/Supreme85/VIQAUITestingTool
http://vk.com/viqatools

Weitere ähnliche Inhalte

Was ist angesagt?

QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQAFest
 
Паттерны быстрой разработки WPF MVVM бизнес-приложений
Паттерны быстрой разработки WPF MVVM бизнес-приложенийПаттерны быстрой разработки WPF MVVM бизнес-приложений
Паттерны быстрой разработки WPF MVVM бизнес-приложенийGoSharp
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"SQALab
 
Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
 Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
Зачем нужен JavaScript в iOS-приложениях. Евгений ДымовYandex
 
MVVM в WinForms – DevExpress Way (теория и практика)
MVVM в WinForms – DevExpress Way (теория и практика)MVVM в WinForms – DevExpress Way (теория и практика)
MVVM в WinForms – DevExpress Way (теория и практика)GoSharp
 
Micro Model Based Testing
Micro Model Based TestingMicro Model Based Testing
Micro Model Based TestingSQALab
 
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)Ontico
 
Selenium, а давай подождем?
Selenium, а давай подождем?Selenium, а давай подождем?
Selenium, а давай подождем?SQALab
 

Was ist angesagt? (9)

QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
 
Паттерны быстрой разработки WPF MVVM бизнес-приложений
Паттерны быстрой разработки WPF MVVM бизнес-приложенийПаттерны быстрой разработки WPF MVVM бизнес-приложений
Паттерны быстрой разработки WPF MVVM бизнес-приложений
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
 
CodeFest dirty facts about AngularJS
CodeFest dirty facts about AngularJSCodeFest dirty facts about AngularJS
CodeFest dirty facts about AngularJS
 
Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
 Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
 
MVVM в WinForms – DevExpress Way (теория и практика)
MVVM в WinForms – DevExpress Way (теория и практика)MVVM в WinForms – DevExpress Way (теория и практика)
MVVM в WinForms – DevExpress Way (теория и практика)
 
Micro Model Based Testing
Micro Model Based TestingMicro Model Based Testing
Micro Model Based Testing
 
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
 
Selenium, а давай подождем?
Selenium, а давай подождем?Selenium, а давай подождем?
Selenium, а давай подождем?
 

Ähnlich wie VIQA Web UI Testing Tool

Руководство по приготовлению бутербродов из Selenium
Руководство по приготовлению бутербродов из SeleniumРуководство по приготовлению бутербродов из Selenium
Руководство по приготовлению бутербродов из SeleniumUladzimir Kryvenka
 
FrontTalks: Илья Пухальский (EPAM Systems), «Веб-приложения будущего»
FrontTalks: Илья Пухальский (EPAM Systems), «Веб-приложения будущего»FrontTalks: Илья Пухальский (EPAM Systems), «Веб-приложения будущего»
FrontTalks: Илья Пухальский (EPAM Systems), «Веб-приложения будущего»Yandex
 
Плюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизниПлюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизниz-tech
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейPaul Stashevsky
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Andrey Rebrov
 
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehaveЭволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehaveReturn on Intelligence
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverIgor Khrol
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
Appium для народа
Appium для народаAppium для народа
Appium для народаSQALab
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.Дмитрий Бумов
 
Автоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решениюАвтоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решениюSQALab
 
Watir&amp;web driver
Watir&amp;web driverWatir&amp;web driver
Watir&amp;web driverqasib
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
 
Davit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentationDavit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentationVictoria Astapenko
 
Selenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.euSelenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.euAndrei Solntsev
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 

Ähnlich wie VIQA Web UI Testing Tool (20)

Руководство по приготовлению бутербродов из Selenium
Руководство по приготовлению бутербродов из SeleniumРуководство по приготовлению бутербродов из Selenium
Руководство по приготовлению бутербродов из Selenium
 
FrontTalks: Илья Пухальский (EPAM Systems), «Веб-приложения будущего»
FrontTalks: Илья Пухальский (EPAM Systems), «Веб-приложения будущего»FrontTalks: Илья Пухальский (EPAM Systems), «Веб-приложения будущего»
FrontTalks: Илья Пухальский (EPAM Systems), «Веб-приложения будущего»
 
Плюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизниПлюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизни
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностей
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
 
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehaveЭволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
 
Telerik Web aii
Telerik Web aiiTelerik Web aii
Telerik Web aii
 
Selenium vs AJAX
Selenium vs AJAXSelenium vs AJAX
Selenium vs AJAX
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Appium для народа
Appium для народаAppium для народа
Appium для народа
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.
 
Автоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решениюАвтоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решению
 
Watir&amp;web driver
Watir&amp;web driverWatir&amp;web driver
Watir&amp;web driver
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
Davit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentationDavit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentation
 
Selenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.euSelenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.eu
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с Codeception
 

VIQA Web UI Testing Tool