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