SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Горячко Дмитрий

Расширяемая платформа для создания
и управления автоматизированными
тестами на основе технологии Java.
Прежде чем начать
Продукт создаётся java разработчиками и архитекторами с
использованием опыта нескольких Java автоматизаторов со стажем,
адресуя задачи, которые возникали перед компанией на многих
реальных проектах
О себе: профессиональный Java разработчик с 10 летним стажем, докладчик
различных беларуских конференций на тему инженерии ПО, основатель
и руководитель Agile Java Development компании JazzTeam, имею
хороший опыт в автоматизации тестирования (принимал участие в
работе над платформой по автоматизации тестирования одной из
успешных SOA платформ http://sopera.com и др.), являюсь
организатором "Первой в Беларуси Региональной IT Конференции Solit"
http://solit.iSoligorsk.org, а также коммитером Eclipse Open Source
сообщества.

2
Эта презентация
• Рассказ о платформе, мотивации и возможностях
для конечного пользователя
• Рассказ об особенностях разработки платформы,
что может вдохновить Вас на использование
наших идей

Ваш feedback очень важен 

3
Как это выглядит?
• Тесты пишутся на XML

• Пользователь работает
с отчётами

4
Demo доступ
• Jenkins http://dev.jazzteam.org:8080
• Username x2sdemo, password x2sdemo
• Выберите последний билд и перейдите по ссылке
“Build Artifacts”, или сразу используйте прямую
ссылку для доступа к отчётам
http://dev.jazzteam.org:8080/job/xml2selenium-reportssmoketestcases_master/57/artifact/xml2seleniumreports-manualsmoke-testcases/target/xml2selenium/
• Слева в отчётах доступны ссылки на исходный код
тест кейсов и тестов

5
Почему мы работаем над этим
• В большом количестве проектов, где мы участвовали, как java
разработчики, мы наталкивались на схожие проблемы
– Управление Web UI Selenium тестами со стороны менеджмента
(Индия)
– Создание поддерживаемых, читаемых Web UI тестов (Голландия)
– Рефакторинг, ООП, повторное использование Selenium тестов
(Германия, Беларусь)
– Взаимодействие между разработчиками и автоматизаторами (Россия)

• Более подробное обоснование
http://jazzteam.org/ru/products/xml2selenium-test-automationplatform/why-xml-dsl-platform-required
• Связки Selenium + Concordion, Fitnesse = по прежнему нужно
создавать fixtures

6
Как всё устроено
• Автоматизаторы создают тесты на XML, разбивая их по папкам
и файлам
– Запускают их локально через IDE или через Maven, проверяют, всё ли
работает

• XML > Version Control System > Jenkins Job through trigger >
XML2Selenium reports in build artifacts

7
Доступ к отчётам из Jenkins

8
Business report: теги, фильтры, папки

9
Business report: основная таблица

10
BDD report: для менеджеров

11
BDD report: bdd плагин

12
BDD report: различные комбинации

13
Репорты: техническая информация

14
BA-User-Friendly интеграция с Junit

15
BA-User-Friendly интеграция с Junit

16
Примеры XML
Импорты, теги, наследование, считать значение в переменную, JVM параметры

17
Примеры XML
Groovy scripting, Java Script, общий контекст между XML и JS

18
Примеры XML
Фреймы, цикл, селекторы

19
Примеры XML
Before, After, самотестирование

20
Примеры XML
Asserts

21
Примеры XML
Работа с фреймами и наследованием

22
Почему платформа?
• Название XML2Selenium говорит только о Web
UI/Mobile составляющей возможностей
платформы
• Нет зависимости от jenkins, junit, можно
создавать свои раннеры в разных runtimes (cloud,
Servlets, метод main, OSGI)
• Нет зависимости от Selenium, различные наборы
плагинов реализуют различные функции
23
Бизнес-преимущества
• Низкая стоимость
создания тестов
• Интеграция с
документацией
(@since, @version,
@ready)
• Встроенные
возможности
управления

• Тесты получаются
поддерживаемыми и
читаемыми
• Повышается reusability
• Инклюды и плагины
позволяют
генерализировать и
накапливать опыт
• Встроенные BDD/DDT
24
XML DSL
• Все теги – плагины
(точки расширения,
события)
• Все репорты –
плагины
• Зависимость от junit,
web driver - плагин

25
XML DSL
• Для всех наборов
плагинов (DB, Web UI,
SOA) поддерживаются
(основа языка):
– Переменные
– Контексты переменных
– Параметризированные
методы (фреймы)
– Импорты
– Groovy скриптинг в
атрибутах и в отдельном
теге
– Возможность делать assert

– Теги iterate, if, resource
– Теги before, after
– Возможность наследования и
переопределения фреймов и
любых элементов с атрибутом ref
– Самотестирование (expected)
– Интеграция с документацией
(тегирование, иерархичное
разбиение на папки и файлы,
атрибуты @since, тег bdd)
– 2 стандартных отчёта по
умолчанию с отдельными
артифактами для каждого тега
– Система логгирования, для
каждого теста и тест кейса – свой
лог

26
Web UI
• Набор тегов/плагинов для
всех базовых элементов
• Тег webelement
поддерживает различные
действия и локаторы
– Id, subId, Xpath, CSSSelector,
tagName
– Проверить, что элемент
существует
– Считать атрибут или текст
– Осуществить действие с
элементом (нажать и т.д.)

• Работа с JavaScript
• Screenshot/Snapshot/Vi
deo
• По сути – обёртка над
возможностями
Selenium/WebDriver
– Работа с мышью
– Асинхронный JS
– WaitFor

27
Возможности отчётов
• Вся информация о всех
тестах в одном месте
• Фильтрация, тегирование
• Доступ к описаниям,
исходному коду
• Доступ ко всем артифактам –
логи, скриншоты и т.д.
• Возможность получить
понятную пользователю
информацию об исключении
• Навигирование по иерархии
тестов

• Отчёт в формате BDD
• По наведении на
конкретный элемент
дерева – виден исходный
код этого участка
• Можно использовать
русский язык
• Нет непонятных
исключений, названий
классов, методов
• Выделение цветом

28
Интеграция с JUnit

29
Самотестирование, DDT

30
Самотестирование, DDT

31
Как это сделано?
• Процессы: git, gerrit,
jenkins, maven, java,
agile/scrum, DDT, TDD
• Плагинность: reflexion,
classpath, classloaders
• Репорт: XML + XSLT =
static HTML (в данный
момент)

• DSL: XSD, JAXB
• Plugins: smth. like
eclipse plugins
• Plugins repos: nexus
• Тестирование: unit
tests,
автотестирование,
тестирование собой
своих же отчётов
32
Другие фишки
• Все плагины и инклюды
– maven проекты =>
могут быть помещены в
nexus репозитории –
приватные и публичные
• Thread saved
• Плагины автоматически
обнаруживаются в
classpath

• Загрузка данных из
ресурсов, хранилищ
данных, помещение
по ключам в контекст
теста
• Разделение логов по
тест кейсам, тестам
• Public API, Java Docs

33
Планы на будущее
• Cloud solution
– Jenkins
– Web UI SAAS
– ? Интеграция с
http://www.saucelabs.com

• XML2Selenium IDE
– Only clicks no XML

• Развитие репортов
– Статистика по билдам
– Срезы за месяц, год

• Другие наборы плагинов
– DBs
– Mobile

• Public Nexus репозиторий
для инклюдов и плагинов
• Open Source
• Маркетинг и бизнесразвитие
– Xml2selenium.com
– Xml2selenium.net

34
Дополнительная информация
• http://jazzteam.org/ru/products/xml2selenium-testautomation-platform
• http://jazzteam.org/ru/products/xml2selenium-testautomation-platform/why-xml-dsl-platform-required
• Доклад на конференции Solit-2013 Создание продукта
для автоматизации тестировании. Что нужно
учитывать, чтобы создать технологическую
платформу. Разбор конкретного примера – продукта
XML2Selenium
• Доклад на конференции Solit-2013 Эволюция
тестирования на Selenium

35
Спасибо за внимание!
• zmicer@jazzteam.org
• http://www.Zmicer.com
• Skype: dzmitry_harachka

36

Weitere ähnliche Inhalte

Was ist angesagt?

«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел СташевскийDevDay
 
SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017Adam Sandman
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Positive Hack Days
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioSQALab
 
Особенности тестирования веб приложение
Особенности тестирования веб приложениеОсобенности тестирования веб приложение
Особенности тестирования веб приложениеDressTester
 
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...COMAQA.BY
 
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).DressTester
 
Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Technopark
 
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...QA Club Minsk
 
Фреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силамиФреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силамиSQALab
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?SQALab
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest
 
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...SQALab
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Dmitry Lobasev
 
Инструменты для тестирования UI
Инструменты для тестирования UIИнструменты для тестирования UI
Инструменты для тестирования UIISsoft
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQAFest
 
Организация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевPositive Hack Days
 

Was ist angesagt? (20)

«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test Studio
 
Особенности тестирования веб приложение
Особенности тестирования веб приложениеОсобенности тестирования веб приложение
Особенности тестирования веб приложение
 
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
 
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
 
Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4
 
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
 
Фреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силамиФреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силами
 
Jira as a test management tool
Jira as a test management toolJira as a test management tool
Jira as a test management tool
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
 
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)
 
Инструменты для тестирования UI
Инструменты для тестирования UIИнструменты для тестирования UI
Инструменты для тестирования UI
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
 
Организация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей Соловьев
 
Selenium Begins
Selenium BeginsSelenium Begins
Selenium Begins
 

Ähnlich wie Расширяемая платформа для создания и управления автоматизированными тестами на основе технологий Java и Selenium

Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовSQALab
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1Technopark
 
Sqadays 8-barancev
Sqadays 8-barancevSqadays 8-barancev
Sqadays 8-barancevAlexei Lupan
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Badoo Development
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flashguestb0af15
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?sqadays8
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetestingLiloSEA
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 
Meet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakAmasty
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 

