Selen framework




                      Хаёров Александр
                  hayorov@gmail.com   @hayorov
Что такое Selenium?
                   Black box testing
          WebDriver Функциональные тесты
   Исполняет мечты написан на java   нужен каждому

КРУТАЯ ШТУКА Автоматизирует
    Бывает IDE
        Работает везде             тестирование
у кого-то все еще RC ))   Работает с браузерами
                            Разговаривает на многих языках

 Связана с WEB             Многообразие bindings
        довольно новый инструмент open source
                    Уже популярный
Что такое Selenium?
                     NO Selenium IDE
                     NO Selenium RC
                     ONLY WebDriver


В случае появления
скуки смотрим
только на эту
экранную область
                      --->
Что автоматизировать?

- регрессионное тестирование
- функциональное тестирование
- приемочное тестирование
- тестирование совместимости
PHP + Selenium


Оно работает!
Selenium и другие языки


 Java        Perl
     C#   Pyton
          Ruby
PHP bindings for WebDriver

  1.    designed to work with PHPUnit
        built-ins for running tests at Sauce Labs


       2.       Yii framework extension
                allows creating functional webdriver tests


  3.        This is Facebook
            This is Facebook x2
«из готового»: Bromine
                                         + management система
                                            проекты, требования, дефекты
                                         + Sauce Labs интеграция
                                         + управление запуском тестов

                                         - Selenium RC
                                         - нет многопоточности ?
                                         - плохая реализация тестов
                                         - весь сырой
написан на PHP (PHPCake frm) + MySQL
! есть поднятая виртуалка для новичков
«из готового»: Codeception
                         + интересная реализация тестов
                         + универсальный
                         + документирован
                         + симпатичный дизайн сайта

                         - Selenium RC
                         - нет многопоточности ?
                         - Selenium как один из модулей

  написан на PHP
Selen
написан на PHP + sqlite3

использует php-webdriver-binding

распространяется под Apache License


           github.com/hayorov/Selen
Selen: архитектура
                                                      Selenium 2
                                                                     Nodes
                                                       Grid Hub

                                                       webdriver-bindings


                   daemon           storage      DB    API module
    planner
                   processor
                                    selenCore           CI module


                     manager
                                3 part systems   Test jobs manager
   Selen Manager      basics
                               communication
                                   module             reports
Selen
структура тест комплекта




 + все довольно просто и структурировано
Selen: тесты
002.test
                                                          + сценарии и конфигурации
            Базовая секция
                                                            тестов в текстовом виде
                 Секция входных данных
                                                          + конфигурация в INI формате

                Доступные группы элементов


                             Соотношение элемент-группа


                     Описание свойств элементов
Selen: тесты
Уникальный номер теста
                                             Название теста



         Соответствующий тестовый сценарий


                                                              Количественный
                                                              критерий успеха




            В основной секции определены базовые параметры и значения
                      переменных требуемые для запуска теста.
Подробнее о конфигурации


                  Имя параметра = значение
                                                  Уникальный номер теста




             Параметр может принимать значение случайным образом из списка, значения
             которого разделены символом «^^»




Допустимые варианты указаны в виде комментариев
                                                   Значением может быть и специальная функция, со
                                                   своими входными параметрами. В этом примере эта
                                                   функция возвращает случайный сгенерированный домен
                                                   в зоне RU (2 уровня)



                          Секция содержит массив разнообразных входных данных
Тестовый сценарий

            В сценарии могут использоваться паттерны –часто повторяющие действия
            вынесенные в отдельную часть




                Важной составляющей сценария должна являться хорошая документированность




Так было раньше, буквально месяц назад…
Тестовый сценарий


                    мое видение page orientated подхода




             Выполняемые действия понятны по методам




Так было раньше, буквально месяц назад…
Selen: хвалимся
+ открытый
+ на распространенном языке
+ многопоточность
+ Webdriver && Selenium Grid
+ нет xUnit и прочих тяжёлых монстров
+ sqlite3 или mysql

Это будет :
Web UI
разные форматы выгрузки отчетов
сопряжение с CI (Jenkins ?)
Что такое Selenium?



