А. Хитрин "robot framework", dump-2014
DESCRIPTION
TRANSCRIPT
Robot Frameworkсводки с фронта
Андрей Хитрин, Noda. -- D.U.M.P.’2014
NODA
● Софт для создания контакт-центров● Основные языки: Java, Python, C++● Много унаследованного кода
============================================================D.U.M.P.Критерии выбора фреймворка============================================================Язык, знакомый нашим разработчикам | PASS |------------------------------------------------------------
============================================================D.U.M.P.Критерии выбора фреймворка============================================================Язык, знакомый нашим разработчикам | PASS |------------------------------------------------------------Хорошая читаемость тестов | PASS |------------------------------------------------------------
============================================================D.U.M.P.Критерии выбора фреймворка============================================================Язык, знакомый нашим разработчикам | PASS |------------------------------------------------------------Хорошая читаемость тестов | PASS |------------------------------------------------------------Развитое сообщество, проект не стоит на месте | PASS |------------------------------------------------------------D.U.M.P.Критерии выбора фреймворка | PASS |3 critical tests, 3 passed, 0 failed3 tests total, 3 passed, 0 failed============================================================
www.failconf.ru
============================================================D.U.M.P.Опыт использования Robot Framework============================================================Читаемость тестов | ...
Список телефонов автоматически сортируется
Создать кейс и зайти в него
Задать номера телефонов 11 22 33 44 55
Страница должна содержать текст 11 | 22 | 33 | 44 | 55
При просмотре формы из кейса должны быть атрибуты Клиента
Добавить физического клиента ${CLIENT_NAME} 69420813888
Подготовить форму с атрибутом ${LAST_NAME_ATTR}
Добавить каталог в проект
Зайти в кейс определенного клиента ${CLIENT_NAME}
Открыть диалог по ссылке ${FORM_LINK}
Страница должна содержать текст ${LAST_NAME_ATTR}
[Teardown] Закрыть всплывающее окно и перейти на главное
============================================================D.U.M.P.Опыт использования Robot Framework============================================================Читаемость тестов | PASS |------------------------------------------------------------Разные форматы хранения: HTML, TXT, TSV | ...
============================================================D.U.M.P.Опыт использования Robot Framework============================================================Читаемость тестов | PASS |------------------------------------------------------------Разные форматы хранения: HTML, TXT, TSV | PASS |------------------------------------------------------------Архидетальные логи | ...
============================================================D.U.M.P.Опыт использования Robot Framework============================================================Читаемость тестов | PASS |------------------------------------------------------------Разные форматы хранения: HTML, TXT, TSV | PASS |------------------------------------------------------------Архидетальные логи | PASS |------------------------------------------------------------Все умеют читать и понимать логи | ...
============================================================D.U.M.P.Опыт использования Robot Framework============================================================Читаемость тестов | PASS |------------------------------------------------------------Разные форматы хранения: HTML, TXT, TSV | PASS |------------------------------------------------------------Архидетальные логи | PASS |------------------------------------------------------------Все умеют читать и понимать логи | FAIL |Есть некоторые тонкости, которым приходится учить------------------------------------------------------------Все могут писать тесты | ...
============================================================Читаемость тестов | PASS |------------------------------------------------------------Разные форматы хранения: HTML, TXT, TSV | PASS |------------------------------------------------------------Архидетальные логи | PASS |------------------------------------------------------------Все умеют читать и понимать логи | FAIL |Есть некоторые тонкости, которым приходится учить------------------------------------------------------------Все могут писать тесты | PASS |------------------------------------------------------------Все могут писать качественные тесты | ...
Разные форматы хранения: HTML, TXT, TSV | PASS |------------------------------------------------------------Архидетальные логи | PASS |------------------------------------------------------------Все умеют читать и понимать логи | FAIL |Есть некоторые тонкости, которым приходится учить------------------------------------------------------------Все могут писать тесты | PASS |------------------------------------------------------------Все могут писать качественные тесты | FAIL |Приходится учить коллег, как делать тесты правильно------------------------------------------------------------Интеграция с Jenkins | ...
Архидетальные логи | PASS |------------------------------------------------------------Все умеют читать и понимать логи | FAIL |Есть некоторые тонкости, которым приходится учить------------------------------------------------------------Все могут писать тесты | PASS |------------------------------------------------------------Все могут писать качественные тесты | FAIL |Приходится учить коллег, как делать тесты правильно------------------------------------------------------------Интеграция с Jenkins | PASS |------------------------------------------------------------Сьюты и тесты можно помечать тегами | ...
Все умеют читать и понимать логи | FAIL |Есть некоторые тонкости, которым приходится учить------------------------------------------------------------Все могут писать тесты | PASS |------------------------------------------------------------Все могут писать качественные тесты | FAIL |Приходится учить коллег, как делать тесты правильно------------------------------------------------------------Интеграция с Jenkins | PASS |------------------------------------------------------------Сьюты и тесты можно помечать тегами | PASS |------------------------------------------------------------Рефакторинг тестов | ...
Все могут писать тесты | PASS |------------------------------------------------------------Все могут писать качественные тесты | FAIL |Приходится учить коллег, как делать тесты правильно------------------------------------------------------------Интеграция с Jenkins | PASS |------------------------------------------------------------Сьюты и тесты можно помечать тегами | PASS |------------------------------------------------------------Рефакторинг тестов | FAIL |Делаем всё ручками, господа!------------------------------------------------------------Режим отладки | ...
Приходится учить коллег, как делать тесты правильно------------------------------------------------------------Интеграция с Jenkins | PASS |------------------------------------------------------------Сьюты и тесты можно помечать тегами | PASS |------------------------------------------------------------Рефакторинг тестов | FAIL |Делаем всё ручками, господа!------------------------------------------------------------Режим отладки | FAIL |Отладка для слабаков------------------------------------------------------------Скорость создания тестов | ...
Сьюты и тесты можно помечать тегами | PASS |------------------------------------------------------------Рефакторинг тестов | FAIL |Делаем всё ручками, господа!------------------------------------------------------------Режим отладки | FAIL |Отладка для слабаков------------------------------------------------------------Скорость создания тестов | FAIL |Возможно, мы просто что-то делаем не так?------------------------------------------------------------Богатый набор готовых библиотек | ...
Библиотеки
● Интерфейсы: Selenium, Swing, SWT, AutoIt● Протоколы: Telnet, SSH● Сборка: Ant, Maven, Jenkins● Прочее: DB Library, Mabot● ... остальная мелочёвка
Библиотеки
● Интерфейсы: Selenium, Swing, SWT, AutoIt● Протоколы: Telnet, SSH● Сборка: Ant, Maven, Jenkins● Прочее: DB Library, Mabot● ... остальная мелочёвка
------------------------------------------------------------Рефакторинг тестов | FAIL |Делаем всё ручками, господа!------------------------------------------------------------Режим отладки | FAIL |Отладка для слабаков------------------------------------------------------------Скорость создания тестов | FAIL |Возможно, мы просто что-то делаем не так?------------------------------------------------------------Богатый набор готовых библиотек | PASS |------------------------------------------------------------Невероятно простая интеграция с Python | ...
Делаем всё ручками, господа!------------------------------------------------------------Режим отладки | FAIL |Отладка для слабаков------------------------------------------------------------Скорость создания тестов | FAIL |Возможно, мы просто что-то делаем не так?------------------------------------------------------------Богатый набор готовых библиотек | PASS |------------------------------------------------------------Невероятно простая интеграция с Python | PASS |------------------------------------------------------------Невероятно простая интеграция с нашим приложением | ...
Steeve Freeman, “Fractal TDD”
Steeve Freeman, “Fractal TDD”
Отладка для слабаков------------------------------------------------------------Скорость создания тестов | FAIL |Возможно, мы просто что-то делаем не так?------------------------------------------------------------Богатый набор готовых библиотек | PASS |------------------------------------------------------------Невероятно простая интеграция с Python | PASS |------------------------------------------------------------Невероятно простая интеграция с нашим приложением | FAIL |(на самом деле нет)------------------------------------------------------------Переход с Selenium RC на Selenium Web Driver | ...
Robot Framework vs. Selenium
● SeleniumLibrary: стабильная работа, но только Selenium RC
● Selenium2Library: Selenium WebDriver, но стабильность работы не радует
------------------------------------------------------------Невероятно простая интеграция с Python | PASS |------------------------------------------------------------Невероятно простая интеграция с нашим приложением | FAIL |(на самом деле нет)------------------------------------------------------------Переход с Selenium RC на Selenium Web Driver | FAIL |Не все сторонние библиотеки одинаково хороши------------------------------------------------------------D.U.M.P.Опыт использования Robot Framework | PASS |8 critical tests, 8 passed, 0 failed15 tests total, 8 passed, 7 failed============================================================
Выводы
● Инструмент хороший, но есть нюансы● Инструмент - это ещё не всё, надо
работать с людьми (с любовью, К.О.)● Переход Selenium RC → Selenium Webdriver
совсем не прост● Задача регрессионного тестирования на
текущий момент решается успешно
Вопросы (мои)
● Переход с Selenium RC на WebDriver● Как лучше комбинировать тесты через
интерфейс и API● Генерация тестов (например, MBT)
[email protected]@gmail.comtwitter.com/ahitrin
nodacontact.com
Вопросы (ваши)
Благодарю за внимание!
[email protected]@gmail.comtwitter.com/ahitrin
nodacontact.com
http://donate.fbk.info
Секунда оффтопа