ݺߣ

ݺߣShare a Scribd company logo
Test Framework on Java
Вкл и Тарааам !..
Что в коробке? Тестовый случай Как познать  DAO ? Пред / пост состояния . Page Object.  Последовательные тесты и параллельные сценарии Расширяем  Selenium
Аннотации методов Зависимые методы Хранение тестов в  xml  формате Группы тестов HTML  отчеты Параметризация тестовыми данными Интеграция с  IDE Большое сообщество
Компилирует и запускает тесты Хранение параметров запуска тестов Интеграция с  IDE
Тестовый случай
Шаг / Шаги выполнения Ожидаемый результат
Но сколько же может быть шагов?
Как познать  DAO?
до после
Когда сценариев много структура пред и пост состояния становится многоуровневой
Page Object! Тарааам !..
Наша мадам может параллельно с покупкой  билета  обсуждать сериалы
testng.xml Тарааам !..
Перегружаем все   Расширяем Добавляем
ClickAndWait! Тарааам !..
DAO Пред / пост состояния Сценарии Тесты testng.xml
Парам !.. Вопросы!
Ad

Recommended

А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?
SQALab
(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer
Yan Alexeenko
Be productive with Javascript in the end of 2016
Be productive with Javascript in the end of 2016
DataArt
Client Side Autotesting Flash
Client Side Autotesting Flash
guestb0af15
Full stack веб-разработка используя C# и WebAssembly
Full stack веб-разработка используя C# и WebAssembly
Andrei Amialchenia
Watson
Watson
Nikita Makarov
Selenium на практике и подводные камни
Selenium на практике и подводные камни
SQALab
грабли автоматизации тестирования мобильного веба с помощью Selenium 2
грабли автоматизации тестирования мобильного веба с помощью Selenium 2
Andrey Rebrov
SeleniumGrid + TestNG + Ant = Test Framework on Java
SeleniumGrid + TestNG + Ant = Test Framework on Java
Tim Sukhachev
Do you know what you are testing?
Do you know what you are testing?
Mikalai Alimenkou
Meeting #4. Frameworks.
Meeting #4. Frameworks.
Igor Khrol
Selenium, а давай подождем?
Selenium, а давай подождем?
SQALab
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
Эволюция автотестирования на Selenium
Эволюция автотестирования на Selenium
SQALab
Testing RIA with Selenium
Testing RIA with Selenium
Sergey Shvets
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
solit
Selenium Begins
Selenium Begins
Alexander Smelov
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
tfmailru

More Related Content

Similar to Test framework grid_ant_testng (10)

SeleniumGrid + TestNG + Ant = Test Framework on Java
SeleniumGrid + TestNG + Ant = Test Framework on Java
Tim Sukhachev
Do you know what you are testing?
Do you know what you are testing?
Mikalai Alimenkou
Meeting #4. Frameworks.
Meeting #4. Frameworks.
Igor Khrol
Selenium, а давай подождем?
Selenium, а давай подождем?
SQALab
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
Эволюция автотестирования на Selenium
Эволюция автотестирования на Selenium
SQALab
Testing RIA with Selenium
Testing RIA with Selenium
Sergey Shvets
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
solit
Selenium Begins
Selenium Begins
Alexander Smelov
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
tfmailru
SeleniumGrid + TestNG + Ant = Test Framework on Java
SeleniumGrid + TestNG + Ant = Test Framework on Java
Tim Sukhachev
Meeting #4. Frameworks.
Meeting #4. Frameworks.
Igor Khrol
Selenium, а давай подождем?
Selenium, а давай подождем?
SQALab
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
Эволюция автотестирования на Selenium
Эволюция автотестирования на Selenium
SQALab
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
solit
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
tfmailru

Test framework grid_ant_testng

Editor's Notes

  • #4: Сегодня я расскажу вам о сборке для автоматизации тестирования TestNG + Selenium Grid + Ant Начнем мы с теор части любого новичка в тестировании Выделим в тест кейсе сущности Определим пред\\пост состояния тестового случая Рассмотрим один из вариантов выполнения тестового сценария Увидим как расширить стандартные возможности Селениум
  • #5: Базовый набор прост и самое главное , что расширяем
  • #6: Selenium Grid – основная идея которого - это запуск параллельных тестов, содержит в себе возможность организации тестового окружения , а так же класс , который имплементирует Selenium interface Управление тестовым окружением проводиться с помощью Ant , который занимается сборкой и запуском любого приложения написанного на Java TestNG – Фреймворк для тестирования Как собрать эту схема , как установить и сконфигурировать ее - все это можно найти на сайте selenium grid Разработка тестов, их запуск и управление осуществляться в IDE . Я использую Eclipse с плагинами testng и Ant
  • #7: Давайте немного подробнее остановимся на Testng и Ant Это фреймворк для тестирования основанный на популярности Junit и Nunit Объявление метода как тест, метод который запускается перед и после сьюта, класса или теста Если один из тестов провалился, то оставшиеся в сценарии тесты пропускаются. Тесты можно объединять в группы, запуская разные группы тестов отдельно или совместно. Есть возможность формировать вложенные группы Можно использовать как параметр переменную любого типа, это очень удобно когда кроме float или string нужно использовать как параметров объекты собственных типов На сайте можно найти более полный список функциональности
  • #8: Универсальный сборщик java приложений Самое важное свое значение в этой связке ant участвует в развертывании тестового окружения Собственно он запускает hub и remote controls Кроме этого можно использовать его для сборки и запуска тестов и хранения параметров запуска
  • #9: Но давайте вернемся к «истокам» и рассмотрим небольшой пример тестового случая
  • #10: Правильно?
  • #11: Наверное из-за этого я ненавижу писать тест кейсы …. шагов может быть очень много
  • #12: Знакомая ситуация? Иногда, что бы вручную пройти все кейсы, нужно обязательно выполнить все шаги, выделяя при этом только один ожидаемый результат для каждого из случаев Однако давайте познакомимся с нашей мадам поближе …
  • #13: Очевидно , что наша мадам - главный актер в этой истории У нее есть деньги, которыми она в автобусе заплатила за билет
  • #14: По большому счету информацию о мадам можно хранить где угодно .. Но лучше всего это делать в том же самом виде , в котором она сохраняется в вашем приложении. Просто для того, что бы поддерживать единый способ выборки данных. В нашем случае есть некий родительский класс данных , у которого создается экземпляр класса соединения с базой данных, а потом используется в классах сущностей для управления данными. Из нашего примера можно выделить сущность Мадам, которая будет расширять родительский класс данных.
  • #15: Не нужно путать с тестовыми данными … Не забывайте , что мадам на остановке и в автобусе - это две разные женщины. А соответственно два разных объекта, с различным набором свойств и методов
  • #16: Итак, мы знаем кто такая мадам .. мы ее инициализировали После инициализации тестовых данных открытие браузера – это второй шаг пред состояния.
  • #17: Но в жизни не все так просто Пред\\пост состояния различны для разных актеров .. Можно разделить предсостояния на уровни, в зависимости от того , что тестируется Самое простой пример разбиение предсостояния на уровни – это перенести инициализацию первичных тестовых данных и запуск браузера в родительский класс , а логику «заходим в автобус, открываем сумочку, достаем кошелек, закрываем и тд» вынести в дочерний класс и от него наследовать классы с тестовыми сценариями. Таким образом автоматизация каждого нового кейса становиться достаточно простой
  • #19: Действительно , почему бы мадам не делать что либо параллельно ….
  • #20: А вот и новый сценарий! С теми же актерами , тем же «автобусом», с теми же пред и пост состояниями
  • #22: Кто использует xpath ?
  • #23: Ну почему бы не переписать методы селениум под тестирование конкретного продукта
  • #25: После перезагрузки всех методов интерфейса селениум получаем класс с собственными методами, который можно использовать при инициализации обьекта браузера В нем используется статический обьект Session() тип которого так же selenium , а так же все его методы
  • #26: Итак , давайте подытожим , что нужно для автоматизации тестового сценария Определяем актеров и используемые в тесте сущности Выделяем пред / пост состояние Разбиваем сценарии на тесты из расчета один тест - одна проверка Пишем тесты Включаем тесты в testng.xml