Test framework grid_ant_testng

2,004 views
1,940 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,004
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Сегодня я расскажу вам о сборке для автоматизации тестирования TestNG + Selenium Grid + Ant Начнем мы с теор части любого новичка в тестировании Выделим в тест кейсе сущности Определим пред\\пост состояния тестового случая Рассмотрим один из вариантов выполнения тестового сценария Увидим как расширить стандартные возможности Селениум
  • Базовый набор прост и самое главное , что расширяем
  • Selenium Grid – основная идея которого - это запуск параллельных тестов, содержит в себе возможность организации тестового окружения , а так же класс , который имплементирует Selenium interface Управление тестовым окружением проводиться с помощью Ant , который занимается сборкой и запуском любого приложения написанного на Java TestNG – Фреймворк для тестирования Как собрать эту схема , как установить и сконфигурировать ее - все это можно найти на сайте selenium grid Разработка тестов, их запуск и управление осуществляться в IDE . Я использую Eclipse с плагинами testng и Ant
  • Давайте немного подробнее остановимся на Testng и Ant Это фреймворк для тестирования основанный на популярности Junit и Nunit Объявление метода как тест, метод который запускается перед и после сьюта, класса или теста Если один из тестов провалился, то оставшиеся в сценарии тесты пропускаются. Тесты можно объединять в группы, запуская разные группы тестов отдельно или совместно. Есть возможность формировать вложенные группы Можно использовать как параметр переменную любого типа, это очень удобно когда кроме float или string нужно использовать как параметров объекты собственных типов На сайте можно найти более полный список функциональности
  • Универсальный сборщик java приложений Самое важное свое значение в этой связке ant участвует в развертывании тестового окружения Собственно он запускает hub и remote controls Кроме этого можно использовать его для сборки и запуска тестов и хранения параметров запуска
  • Но давайте вернемся к «истокам» и рассмотрим небольшой пример тестового случая
  • Правильно?
  • Наверное из-за этого я ненавижу писать тест кейсы …. шагов может быть очень много
  • Знакомая ситуация? Иногда, что бы вручную пройти все кейсы, нужно обязательно выполнить все шаги, выделяя при этом только один ожидаемый результат для каждого из случаев Однако давайте познакомимся с нашей мадам поближе …
  • Очевидно , что наша мадам - главный актер в этой истории У нее есть деньги, которыми она в автобусе заплатила за билет
  • По большому счету информацию о мадам можно хранить где угодно .. Но лучше всего это делать в том же самом виде , в котором она сохраняется в вашем приложении. Просто для того, что бы поддерживать единый способ выборки данных. В нашем случае есть некий родительский класс данных , у которого создается экземпляр класса соединения с базой данных, а потом используется в классах сущностей для управления данными. Из нашего примера можно выделить сущность Мадам, которая будет расширять родительский класс данных.
  • Не нужно путать с тестовыми данными … Не забывайте , что мадам на остановке и в автобусе - это две разные женщины. А соответственно два разных объекта, с различным набором свойств и методов
  • Итак, мы знаем кто такая мадам .. мы ее инициализировали После инициализации тестовых данных открытие браузера – это второй шаг пред состояния.
  • Но в жизни не все так просто Пред\\пост состояния различны для разных актеров .. Можно разделить предсостояния на уровни, в зависимости от того , что тестируется Самое простой пример разбиение предсостояния на уровни – это перенести инициализацию первичных тестовых данных и запуск браузера в родительский класс , а логику «заходим в автобус, открываем сумочку, достаем кошелек, закрываем и тд» вынести в дочерний класс и от него наследовать классы с тестовыми сценариями. Таким образом автоматизация каждого нового кейса становиться достаточно простой
  • Действительно , почему бы мадам не делать что либо параллельно ….
  • А вот и новый сценарий! С теми же актерами , тем же «автобусом», с теми же пред и пост состояниями
  • Кто использует xpath ?
  • Ну почему бы не переписать методы селениум под тестирование конкретного продукта
  • После перезагрузки всех методов интерфейса селениум получаем класс с собственными методами, который можно использовать при инициализации обьекта браузера В нем используется статический обьект Session() тип которого так же selenium , а так же все его методы
  • Итак , давайте подытожим , что нужно для автоматизации тестового сценария Определяем актеров и используемые в тесте сущности Выделяем пред / пост состояние Разбиваем сценарии на тесты из расчета один тест - одна проверка Пишем тесты Включаем тесты в testng.xml
  • Test framework grid_ant_testng

    1. 1. Test Framework on Java
    2. 2. <ul><li>Вкл и Тарааам !.. </li></ul>
    3. 3. <ul><li>Что в коробке? </li></ul><ul><li>Тестовый случай </li></ul><ul><li>Как познать DAO ? </li></ul><ul><li>Пред / пост состояния . Page Object. </li></ul><ul><li>Последовательные тесты и параллельные сценарии </li></ul><ul><li>Расширяем Selenium </li></ul>
    4. 6. <ul><li>Аннотации методов </li></ul><ul><li>Зависимые методы </li></ul><ul><li>Хранение тестов в xml формате </li></ul><ul><li>Группы тестов </li></ul><ul><li>HTML отчеты </li></ul><ul><li>Параметризация тестовыми данными </li></ul><ul><li>Интеграция с IDE </li></ul><ul><li>Большое сообщество </li></ul>
    5. 7. <ul><li>Компилирует и запускает тесты </li></ul><ul><li>Хранение параметров запуска тестов </li></ul><ul><li>Интеграция с IDE </li></ul>
    6. 8. <ul><li>Тестовый случай </li></ul>
    7. 9. <ul><li>Шаг / Шаги выполнения </li></ul><ul><li>Ожидаемый результат </li></ul>
    8. 10. <ul><li>Но сколько же может быть шагов? </li></ul>
    9. 12. <ul><li>Как познать DAO? </li></ul>
    10. 14. <ul><li>до </li></ul>после
    11. 16. <ul><li>Когда сценариев много структура пред и пост состояния становится многоуровневой </li></ul>
    12. 17. <ul><li>Page Object! </li></ul><ul><li>Тарааам !.. </li></ul>
    13. 19. <ul><li>Наша мадам может параллельно с покупкой билета обсуждать сериалы </li></ul>
    14. 20. <ul><li>testng.xml </li></ul><ul><li>Тарааам !.. </li></ul>
    15. 22. <ul><li>Перегружаем все  </li></ul><ul><li>Расширяем </li></ul><ul><li>Добавляем </li></ul>
    16. 23. <ul><li>ClickAndWait! </li></ul><ul><li>Тарааам !.. </li></ul>
    17. 25. DAO Пред / пост состояния Сценарии Тесты testng.xml
    18. 26. <ul><li>Парам !.. </li></ul><ul><li>Вопросы! </li></ul>

    ×