viqa web ui testing tool
DESCRIPTION
VIQA Инструмент для тестирования Web UI. Вика старается сделать для вас процесс тестирование удобным и понятным, позаботится о логировании всех ваших действий и будет рада узнать что-нибудь новенькое, если вы захотите ее обучить. Инструмент VIQA использует популярный шаблон PageObjects расширяя его до таких понятий как сайт и страница. Все используемые элементы интуитивно понятны, не требуют от вас лишних действий для работы с ними и обладают широкими возможностями для настройки работы с ними. Каждое действие элемента можно подстроить под свое приложение, либо настроить общую работу элементов. Вика желает вам интересной и приятной работы.TRANSCRIPT
![Page 1: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/1.jpg)
V I Q A
Virtual IntelligenceQuality Assurance
![Page 2: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/2.jpg)
Обо мне
Роман Иовлев
QA Automation Lead
![Page 3: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/3.jpg)
V I Q A
Задача.
Почему не хватило Selenium
UI обертка - Yandex QA Tools достоинства
Проблемы Yandex QA Tool и их решения в VIQA
Описание концепции Virtual Intelligence
Плюшки VIQA и расширение PageObjects
Видео примеры
Что дальше
![Page 4: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/4.jpg)
Virtual Intelligence Quality AssuranceTool
.Net C#
Selenium 2.X
PageObjects
https://github.com/Supreme85/VIQAUITestingTool
![Page 5: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/5.jpg)
Задача
Тестирование Web UI
Интеграционное тестирование
Like User Behavior Tests
Легко поддерживаемые, логирование и пр.
![Page 6: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/6.jpg)
Selenium?
Довольно низкоуровневый язык
Есть только абстрактный WebElement
Нет таких понятий как сайт, страницы, блоки, html элементы
![Page 7: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/7.jpg)
Зачастую тесты выглядят примерно так
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();
![Page 8: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/8.jpg)
Надстройка над Selenium
Yandex QA Tool
Работает с понятными элементами:
Button, Checkbox, TextInput
Использует PageObjects и Blocks
Хороший инструмент для тестирования UI, но...
![Page 9: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/9.jpg)
I
![Page 10: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/10.jpg)
Кнопка
<input type=“button” value=“Найти”>
![Page 11: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/11.jpg)
Кнопки бывают разные
![Page 12: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/12.jpg)
Кнопки бывают разные
![Page 13: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/13.jpg)
Кнопки бывают разные
<a href=“…”><span>
<img src=“…”>
Найти
<\span>
</a>
![Page 14: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/14.jpg)
Yandex QA Tool
![Page 15: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/15.jpg)
Yandex QA Tool
Написать свой класс отнаследовавшись от TypifiedElement
![Page 16: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/16.jpg)
V I Q A
new Checkbox(“My Checkbox")
{
ClickAction = () => MyElementForClick.Click(),
GetLabelFunc = () => MyElementForLabel.Label,
IsSelectedFunc = () =>
MyElementForClick.GetAttribute("checked") == "1",
};
![Page 17: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/17.jpg)
Интерфейсы (Checkbox)Атрибуты
IsCheckedLabel
ДействияClickCheckUncheckSetValue
![Page 18: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/18.jpg)
V I Q A Интерфейсы
public interface ICheckbox : IClickable, ILabeled, ISetValue
{
void Check();
void Uncheck();
bool IsChecked();
}
![Page 19: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/19.jpg)
Переопределение действия из нескольких шагов
new DropDown("My Dropdown") {
SelectAction = val => {
MySelectMainElement.Click();
MySelectListElement.WithName(val).Click();
}
};
![Page 20: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/20.jpg)
II
![Page 21: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/21.jpg)
Логирование
Хочется логировать все действия, которые делают элементы
Хочется управлять этим логированием
![Page 22: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/22.jpg)
Yandex QA Tool
![Page 23: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/23.jpg)
Yandex QA Tool
Пишите свои классы
![Page 24: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/24.jpg)
V I Q A
Встроеный логер
Кастомный логер IWebLogger
VIAction
![Page 25: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/25.jpg)
Настройка Логера
new Site().Logger = MyLogger();
interface IWebLogger {
void Event (string msg);
void Error (string msg)
} }
![Page 26: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/26.jpg)
VIAction для всех элементов
VIElement.DefaultViAction =
(viElement, text, viAction) => {
viElement.Logger.Event(“Do action: ” + text);
viAction.Invoke();
}
![Page 27: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/27.jpg)
VIAction для одного элемента
![Page 28: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/28.jpg)
VIAction для одного элемента
new RadioButtons(“Сенсорный экран”, “#sensorScreen”) {
VIAction = (viElement, text, viAction) => {
if (!FirstSensorRadioButton.IsDisplayed)
SensorBlock.Click();
viAction.Invoke();
}
};
![Page 29: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/29.jpg)
О Названии или AI vs VI
Artificial Intelligence
Virtual Intelligence
![Page 30: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/30.jpg)
III
![Page 31: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/31.jpg)
Сайт
СайтСтраница1
Страница2Секция1
Секция2Элемент
Секция
Элемент
![Page 32: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/32.jpg)
Yandex QA Tool
![Page 33: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/33.jpg)
Yandex QA Tool
PageObjects
BlockHtmlElement
Block
![Page 34: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/34.jpg)
V I Q A
VISiteVIPage
VIElementVIElement
![Page 35: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/35.jpg)
VISite
WebDriver
Общие настройки (Логирование, Таймауты)
Домен
Каскадная инициализация Страниц
OpenPage/OpenHomePage
![Page 36: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/36.jpg)
Тест
site.OpenHomePage();
{var _ = HomePage;
_.TextFieldFrom.Input("1000");
_.TextFieldTo.Input("2000");
_.MyCheckbox.Check();
_.MyRadioButtons.Select("да");
_.SearchButton.Click();
}Assert.IsNotNull(SearchPage.ExpectedElement.WaitWebElement());
![Page 37: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/37.jpg)
VI-элемент
Простые:
Button, CheckBox, Link, TextArea,
TextField, Clickable, Text, ClickableText
Сложные:
CheckList, RadioButtons, Dropdown, DataForm
![Page 38: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/38.jpg)
Block vs ViElement
Форма для логина аналогична чекбоксу
![Page 39: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/39.jpg)
Yandex QA Tool
[FindsBy(How = How. ClassName, Using = “my-checkbox")]
public CheckBox MyCheckbox;
![Page 40: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/40.jpg)
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"));
![Page 41: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/41.jpg)
Fill Form
Быстрое Массовое заполнение элементов
ISetValue из данных
![Page 42: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/42.jpg)
Множество Элементов
![Page 43: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/43.jpg)
Заполнение в 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();
![Page 44: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/44.jpg)
Заполнение в VIQA
{
var _ = ProductPage.FilterSection;
_.TextFieldFrom.Input("1000");
_.TextFieldTo.Input("2000");
_.WiFiCheckbox.Check();
_.SensorScreenRadioButtons.Select("да");
_.ProcessorTypesChecklist.CheckGroup(
new[]{"Apple A5", "Apple A6", "Apple A7"});
}
![Page 45: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/45.jpg)
Fill Form
ProductPage.FilterSection.FillForm(MyProduct);
![Page 46: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/46.jpg)
Форма
Работа с формой описывается отдельно
Форма заполняется из бизнес сущности/ей
Одна строчка в коде
![Page 47: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/47.jpg)
VI-элементы: More
А также:
Стабильный поиск элемента
Встроенная Проверка уникальности элемента
Стабильное нажатие элементов
Переопределение действий для любых VIElements
Логирование всех действий и результатов по умолчанию
![Page 48: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/48.jpg)
Еще плюшки
Драйвер стартует при первом вызове Open
Браузер открывается на весь экран
KillAllRunWebDrivers
![Page 49: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/49.jpg)
Написание тестов
Создаем Сайт. Настраиваем его
Создаем страницы/Секции VIElement-ов
Описываем-обучаем элементы для каждой страницы
Описываем Действия со страницами
Составляем тесты
![Page 50: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/50.jpg)
VIQA Profit
Обучаемые Веб Элементы
Использование Интерфейсов
Простота использования
Шаблоны PageObjects, каскадная
инициализация элементов
![Page 51: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/51.jpg)
VIQA Profit
Встроенные логирование и алертинг
Широкие возможность настройки
Фреймворка (свой логгер, настройки
webDriver, таймауты и прочее)
Множество небольших но
приятных мелочей
![Page 52: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/52.jpg)
Планы
Java
Блог
Английское Комьюнити
Ряд других проектов по тестированию
![Page 53: VIQA Web UI Testing Tool](https://reader033.vdocument.in/reader033/viewer/2022061202/547b2344b37959a22b8b4c58/html5/thumbnails/53.jpg)
Попробуйте сами
Роман Иовлев
Email: [email protected] или
GitHub https://github.com/Supreme85/VIQAUITestingTool
http://vk.com/viqatools