KEMBAR78
Как расширять Robot Framework под свои нужны с помощью Python? | PDF
Robot Framework
             быстрое расширение
             под свои потребности

                 Mykhailo Poliarush
                http://poliarush.com
                        2013

atdays.com
Михаил Поляруш

                @mpoliarush
                Автоматизатор,
                консультант и тренер
                Основатель atdays.com,
                automated-testing.info
                Фан-автоматизации
                тестирования ПО и Python
                Тренинги и консультации
atdays.com       #atdays @mpoliarush       2
Сейчас

     Почему Python?
     Что такое Robot Framework?
     Какие возможности RF?
     Зачем расширять RF?
     Как расширять RF c Python?
     Будем практиковаться на
     разных примерах

atdays.com       #atdays @mpoliarush   3
Цель




atdays.com   #atdays @mpoliarush   4
Автоматизация –
             программирование!




atdays.com        #atdays @mpoliarush   5
Программирование?!
                               Скорость
                               разработки
                               Гибкость решений
                               Экосистема
                               Решение
                               прикладных задач




atdays.com         #atdays @mpoliarush            6
Каждый инструмент и язык программирования надо
    рассматривать с разных точек зрения

    ВЗГЛЯД НА ВЕЩИ


atdays.com                 #atdays                   7
Почему Python?

              PHP                 Ruby    PYTHON




atdays.com          #atdays @mpoliarush        8
atdays.com   #atdays   9
Почему Robot Framework?




     А может нам подойдет что-то другое?
atdays.com        #atdays @mpoliarush      10
Почему Robot Framework?

              Гибкая архитектура

              Легко расширяется
              и интегрируется

              Python, Java, …

              Активно развивается и
              поддерживается

atdays.com   #atdays @mpoliarush      11
Robot Framework
     Фреймворк общего назначения
     Python
     Java
     Keyword-driven
     Data-driven
     BDD
     Test Libraries
     Доп. инструменты
atdays.com       #atdays @mpoliarush   12
Возможности RF
     Сам фреймворк с
     различными опциями
     RIDE – IDE для разработки
     тестов
     Хорошие отчеты и
     логирование
     Большое количество
     библиотек

     Параллелизация

atdays.com         #atdays @mpoliarush   14
Много уже сделано!
   Builtin Library       Screenshot Library     EclipseLibrary
   Operating             Remote Library         AutoItLibrary
   System Library        SeleniumLibrary        DatabaseLibrary
   Telnet Library        Selenium2Library       SSHLibrary
   Collections Library   watir-robot            HTTPLibrary
   String Library        WatinLibrary           ExcelLibrary
   Dialogs Library
                         SwingLibrary




atdays.com                #atdays @mpoliarush                  15
Небольшое ДЕМО
     Создаем тест

     Манипуляция с
     файлами и
     контентом

     Замеряем
     скорость и
     удобность

atdays.com          #atdays @mpoliarush   18
Нет ничего сложного
     Автоматизация без
     программирования
     Очень просто
     разрабатывать такие
     тесты
     А если нет
     библиотеки, которая
     нам нужна?

atdays.com         #atdays @mpoliarush   19
Умеешь программировать,
    сможешь решить любую автоматизацию! Это точно!

    ПРОГРАММИРОВАНИЕ


atdays.com                 #atdays                   20
Потребность
     Всегда нужно что-то
     программировать                      У нас уже
                                         есть 100500
     Как это сделать                      тестов, а
     быстро?                              надо еще
                                           один, но
     Использовать легкие                «хитрый», как
     языки высокого
     уровня                               добавить?
atdays.com        #atdays @mpoliarush                   21
Python, java или …?
     Robot Framework
     поддерживает разные ЯП
     Python и Java основные
     Остальные ЯП можно
     подключить через
     RemoteLibrary

     Выбор на вкус и цвет
     Но Python лучше

atdays.com         #atdays @mpoliarush   22
atdays.com   #atdays   23
Выполняем небольшую задачу
     Есть список IP адресов
     Надо, каждому элементу списка
     заменить маску подсети
     Есть
         192.168.0.1, 192.168.0.2, 192.168.0.3
     Надо получить
         192.168.0.10, 192.168.0.11, 192.168.0.21


atdays.com              #atdays @mpoliarush         24
atdays.com   #atdays   25
Robot Framework позволяет быстро и легко
    добавить свою библиотеку без всяких пробем

    РАСШИРЯЕМ ВОЗМОЖНОСТИ


atdays.com                  #atdays              27
Комплексная среда




atdays.com         #atdays @mpoliarush   28
Не изобретаем велосипед!
   Builtin Library         WatinLibrary
   Operating System        SwingLibrary
   Library                 EclipseLibrary
   Telnet Library          AutoItLibrary
   Collections Library
                           DatabaseLibrary
   String Library
                           SSHLibrary
   Dialogs Library
                           HTTPLibrary
   Screenshot Library
                           ExcelLibrary
   Remote Library
   SeleniumLibrary
   Selenium2Library
   watir-robot

