Как расширять robot framework под свои нужны с помощью python?

38
atdays.com Robot Framework быстрое расширение под свои потребности Mykhailo Poliarush http://poliarush.com 2013

Upload: mykhailo-poliarush

Post on 05-Dec-2014

890 views

Category:

Technology


4 download

DESCRIPTION

Изучай python и автоматизацию на тестирования на python на http://lessons2.ru

TRANSCRIPT

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