Попробуем что-нибудь
 запустить из тестов…
вопросы и … спасибо




                         Хаёров Александр
                  hayorov@gmail.com   @hayorov

Selen framework

  • 1.
    Selen framework Хаёров Александр hayorov@gmail.com @hayorov
  • 2.
    Что такое Selenium? Black box testing WebDriver Функциональные тесты Исполняет мечты написан на java нужен каждому КРУТАЯ ШТУКА Автоматизирует Бывает IDE Работает везде тестирование у кого-то все еще RC )) Работает с браузерами Разговаривает на многих языках Связана с WEB Многообразие bindings довольно новый инструмент open source Уже популярный
  • 3.
    Что такое Selenium? NO Selenium IDE NO Selenium RC ONLY WebDriver В случае появления скуки смотрим только на эту экранную область --->
  • 4.
    Что автоматизировать? - регрессионноетестирование - функциональное тестирование - приемочное тестирование - тестирование совместимости
  • 5.
    PHP + Selenium Оноработает!
  • 6.
    Selenium и другиеязыки Java Perl C# Pyton Ruby
  • 7.
    PHP bindings forWebDriver 1. designed to work with PHPUnit built-ins for running tests at Sauce Labs 2. Yii framework extension allows creating functional webdriver tests 3. This is Facebook This is Facebook x2
  • 8.
    «из готового»: Bromine + management система проекты, требования, дефекты + Sauce Labs интеграция + управление запуском тестов - Selenium RC - нет многопоточности ? - плохая реализация тестов - весь сырой написан на PHP (PHPCake frm) + MySQL ! есть поднятая виртуалка для новичков
  • 9.
    «из готового»: Codeception + интересная реализация тестов + универсальный + документирован + симпатичный дизайн сайта - Selenium RC - нет многопоточности ? - Selenium как один из модулей написан на PHP
  • 10.
    Selen написан на PHP+ sqlite3 использует php-webdriver-binding распространяется под Apache License github.com/hayorov/Selen
  • 11.
    Selen: архитектура Selenium 2 Nodes Grid Hub webdriver-bindings daemon storage DB API module planner processor selenCore CI module manager 3 part systems Test jobs manager Selen Manager basics communication module reports
  • 12.
    Selen структура тест комплекта + все довольно просто и структурировано
  • 13.
    Selen: тесты 002.test + сценарии и конфигурации Базовая секция тестов в текстовом виде Секция входных данных + конфигурация в INI формате Доступные группы элементов Соотношение элемент-группа Описание свойств элементов
  • 14.
    Selen: тесты Уникальный номертеста Название теста Соответствующий тестовый сценарий Количественный критерий успеха В основной секции определены базовые параметры и значения переменных требуемые для запуска теста.
  • 15.
    Подробнее о конфигурации Имя параметра = значение Уникальный номер теста Параметр может принимать значение случайным образом из списка, значения которого разделены символом «^^» Допустимые варианты указаны в виде комментариев Значением может быть и специальная функция, со своими входными параметрами. В этом примере эта функция возвращает случайный сгенерированный домен в зоне RU (2 уровня) Секция содержит массив разнообразных входных данных
  • 16.
    Тестовый сценарий В сценарии могут использоваться паттерны –часто повторяющие действия вынесенные в отдельную часть Важной составляющей сценария должна являться хорошая документированность Так было раньше, буквально месяц назад…
  • 17.
    Тестовый сценарий мое видение page orientated подхода Выполняемые действия понятны по методам Так было раньше, буквально месяц назад…
  • 18.
    Selen: хвалимся + открытый +на распространенном языке + многопоточность + Webdriver && Selenium Grid + нет xUnit и прочих тяжёлых монстров + sqlite3 или mysql Это будет : Web UI разные форматы выгрузки отчетов сопряжение с CI (Jenkins ?)
  • 19.
    Что такое Selenium? Попробуемчто-нибудь запустить из тестов…
  • 20.
    вопросы и …спасибо Хаёров Александр hayorov@gmail.com @hayorov