Ähnlich wie Расширяемая платформа для создания и управления автоматизированными тестами на основе технологий Java и Selenium (20)

Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1
 
Sqadays 8-barancev
Sqadays 8-barancevSqadays 8-barancev
Sqadays 8-barancev
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Java 9 - кратко о новом
Java 9 -  кратко о новомJava 9 -  кратко о новом
Java 9 - кратко о новом
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
Meet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis Bosak
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 

Расширяемая платформа для создания и управления автоматизированными тестами на основе технологий Java и Selenium

  • 1. Горячко Дмитрий Расширяемая платформа для создания и управления автоматизированными тестами на основе технологии Java.
  • 2. Прежде чем начать Продукт создаётся java разработчиками и архитекторами с использованием опыта нескольких Java автоматизаторов со стажем, адресуя задачи, которые возникали перед компанией на многих реальных проектах О себе: профессиональный Java разработчик с 10 летним стажем, докладчик различных беларуских конференций на тему инженерии ПО, основатель и руководитель Agile Java Development компании JazzTeam, имею хороший опыт в автоматизации тестирования (принимал участие в работе над платформой по автоматизации тестирования одной из успешных SOA платформ http://sopera.com и др.), являюсь организатором "Первой в Беларуси Региональной IT Конференции Solit" http://solit.iSoligorsk.org, а также коммитером Eclipse Open Source сообщества. 2
  • 3. Эта презентация • Рассказ о платформе, мотивации и возможностях для конечного пользователя • Рассказ об особенностях разработки платформы, что может вдохновить Вас на использование наших идей Ваш feedback очень важен  3
  • 4. Как это выглядит? • Тесты пишутся на XML • Пользователь работает с отчётами 4
  • 5. Demo доступ • Jenkins http://dev.jazzteam.org:8080 • Username x2sdemo, password x2sdemo • Выберите последний билд и перейдите по ссылке “Build Artifacts”, или сразу используйте прямую ссылку для доступа к отчётам http://dev.jazzteam.org:8080/job/xml2selenium-reportssmoketestcases_master/57/artifact/xml2seleniumreports-manualsmoke-testcases/target/xml2selenium/ • Слева в отчётах доступны ссылки на исходный код тест кейсов и тестов 5
  • 6. Почему мы работаем над этим • В большом количестве проектов, где мы участвовали, как java разработчики, мы наталкивались на схожие проблемы – Управление Web UI Selenium тестами со стороны менеджмента (Индия) – Создание поддерживаемых, читаемых Web UI тестов (Голландия) – Рефакторинг, ООП, повторное использование Selenium тестов (Германия, Беларусь) – Взаимодействие между разработчиками и автоматизаторами (Россия) • Более подробное обоснование http://jazzteam.org/ru/products/xml2selenium-test-automationplatform/why-xml-dsl-platform-required • Связки Selenium + Concordion, Fitnesse = по прежнему нужно создавать fixtures 6
  • 7. Как всё устроено • Автоматизаторы создают тесты на XML, разбивая их по папкам и файлам – Запускают их локально через IDE или через Maven, проверяют, всё ли работает • XML > Version Control System > Jenkins Job through trigger > XML2Selenium reports in build artifacts 7
  • 9. Business report: теги, фильтры, папки 9
  • 11. BDD report: для менеджеров 11
  • 12. BDD report: bdd плагин 12
  • 13. BDD report: различные комбинации 13
  • 17. Примеры XML Импорты, теги, наследование, считать значение в переменную, JVM параметры 17
  • 18. Примеры XML Groovy scripting, Java Script, общий контекст между XML и JS 18
  • 20. Примеры XML Before, After, самотестирование 20
  • 22. Примеры XML Работа с фреймами и наследованием 22
  • 23. Почему платформа? • Название XML2Selenium говорит только о Web UI/Mobile составляющей возможностей платформы • Нет зависимости от jenkins, junit, можно создавать свои раннеры в разных runtimes (cloud, Servlets, метод main, OSGI) • Нет зависимости от Selenium, различные наборы плагинов реализуют различные функции 23
  • 24. Бизнес-преимущества • Низкая стоимость создания тестов • Интеграция с документацией (@since, @version, @ready) • Встроенные возможности управления • Тесты получаются поддерживаемыми и читаемыми • Повышается reusability • Инклюды и плагины позволяют генерализировать и накапливать опыт • Встроенные BDD/DDT 24
  • 25. XML DSL • Все теги – плагины (точки расширения, события) • Все репорты – плагины • Зависимость от junit, web driver - плагин 25
  • 26. XML DSL • Для всех наборов плагинов (DB, Web UI, SOA) поддерживаются (основа языка): – Переменные – Контексты переменных – Параметризированные методы (фреймы) – Импорты – Groovy скриптинг в атрибутах и в отдельном теге – Возможность делать assert – Теги iterate, if, resource – Теги before, after – Возможность наследования и переопределения фреймов и любых элементов с атрибутом ref – Самотестирование (expected) – Интеграция с документацией (тегирование, иерархичное разбиение на папки и файлы, атрибуты @since, тег bdd) – 2 стандартных отчёта по умолчанию с отдельными артифактами для каждого тега – Система логгирования, для каждого теста и тест кейса – свой лог 26
  • 27. Web UI • Набор тегов/плагинов для всех базовых элементов • Тег webelement поддерживает различные действия и локаторы – Id, subId, Xpath, CSSSelector, tagName – Проверить, что элемент существует – Считать атрибут или текст – Осуществить действие с элементом (нажать и т.д.) • Работа с JavaScript • Screenshot/Snapshot/Vi deo • По сути – обёртка над возможностями Selenium/WebDriver – Работа с мышью – Асинхронный JS – WaitFor 27
  • 28. Возможности отчётов • Вся информация о всех тестах в одном месте • Фильтрация, тегирование • Доступ к описаниям, исходному коду • Доступ ко всем артифактам – логи, скриншоты и т.д. • Возможность получить понятную пользователю информацию об исключении • Навигирование по иерархии тестов • Отчёт в формате BDD • По наведении на конкретный элемент дерева – виден исходный код этого участка • Можно использовать русский язык • Нет непонятных исключений, названий классов, методов • Выделение цветом 28
  • 32. Как это сделано? • Процессы: git, gerrit, jenkins, maven, java, agile/scrum, DDT, TDD • Плагинность: reflexion, classpath, classloaders • Репорт: XML + XSLT = static HTML (в данный момент) • DSL: XSD, JAXB • Plugins: smth. like eclipse plugins • Plugins repos: nexus • Тестирование: unit tests, автотестирование, тестирование собой своих же отчётов 32
  • 33. Другие фишки • Все плагины и инклюды – maven проекты => могут быть помещены в nexus репозитории – приватные и публичные • Thread saved • Плагины автоматически обнаруживаются в classpath • Загрузка данных из ресурсов, хранилищ данных, помещение по ключам в контекст теста • Разделение логов по тест кейсам, тестам • Public API, Java Docs 33
  • 34. Планы на будущее • Cloud solution – Jenkins – Web UI SAAS – ? Интеграция с http://www.saucelabs.com • XML2Selenium IDE – Only clicks no XML • Развитие репортов – Статистика по билдам – Срезы за месяц, год • Другие наборы плагинов – DBs – Mobile • Public Nexus репозиторий для инклюдов и плагинов • Open Source • Маркетинг и бизнесразвитие – Xml2selenium.com – Xml2selenium.net 34
  • 35. Дополнительная информация • http://jazzteam.org/ru/products/xml2selenium-testautomation-platform • http://jazzteam.org/ru/products/xml2selenium-testautomation-platform/why-xml-dsl-platform-required • Доклад на конференции Solit-2013 Создание продукта для автоматизации тестировании. Что нужно учитывать, чтобы создать технологическую платформу. Разбор конкретного примера – продукта XML2Selenium • Доклад на конференции Solit-2013 Эволюция тестирования на Selenium 35
  • 36. Спасибо за внимание! • zmicer@jazzteam.org • http://www.Zmicer.com • Skype: dzmitry_harachka 36