Как расширять 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
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
15. Небольшое ДЕМО
Создаем тест
Манипуляция с
файлами и
контентом
Замеряем
скорость и
удобность
atdays.com #atdays @mpoliarush 18
16. Нет ничего сложного
Автоматизация без
программирования
Очень просто
разрабатывать такие
тесты
А если нет
библиотеки, которая
нам нужна?
atdays.com #atdays @mpoliarush 19
18. Потребность
Всегда нужно что-то
программировать У нас уже
есть 100500
Как это сделать тестов, а
быстро? надо еще
один, но
Использовать легкие «хитрый», как
языки высокого
уровня добавить?
atdays.com #atdays @mpoliarush 21
19. Python, java или …?
Robot Framework
поддерживает разные ЯП
Python и Java основные
Остальные ЯП можно
подключить через
RemoteLibrary
Выбор на вкус и цвет
Но Python лучше
atdays.com #atdays @mpoliarush 22
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
26. Общая схема
Создаем python библиотеку (файл)
Подключаем библиотеку
Используем интерфейс библиотеки
в тестах
atdays.com #atdays @mpoliarush 30
27. Варианты
Через функции
Функция – это кейворд
Через класс
Метод – это кейворд
atdays.com #atdays 31
28. Простой пример?
Создаем
библиотеку
Делаем кейворд в
виде функции
Печатает hello
world
Подключаем
библиотеку
Используем
кейворды
atdays.com #atdays @mpoliarush 32
30. Сложный пример?
Создаем
библиотеку
Реализуем поиск
данных или веб-
автоматизацию с
помощью
классов
Подключаем
библиотеку
Используем
кейворды
atdays.com #atdays @mpoliarush 34
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