Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Фреймворк для регрессионного тестирования на основе...
-
Upload
automated-testinginfo -
Category
Technology
-
view
1.462 -
download
1
description
Transcript of Фреймворк для регрессионного тестирования на основе...
atdays.com
Создание
фреймворка для
регрессионного
тестирования
Иван Бордюг
atdays.com #atdays
О чем будем говорить
Идея создания проекта
Научимся создавать фреймворк для
регрессионного тестирования
Научимся экономить самое ценное
- время
Обсудим все плюсы и минусы данного подхода
2
atdays.com #atdays
Обо мне:
Инженер- тестеровщик. Автоматизатор тестирования
2.5 года, ~2 года в автоматизации.
Skype: vanya_trasser
eMail: [email protected]
3
atdays.com #atdays
РОЖДЕНИЕ ИДЕИ
Как и с чего родилась идея, как возникла потребность в
данном фреймворке.
4
atdays.com #atdays
Рождение идеи
5
atdays.com #atdays
ПОСТРОЕНИЕ ФРЕЙМВОРКА
В этом разделе будет максимально детально
рассмотрено процесс создания данного фреймворка
6
atdays.com #atdays
Что нам нужно?
Используемые технологии:
Любой язык программирования который позволит составить XML и розпарсить его.
Любой инструмент автоматизации тестирования
7
atdays.com #atdays
Архитектура фреймворка
8
Frontend
Ядро
Сохранение результатов
atdays.com #atdays
Детальней про архитектуру
9
atdays.com #atdays
Почему WebDriver
10
Легок в использовании
Много информации в интернете
Много вариантов нахождения элементов
… но и он не идеален =(
atdays.com #atdays
Frontend
Основная задача – сгенерировать XML
Удобный интерфейс
Доступ к сценариям и данным через интерфейс
11
atdays.com #atdays
Ядро
Основная задача – разложить XML и выполнить его сценарий
Может быть написано под любой инструмент автоматизации
Легко изменяемо, дополняемо и
максимально гибко
12
atdays.com #atdays
Схема классов
13
XML
Generator (Frontend)
Xml Parser
(Core)
atdays.com #atdays
Схема классов
14
XML
Generator (Frontend)
switch(element){
case click:
switch (click) {
case ClickById:
/Click by id realization
break;
case ClickByXPath:
//Click by XPath
realization
break;
case
ClickByClassName:
//Click by classname
realization
break;
default:
break;
}
break;
}
<el val = click>
<el val = ClickById/>
<el val =ClickByXPath/>
<el
val=clickByClassName>
</el>
XML
Running scenario
atdays.com #atdays
Как она выглядит?
15 15
atdays.com #atdays
ИТОГИ
Подводим итоги
16
atdays.com #atdays
Итоги
Пишем каждую строчку кода только
раз
Стараемся не только для себя, но и
для других
Строим фреймворк вместе!
Стараемся не находить проблемы
там где их нет
Автоматизировать это просто!!!
17