Robot Framework как Python библиотека
Введение
Довольно типичной являетс ситуация, когда к существущим библиотекам робота добавляют
свои библиотеки на Python
Но не стоит забывать о том, что Robot Framework это тоже Python библиотека и её ключевые слова могут
быть вызваны из Python кода.
В этой статье вы можете изучить примеры таких вызовов
Screenshot
Рассмотрим как делать роботоские скриншоты на примере похожем на
unstable_url
из статьи про
кастомные Python библиотеки
Понятно, что с помощью
Python
можно делать скриншоты разными способами, но нас интересует именно такой скриншот, который будет интергрирован в
результаты теста.
Для библиотеки Screenshot требуется установка дополнительной библиотеки. В
Windows
это обычно Pillow.
Поддерживаемые инструменты и модули для создания снимков экрана То, как делаются снимки экрана, зависит от операционной системы. В OSX снимки экрана делаются с помощью встроенной утилиты захвата экрана. В других операционных системах вам необходимо установить один из следующих инструментов или модулей Python. Вы можете указать инструмент/модуль для использования при импорте библиотеки. Если инструмент или модуль не указаны, будет использоваться первый найденный. wxPython :: http://wxpython.org :: Универсальный набор инструментов Python GUI. PyGTK :: http://pygtk.org :: Этот модуль доступен по умолчанию в большинстве дистрибутивов Linux. Pillow :: http://python-pillow.github.io :: Работает только на Windows. Также поддерживается оригинальный пакет PIL. Scrot :: http://en.wikipedia.org/wiki/Scrot :: Не используется в Windows. Устанавливается с помощью apt-get install scrot или аналогичного.
python -m pip install pillow
Структура проекта
screenshot_demo/ |-- Libraries | `-- unstable_url.py `-- Tests `-- demo.robot
*** Settings *** Documentation Example that uses external python library Library ../libraries/unstable_url.py *** Test Cases *** Check URL [Tags] title ${url}= Get Unstable Url Should Be Equal As Strings ${url} https://www.devhops.ru
from robot.libraries.Screenshot import Screenshot from random import randrange _screenshot = Screenshot() def get_unstable_url() -> str: _screenshot.take_screenshot("my_screen", "900px") if randrange(2) == 1: return "https://www.devhops.ru" else: return "https://www.heihei.ru"
Теперь при каждом вызове unstable_url() средствами робота будет сделан снимок экрана.
Он будет виден в файле
log.html
Физически он будет расположен в той директории, откуда был вызван тест.
По умолчанию первый скриншот называется
my_screen_1.jpg
. Если его не удалить и запустить тест снова - появится второй файл
my_screen_2.jpg
и так далее.
Автор статьи: Андрей Олегович
Robot Framework | |
Основы | |
Тест логина | |
Пустые поля | |
reStructuredText | |
QuickStart | |
Robot из Python |