Robot Framework: универсальный инструмент автоматизатора

3,327 views

Published on

Доклад Руслана Хозинова на конференции SQADays-15, 19.04.2014, г.Москва

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,327
On SlideShare
0
From Embeds
0
Number of Embeds
1,006
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Robot Framework: универсальный инструмент автоматизатора

  1. 1. Robot Framework универсальный инструмент автоматизатора
  2. 2. Хозинов Руслан Junior QA Engineer at Mirantis Inc Проекты, которыми сейчас занимаюсь: ● Vyatta OS: DMVPN ● Vyatta OS: Multicast ● Vyatta OS: STVPN
  3. 3. О чем поговорим? ● Тестирование реализации сетевых протоколов ● BDD фреймворки ● Универсальность Robot Framework ● Тестирование виртуальной сетевой топологии
  4. 4. О проекте. Что тестируем? ● Программный маршрутизатор с консолью (Debian система с собственной оболочкой) ● Функционал команд маршрутизатора ● Реализации multicast-протоколов (PIM, MSDP) в условиях различных сетевых топологий
  5. 5. О проекте. Что тестируем
  6. 6. Желания заказчика ● Применять Behavior-Driven Development подход ● Полностью автоматические тесты ● Возможность запуска тестов заказчиком ● Автоматизация развертывания виртуальной сетевой топологии в облаке
  7. 7. Behave Нет библиотек Требуется знание Python или Java (jBehave) Нечитабельные отчеты Поддержка BDD DRY Открытый код
  8. 8. Behave Scenario: Search for an account Given I search for a valid account Then I will see the account details @given('I search for a valid account') def step_impl(context): context.browser.get('http://localhost:8000/index') form = get_element(context.browser, tag='form') get_element(form, name="msisdn").send_keys('61415551234') form.submit()
  9. 9. Robot Framework ● Внутренние библиотеки ● Собственная среда разработки - RIDE ● Читабельные отчеты и подробные логи ● Плагины для Jenkins, Maven, Ant ● Нет параллельного запуска тестов ● BDD требует написания собственных библиотек
  10. 10. Robot Framework. Возможности SQL / NoSQL базы данных Web-интерфейсы Java Swing GUI приложения iOS приложения Android приложения Сетевые приложения REST/SOAP интерфейсы
  11. 11. Robot Framework. Библиотеки Telnet iOS library MongoDB library Database Library Android library Rammbock Selenium library Swing Library HTTPLibrary SudsLibrarySSH Library
  12. 12. Robot Framework. Опыт применения ● Встроенные библиотеки ○ меньше времени на поддержку ○ много функционала “из коробки” ● Keyword-driven подход ○ быстрое создание тестов ○ отсутствие дублированного кода ○ функционал без написания кода
  13. 13. Robot Framework. Опыт применения ● RIDE ○ авто-дополнение ○ выбор тестов для запуска ○ в сообществе быстро правят баги ○ удобный редактор ○ документация к тесту
  14. 14. Robot Framework. Итоги ● Ускорение автоматизации ● Тесты, понятные заказчику ● Сокращение времени на поддержку библиотек ● Стандартизация и ускорение обучения ● Довольные отчетами заказчики
  15. 15. О проекте. Как это работает
  16. 16. О проекте. Как это работает *AS - Автономная система
  17. 17. О проекте. Как это работает
  18. 18. Проблемы интеграции ● Необходимо работать с конфигурационными файлами внутри Robot Framework ● Тестирование CLI предполагает анализ вывода консоли ● Использование сторонних утилит неудобно стандартными средствами Robot Framework
  19. 19. Пример. Своя библиотека Реализация с помощью Python Аналогичный функционал средствами RF ... [ WARN ] 10.10.10.10 [ WARN ] root [ WARN ] passwd
  20. 20. Реализация BDD в Robot Framework Given open telnet connection ${router} And telnet.set timeout 30 sec And telnet.set prompt (.*$ | .*]:|.*):|.*/n]|) When input command generate openvpn config vtun0 Then output should contain List of possible server addresses And output should contain ${router.ifaces[1].ipv4} And output should contain Choose OpenVPN server address
  21. 21. Пример. Отчет
  22. 22. Пример. Jenkins Опции конфигурации job’ы
  23. 23. Итоги ● Возможность передачи тестов заказчику ● Гибкость и расширяемость фреймворка ● Ускорение процесса автоматизации ● Перенос функционала старых библиотек
  24. 24. Дополнительная информация ● Официальный сайт Robot Framework robotframework.org ● Robot Framework: Библиотеки code.google.com/p/robotframework/wiki/TestLibraries ● Robot Framework: Best Practices code.google.com/p/robotframework/wiki/HowToWriteGoodTestCases ● Robot Framework: Jenkins plugin wiki.jenkins-ci.org/display/JENKINS/Robot+Framework+Plugin
  25. 25. Хозинов Руслан E-mail: rkhozinov@mirantis.com Skype: hozinov Blog: rkhozinov.blogspot.ru

×