atdays.com               #atdays @mpoliarush   29
Общая схема
     Создаем python библиотеку (файл)
     Подключаем библиотеку
     Используем интерфейс библиотеки
     в тестах




atdays.com       #atdays @mpoliarush    30
Варианты
  Через функции
     Функция – это кейворд




  Через класс
     Метод – это кейворд



atdays.com                 #atdays   31
Простой пример?
     Создаем
     библиотеку
     Делаем кейворд в
     виде функции
     Печатает hello
     world
     Подключаем
     библиотеку
     Используем
     кейворды

atdays.com        #atdays @mpoliarush   32
Демо




atdays.com   #atdays @mpoliarush   33
Сложный пример?
     Создаем
     библиотеку
     Реализуем поиск
     данных или веб-
     автоматизацию с
     помощью
     классов
     Подключаем
     библиотеку
     Используем
     кейворды

atdays.com        #atdays @mpoliarush   34
Демо




atdays.com   #atdays @mpoliarush   35
И что нам с этого?
        Вы можете использовать
   неограниченные возможности языка
           программирования

     И автоматизировать любые задачи,
     которые Вам необходимо
     Все ограничения - ограничения языка
     программирования, а не Robot
     Framework

atdays.com         #atdays @mpoliarush     36
Примеры на GitHub



     https://github.com/polusok/RF-WebServicesLibrary




atdays.com             #atdays @mpoliarush              37
В общем Robot Framework
     Robot Framework – отличный фреймворк для
     автоматизации keyword-driven, data-driven
     и BDD тестов
     Большой выбор уже сделанных библиотек
     Хорошо подходит для программ с разными
     видами интерфейсов
     Легко расширяется с помощью Python или
     Java или любого другого языка
     Легкое и быстрое развертывание
     Активное сообщество

atdays.com          #atdays @mpoliarush          39
Своя библиотека - просто!
     Создаем python библиотеку (файл)
     Подключаем библиотеку
     Используем интерфейс библиотеки
     в тестах




atdays.com       #atdays @mpoliarush    40
Что нужно, чтобы научиться
   программировать на Python?
     Читайте книги
     Посещайте тренинги и курсы
     Тренируйтесь и практикуйтесь




    Doug Hellmann   David M. Beazley      Mark Lutz
atdays.com          #atdays @mpoliarush               41
Python и RF Вам в помощь!
     Используйте Robot Framework
     Программируете на Рython
     Решайте Ваши задачи




atdays.com       #atdays @mpoliarush   42
Михаил Поляруш
                Тренер и практикующий
             консультант по автоматизации
                   тестирования ПО


                    @mpoliarush
                    http://poliarush.com




atdays.com                                  43

