SlideShare a Scribd company logo
1 of 38
Download to read offline
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

More Related Content

What's hot

Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci COMAQA.BY
 
Альтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуляАльтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуляCOMAQA.BY
 
Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...
Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...
Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...ScrumTrek
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Mail.ru Group
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAlexander Lisachenko
 
Применение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахПрименение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахAlex Chistyakov
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Fwdays
 
UICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиUICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиSQALab
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?SQALab
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALab
 
Клиентская Java вне браузера. Делаем нативные клиенты на Java
Клиентская Java вне браузера. Делаем нативные клиенты на JavaКлиентская Java вне браузера. Делаем нативные клиенты на Java
Клиентская Java вне браузера. Делаем нативные клиенты на JavaNikita Lipsky
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейSQALab
 
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...Nikita Lipsky
 
Лев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про ErlangЛев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про ErlangYury Yurevich
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsAnton Vidishchev
 
Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыYuri Zhloba
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest
 

What's hot (20)

Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci
 
Альтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуляАльтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуля
 
Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...
Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...
Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
 
Применение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахПрименение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектах
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"
 
UICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиUICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестами
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Клиентская Java вне браузера. Делаем нативные клиенты на Java
Клиентская Java вне браузера. Делаем нативные клиенты на JavaКлиентская Java вне браузера. Делаем нативные клиенты на Java
Клиентская Java вне браузера. Делаем нативные клиенты на Java
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
 
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
Java худеет. Спроси меня как. Уменьшение размера дистрибутива Java приложения...
 
Лев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про ErlangЛев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про Erlang
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET Applications
 
Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игры
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
 

Viewers also liked

Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'tsPekka Klärck
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework IntroductionPekka Klärck
 
Easy selenium test automation on python
Easy selenium test automation on pythonEasy selenium test automation on python
Easy selenium test automation on pythonMykhailo Poliarush
 
Совершенный тестовый фреймворк
Совершенный тестовый фреймворкСовершенный тестовый фреймворк
Совершенный тестовый фреймворкautomated-testing.info
 
Проблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestCompleteПроблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestCompleteautomated-testing.info
 

Viewers also liked (7)

Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'ts
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
Introduction to Robot Framework
Introduction to Robot FrameworkIntroduction to Robot Framework
Introduction to Robot Framework
 
Easy selenium test automation on python
Easy selenium test automation on pythonEasy selenium test automation on python
Easy selenium test automation on python
 
Совершенный тестовый фреймворк
Совершенный тестовый фреймворкСовершенный тестовый фреймворк
Совершенный тестовый фреймворк
 
Проблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestCompleteПроблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestComplete
 
JavaCro'14 - Test Automation using RobotFramework Libraries – Stojan Peshov
JavaCro'14 - Test Automation using RobotFramework Libraries – Stojan PeshovJavaCro'14 - Test Automation using RobotFramework Libraries – Stojan Peshov
JavaCro'14 - Test Automation using RobotFramework Libraries – Stojan Peshov
 

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

Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кодаКирилл Борисов
 
Python-технология которую легко продавать!
Python-технология которую легко продавать!Python-технология которую легко продавать!
Python-технология которую легко продавать!Aleksey Nakorenko
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?DotNetConf
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems
 
Дикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG ЕкатеринбургДикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG ЕкатеринбургКирилл Толкачёв
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаSkillsWiki
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаgeekfamilyrussia
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testingbeched
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Andrey Listochkin
 
Разработка веб-сервисов осень 2013 лекция 8
Разработка веб-сервисов осень 2013 лекция 8Разработка веб-сервисов осень 2013 лекция 8
Разработка веб-сервисов осень 2013 лекция 8Technopark
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав БахмутовCodeFest
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
 
Почему стоит выбрать PHP
Почему стоит выбрать PHPПочему стоит выбрать PHP
Почему стоит выбрать PHPMaxim Sivokon
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовАгентство AlterEGO
 

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

Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
 
Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кода
 
Python-технология которую легко продавать!
Python-технология которую легко продавать!Python-технология которую легко продавать!
Python-технология которую легко продавать!
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
 
Дикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG ЕкатеринбургДикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG Екатеринбург
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testing
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013
 
Разработка веб-сервисов осень 2013 лекция 8
Разработка веб-сервисов осень 2013 лекция 8Разработка веб-сервисов осень 2013 лекция 8
Разработка веб-сервисов осень 2013 лекция 8
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав Бахмутов
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
Почему стоит выбрать PHP
Почему стоит выбрать PHPПочему стоит выбрать PHP
Почему стоит выбрать PHP
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
 

More from Mykhailo Poliarush

atdays.com - How to do a technical speach?
atdays.com - How to do a technical speach?atdays.com - How to do a technical speach?
atdays.com - How to do a technical speach?Mykhailo Poliarush
 
iSpeaker Club Interaction and Behaviour
iSpeaker Club Interaction and BehaviouriSpeaker Club Interaction and Behaviour
iSpeaker Club Interaction and BehaviourMykhailo Poliarush
 
Sikuli Test Automation - How to do it?
Sikuli Test Automation - How to do it?Sikuli Test Automation - How to do it?
Sikuli Test Automation - How to do it?Mykhailo Poliarush
 
What is page object in selenium webdriver?
What is page object in selenium webdriver?What is page object in selenium webdriver?
What is page object in selenium webdriver?Mykhailo Poliarush
 
How to write locators xpath css?
How to write locators xpath css?How to write locators xpath css?
How to write locators xpath css?Mykhailo Poliarush
 
How to write first selenium webdriver test?
How to write first selenium webdriver test?How to write first selenium webdriver test?
How to write first selenium webdriver test?Mykhailo Poliarush
 

More from Mykhailo Poliarush (8)

atdays.com - How to do a technical speach?
atdays.com - How to do a technical speach?atdays.com - How to do a technical speach?
atdays.com - How to do a technical speach?
 
iSpeaker Club Interaction and Behaviour
iSpeaker Club Interaction and BehaviouriSpeaker Club Interaction and Behaviour
iSpeaker Club Interaction and Behaviour
 
What is technical speach?
What is technical speach?What is technical speach?
What is technical speach?
 
Sikuli Test Automation - How to do it?
Sikuli Test Automation - How to do it?Sikuli Test Automation - How to do it?
Sikuli Test Automation - How to do it?
 
What is page object in selenium webdriver?
What is page object in selenium webdriver?What is page object in selenium webdriver?
What is page object in selenium webdriver?
 
How to write locators xpath css?
How to write locators xpath css?How to write locators xpath css?
How to write locators xpath css?
 
How to write first selenium webdriver test?
How to write first selenium webdriver test?How to write first selenium webdriver test?
How to write first selenium webdriver test?
 
What is regular expression?
What is regular expression?What is regular expression?
What is regular expression?
 

Как расширять 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
  • 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. В общем Robot Framework 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