Расширяемая платформа для создания и управления...

36
Расширяемая платформа для создания и управления автоматизированными тестами на основе технологии Java. Горячко Дмитрий

Upload: jazzteam

Post on 27-Dec-2014

335 views

Category:

Technology


2 download

DESCRIPTION

Продукт XML2Selenium - это расширяемая, плагинная платформа для создания и управления автоматизированными тестами на основе технологии Java. XML2Selenium имеет интеграцию с JUnit, работает поверх Selenium (это изменяемо). XML2Selenim позволяет создавать автоматизированные тесты в простом и понятном обычному (без навыков программирования) QA инженеру формате. XML2Selenium позволяет также управлять всеми стадиями работы с автоматизированными тестами, начиная от стадии создания и заканчивая управлением тестами. Главными конкурентными преимуществами являются - низкая стоимость вхождения. Начинающие автоматизаторы, и даже QA инженеры без навыков программирования создают качественные тесты, а значит легко поддерживаемые, легко изменяемые, с использованием DDT (Data Driven Testing) подходов, что увеличивает повторно-используемость тестов - встроенные возможности структуризации тестов по папкам и файлам, а также по тегам, что позволяет качественно отобразить документацию на тесты. Внедряя эту платформу, вы автоматически улучшаете свои процессы управления тестами - XML2Selenium - это плагинная, расширяемая платформа, позволяющая кастомизировать процессы под ваши нужды, создать новые плагины, добавить интеграцию с нужными системами, и многое другое - все повторно-используемые части (инклюды, плагины) могут помещаться в репозитории, откуда ими могут пользоваться QA инженеры с других проектов компании, тем самым распространяется опыт и знания в области автоматизации - XML2Selenium имеет широкий спектр полезных свойств в области автоматизации, таких как поддержка создания видео, снепшотов и скриншотов страниц, Groovy и JS скриптинга, поддержки объектно-ориентированного программирования на XML и многих других Традиционно многие компании не инвестируют много в QA инженеров, при этом сложность продуктов и количество Use Cases растёт, и компании утыкаются в барьер, когда архитектура тестов становится сравнительно такого же уровня, как и архитектура приложения. Это же касается и автоматизации тестирования. Ключевыми проблемами становятся: - вопросы поддержки и тестирования многих инсталяций продукта на стороне заказчика - вопросы тестирования нескольких версий (бренчей) одного и того же продукта - повторн

TRANSCRIPT

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

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

Горячко Дмитрий

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

2

Прежде чем начатьПродукт создаётся java разработчиками и архитекторами с использованием

опыта нескольких Java автоматизаторов со стажем, адресуя задачи, которые возникали перед компанией на многих реальных проектах

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

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

3

Эта презентация• Рассказ о платформе, мотивации и возможностях

для конечного пользователя• Рассказ об особенностях разработки платформы,

что может вдохновить Вас на использование наших идей

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

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

4

Как это выглядит?• Тесты пишутся на XML • Пользователь работает

с отчётами

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

5

Demo доступ• Jenkins http://dev.jazzteam.org:8080• Username x2sdemo, password x2sdemo• Выберите последний билд и перейдите по ссылке

“Build Artifacts”, или сразу используйте прямую ссылку для доступа к отчётам http://dev.jazzteam.org:8080/job/xml2selenium-reports-smoketestcases_master/57/artifact/xml2selenium-reports-manualsmoke-testcases/target/xml2selenium/

• Слева в отчётах доступны ссылки на исходный код тест кейсов и тестов

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

6

Почему мы работаем над этим• В большом количестве проектов, где мы участвовали, как java

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

Беларусь)– Взаимодействие между разработчиками и автоматизаторами (Россия)

• Более подробное обоснование http://jazzteam.org/ru/products/xml2selenium-test-automation-platform/why-xml-dsl-platform-required

• Связки Selenium + Concordion, Fitnesse = по прежнему нужно создавать fixtures

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

7

Как всё устроено• Автоматизаторы создают тесты на XML, разбивая их по папкам и

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

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

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