Как расширять Robot Framework под свои нужны с помощью Python?

  • 1.
    Robot Framework быстрое расширение под свои потребности Mykhailo Poliarush http://poliarush.com 2013 atdays.com
  • 2.
    Михаил Поляруш @mpoliarush Автоматизатор, консультант и тренер Основатель atdays.com, automated-testing.info Фан-автоматизации тестирования ПО и Python Тренинги и консультации atdays.com #atdays @mpoliarush 2
  • 3.
    Сейчас Почему Python? Что такое Robot Framework? Какие возможности RF? Зачем расширять RF? Как расширять RF c Python? Будем практиковаться на разных примерах atdays.com #atdays @mpoliarush 3
  • 4.
    Цель atdays.com #atdays @mpoliarush 4
  • 5.
    Автоматизация – программирование! atdays.com #atdays @mpoliarush 5
  • 6.
    Программирование?! Скорость разработки Гибкость решений Экосистема Решение прикладных задач atdays.com #atdays @mpoliarush 6
  • 7.
    Каждый инструмент иязык программирования надо рассматривать с разных точек зрения ВЗГЛЯД НА ВЕЩИ atdays.com #atdays 7
  • 8.
    Почему Python? PHP Ruby PYTHON atdays.com #atdays @mpoliarush 8
  • 9.
    atdays.com #atdays 9
  • 10.
    Почему Robot Framework? А может нам подойдет что-то другое? atdays.com #atdays @mpoliarush 10
  • 11.
    Почему Robot Framework? Гибкая архитектура Легко расширяется и интегрируется Python, Java, … Активно развивается и поддерживается atdays.com #atdays @mpoliarush 11
  • 12.
    Robot Framework Фреймворк общего назначения Python Java Keyword-driven Data-driven BDD Test Libraries Доп. инструменты atdays.com #atdays @mpoliarush 12
  • 13.
    Возможности RF Сам фреймворк с различными опциями RIDE – IDE для разработки тестов Хорошие отчеты и логирование Большое количество библиотек Параллелизация atdays.com #atdays @mpoliarush 14
  • 14.
    Много уже сделано! Builtin Library Screenshot Library EclipseLibrary Operating Remote Library AutoItLibrary System Library SeleniumLibrary DatabaseLibrary Telnet Library Selenium2Library SSHLibrary Collections Library watir-robot HTTPLibrary String Library WatinLibrary ExcelLibrary Dialogs Library SwingLibrary atdays.com #atdays @mpoliarush 15
  • 15.
    Небольшое ДЕМО Создаем тест Манипуляция с файлами и контентом Замеряем скорость и удобность atdays.com #atdays @mpoliarush 18
  • 16.
    Нет ничего сложного Автоматизация без программирования Очень просто разрабатывать такие тесты А если нет библиотеки, которая нам нужна? atdays.com #atdays @mpoliarush 19
  • 17.
    Умеешь программировать, сможешь решить любую автоматизацию! Это точно! ПРОГРАММИРОВАНИЕ atdays.com #atdays 20
  • 18.
    Потребность Всегда нужно что-то программировать У нас уже есть 100500 Как это сделать тестов, а быстро? надо еще один, но Использовать легкие «хитрый», как языки высокого уровня добавить? atdays.com #atdays @mpoliarush 21
  • 19.
    Python, java или…? Robot Framework поддерживает разные ЯП Python и Java основные Остальные ЯП можно подключить через RemoteLibrary Выбор на вкус и цвет Но Python лучше atdays.com #atdays @mpoliarush 22
  • 20.
    atdays.com #atdays 23
  • 21.
    Выполняем небольшую задачу Есть список IP адресов Надо, каждому элементу списка заменить маску подсети Есть 192.168.0.1, 192.168.0.2, 192.168.0.3 Надо получить 192.168.0.10, 192.168.0.11, 192.168.0.21 atdays.com #atdays @mpoliarush 24
  • 22.
    atdays.com #atdays 25
  • 23.
    Robot Framework позволяетбыстро и легко добавить свою библиотеку без всяких пробем РАСШИРЯЕМ ВОЗМОЖНОСТИ atdays.com #atdays 27
  • 24.
  • 25.
    Не изобретаем велосипед! Builtin Library WatinLibrary Operating System SwingLibrary Library EclipseLibrary Telnet Library AutoItLibrary Collections Library DatabaseLibrary String Library SSHLibrary Dialogs Library HTTPLibrary Screenshot Library ExcelLibrary Remote Library SeleniumLibrary Selenium2Library watir-robot atdays.com #atdays @mpoliarush 29
  • 26.
    Общая схема Создаем python библиотеку (файл) Подключаем библиотеку Используем интерфейс библиотеки в тестах atdays.com #atdays @mpoliarush 30
  • 27.
    Варианты Черезфункции Функция – это кейворд Через класс Метод – это кейворд atdays.com #atdays 31
  • 28.
    Простой пример? Создаем библиотеку Делаем кейворд в виде функции Печатает hello world Подключаем библиотеку Используем кейворды atdays.com #atdays @mpoliarush 32
  • 29.
    Демо atdays.com #atdays @mpoliarush 33
  • 30.
    Сложный пример? Создаем библиотеку Реализуем поиск данных или веб- автоматизацию с помощью классов Подключаем библиотеку Используем кейворды atdays.com #atdays @mpoliarush 34
  • 31.
    Демо atdays.com #atdays @mpoliarush 35
  • 32.
    И что намс этого? Вы можете использовать неограниченные возможности языка программирования И автоматизировать любые задачи, которые Вам необходимо Все ограничения - ограничения языка программирования, а не Robot Framework atdays.com #atdays @mpoliarush 36
  • 33.
    Примеры на GitHub https://github.com/polusok/RF-WebServicesLibrary atdays.com #atdays @mpoliarush 37
  • 34.
    В общем RobotFramework Robot Framework – отличный фреймворк для автоматизации keyword-driven, data-driven и BDD тестов Большой выбор уже сделанных библиотек Хорошо подходит для программ с разными видами интерфейсов Легко расширяется с помощью Python или Java или любого другого языка Легкое и быстрое развертывание Активное сообщество atdays.com #atdays @mpoliarush 39
  • 35.
    Своя библиотека -просто! Создаем python библиотеку (файл) Подключаем библиотеку Используем интерфейс библиотеки в тестах atdays.com #atdays @mpoliarush 40
  • 36.
    Что нужно, чтобынаучиться программировать на Python? Читайте книги Посещайте тренинги и курсы Тренируйтесь и практикуйтесь Doug Hellmann David M. Beazley Mark Lutz atdays.com #atdays @mpoliarush 41
  • 37.
    Python и RFВам в помощь! Используйте Robot Framework Программируете на Рython Решайте Ваши задачи atdays.com #atdays @mpoliarush 42
  • 38.
    Михаил Поляруш Тренер и практикующий консультант по автоматизации тестирования ПО @mpoliarush http://poliarush.com atdays.com 43