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