8

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

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

9

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

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

10

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

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

11

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

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

12

BDD report: bdd плагин

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

13

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

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

14

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

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

15

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

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

16

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

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

17

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

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

18

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

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

19

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

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

20

Примеры XMLBefore, After, самотестирование

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

21

Примеры XMLAsserts

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

22

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

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

23

• Название XML2Selenium говорит только о Web UI/Mobile составляющей возможностей платформы

• Нет зависимости от jenkins, junit, можно создавать свои раннеры в разных runtimes (cloud, Servlets, метод main, OSGI)

• Нет зависимости от Selenium, различные наборы плагинов реализуют различные функции

Почему платформа?

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

24

• Низкая стоимость создания тестов

• Интеграция с документацией (@since, @version, @ready)

• Встроенные возможности управления

• Тесты получаются поддерживаемыми и читаемыми

• Повышается reusability• Инклюды и плагины

позволяют генерализировать и накапливать опыт

• Встроенные BDD/DDT

Бизнес-преимущества

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

25

• Все теги – плагины (точки расширения, события)

• Все репорты – плагины• Зависимость от junit,

web driver - плагин

XML DSL

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

26

• Для всех наборов плагинов (DB, Web UI, SOA) поддерживаются (основа языка):– Переменные– Контексты переменных– Параметризированные методы

(фреймы)– Импорты– Groovy скриптинг в атрибутах и

в отдельном теге– Возможность делать assert

– Теги iterate, if, resource– Теги before, after– Возможность наследования и

переопределения фреймов и любых элементов с атрибутом ref

– Самотестирование (expected)– Интеграция с документацией

(тегирование, иерархичное разбиение на папки и файлы, атрибуты @since, тег bdd)

– 2 стандартных отчёта по умолчанию с отдельными артифактами для каждого тега

– Система логгирования, для каждого теста и тест кейса – свой лог

XML DSL

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

27

• Набор тегов/плагинов для всех базовых элементов

• Тег webelement поддерживает различные действия и локаторы– Id, subId, Xpath, CSSSelector,

tagName– Проверить, что элемент

существует– Считать атрибут или текст– Осуществить действие с

элементом (нажать и т.д.)

• Работа с JavaScript• Screenshot/Snapshot/

Video• По сути – обёртка над

возможностями Selenium/WebDriver– Работа с мышью– Асинхронный JS– WaitFor

Web UI

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

28

• Вся информация о всех тестах в одном месте

• Фильтрация, тегирование• Доступ к описаниям, исходному

коду• Доступ ко всем артифактам –

логи, скриншоты и т.д.• Возможность получить понятную

пользователю информацию об исключении

• Навигирование по иерархии тестов

• Отчёт в формате BDD• По наведении на конкретный

элемент дерева – виден исходный код этого участка

• Можно использовать русский язык

• Нет непонятных исключений, названий классов, методов

• Выделение цветом

Возможности отчётов

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

29

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

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

30

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

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

31

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

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

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, автотестирование, тестирование собой своих же отчётов

Как это сделано?

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

33

• Все плагины и инклюды – maven проекты => могут быть помещены в nexus репозитории – приватные и публичные

• Thread saved• Плагины автоматически

обнаруживаются в classpath

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

• Разделение логов по тест кейсам, тестам

• Public API, Java Docs

Другие фишки

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

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

Планы на будущее

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

35

• http://jazzteam.org/ru/products/xml2selenium-test-automation-platform

• http://jazzteam.org/ru/products/xml2selenium-test-automation-platform/why-xml-dsl-platform-required

• Доклад на конференции Solit-2013 Создание продукта для автоматизации тестировании. Что нужно учитывать, чтобы создать технологическую платформу. Разбор конкретного примера – продукта XML2Selenium

• Доклад на конференции Solit-2013 Эволюция тестирования на Selenium

Дополнительная информация

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

36

[email protected]• http://www.Zmicer.com• Skype: dzmitry_harachka

Спасибо за внимание!