Robot Framework

Содержание
Введение
Установка
Пример
seleniumlibrary
QuickStart
Пример теста с Selenium WedDriver
Свои keywords
Вынести keywords в отдельный файл
Test Setup и Test Teardown
Явно указать источник ключевого слова
Похожие статьи

Введение

Robot Framework — фреймворк для разработки приемочных автотестов (ATDD).

Это keyword-driven testing фреймворк, который предоставляет табличное форматирование

Основные идеи для создания Robot Framework были отражены в магистерской диссертации Пекки Клярка (Pekka Klärck) в 2005 году.

Первая версия была разработана Nokia Siemens Networks в том же году. Версия 2.0 была издана под открытой лицензией Apache License 24 июня 2008 года. Фреймворк написан на языке Python.

Документация

Установка

С помощью pip

python -m pip install robotframework

Collecting robotframework Downloading robotframework-3.2.2-py2.py3-none-any.whl (623 kB) |████████████████████████████████| 623 kB 4.3 MB/s Installing collected packages: robotframework Successfully installed robotframework-3.2.2

python -m pip list

Package Version -------------- ------- pip 21.0.1 robotframework 4.0.1 setuptools 49.2.1

robot --version

Robot Framework 4.0.1 (Python 3.9.1 on linux)

Пример

Небольшой пример работы с настроенным фреймворком

Зайдите в директорию с тестами

cd /soft/src/tests/robot

В этой директории могут лежать Makefile , Dockerfile различные файлы из которых берутся данные для создания тестовых окружений и так далее.

Это обычно настраивает DevOps или QA Team Lead

ls -la

total 70 drwxr-xr-x 8 andrei urn_su 4096 Mar 9 12:15 . drwxr-xr-x 9 andrei urn_su 4096 Mar 9 17:45 .. drwxr-xr-x 2 andrei urn_su 4096 Mar 9 12:15 bin -rw-r--r-- 1 andrei urn_su 1534 Mar 9 12:15 Dockerfile -rw-r--r-- 1 andrei urn_su 1293 Mar 9 12:15 Dockerfile.alpine -rw-r--r-- 1 andrei urn_su 38 Mar 9 12:15 .dockerignore drwxr-xr-x 2 andrei 111 4096 Mar 9 12:15 input -rw-r--r-- 1 andrei urn_su 13586 Mar 9 12:15 Makefile drwxr-xr-x 2 andrei 111 4096 Mar 9 12:15 output -rw-r--r-- 1 andrei urn_su 0 Mar 9 12:15 README.md drwxr-xr-x 2 andrei urn_su 4096 Mar 9 12:15 requirements drwxr-xr-x 2 andrei urn_su 4096 Mar 9 12:15 scripts drwxr-xr-x 8 andrei 111 4096 Mar 9 12:15 src

Чтобы создать тестовое окружение нужно выполнить

make dev

Когда окружение активно можно начать пользоваться роботом.

Для вызова справки выполните

robot --help

seleniumlibrary

Документация

pip install robotframework-seleniumlibrary

Collecting robotframework-seleniumlibrary Downloading robotframework_seleniumlibrary-5.1.3-py2.py3-none-any.whl (94 kB) |████████████████████████████████| 94 kB 1.6 MB/s Collecting selenium>=3.141.0 Downloading selenium-3.141.0-py2.py3-none-any.whl (904 kB) |████████████████████████████████| 904 kB 51.5 MB/s Collecting robotframework-pythonlibcore>=2.1.0 Downloading robotframework_pythonlibcore-2.2.1-py2.py3-none-any.whl (10 kB) Requirement already satisfied: robotframework>=3.1.2 in /home/andrei/robotframework/myvenv/lib/python3.9/site-packages (from robotframework-seleniumlibrary) (4.0.1) Collecting urllib3 Using cached urllib3-1.26.4-py2.py3-none-any.whl (153 kB) Installing collected packages: urllib3, selenium, robotframework-pythonlibcore, robotframework-seleniumlibrary Successfully installed robotframework-pythonlibcore-2.2.1 robotframework-seleniumlibrary-5.1.3 selenium-3.141.0 urllib3-1.26.4

QuickStart

Официальное руководство для быстрого старта в RobotFramework можно клонировать с github

Документация

git clone https://github.com/robotframework/QuickStartGuide.git
cd QuickStartGuide
ll

drwxr-xr-x 5 andrei urnsu 4096 May 5 11:25 ./ drwxr-xr-x 5 andrei urnsu 4096 May 5 11:25 ../ -rw-r--r-- 1 andrei urnsu 796 May 5 11:25 BUILD.rst drwxr-xr-x 8 andrei urnsu 4096 May 5 11:25 .git/ drwxr-xr-x 2 andrei urnsu 4096 May 5 11:25 lib/ -rw-r--r-- 1 andrei urnsu 21237 May 5 11:25 QuickStart.rst -rw-r--r-- 1 andrei urnsu 359 May 5 11:25 README.rst drwxr-xr-x 2 andrei urnsu 4096 May 5 11:25 sut/

Проект для тестирования логина находится в директории sut

Скрипт называется login.py

python sut/login.py create andrei HeiHeiru1

SUCCESS

python sut/login.py login andrei HeiHeiru1

Logged In

robot QuickStart.rst

============================================================================== QuickStart ============================================================================== User can create an account and log in | PASS | ------------------------------------------------------------------------------ User cannot log in with bad password | PASS | ------------------------------------------------------------------------------ User can change password | PASS | ------------------------------------------------------------------------------ Invalid password | PASS | ------------------------------------------------------------------------------ User status is stored in database | PASS | ------------------------------------------------------------------------------ QuickStart | PASS | 5 tests, 5 passed, 0 failed ============================================================================== Output: /home/andrei/robotframework/QuickStartGuide/output.xml Log: /home/andrei/robotframework/QuickStartGuide/log.html Report: /home/andrei/robotframework/QuickStartGuide/report.html

Пример теста с Selenium WebDriver

*** Settings *** # make at least two spaces beetween Documentation Simple example using SeleniumLibrary. Library SeleniumLibrary *** Variables *** *** Test Cases *** This is sample test case [documentation] Google test [tags] regression Open Browser http://www.google.com chrome Close Browser *** Keywords ***

robot -d results Tests/Google/FunctionalTestSuite/GoogleSearch.robot

============================================================================== GoogleSearch :: Simple example using SeleniumLibrary. ============================================================================== This is sample test case :: Google test | PASS | ------------------------------------------------------------------------------ GoogleSearch :: Simple example using SeleniumLibrary. | PASS | 1 test, 1 passed, 0 failed ============================================================================== Output: /home/andrei/robotframework/RobotFWTutorial/results/output.xml Log: /home/andrei/robotframework/RobotFWTutorial/results/log.html Report: /home/andrei/robotframework/RobotFWTutorial/results/report.html

firefox Results/report.html

Результат работы robotframework report.html изображение с сайта www.andreyolegovich.ru

Более детальный отчёт находится в log.html

Свои keywords

В разделе Keywords можно объявить свои ключевые слова.

В этом случае Тest Case будет короче и читаться будет легче.

*** Settings *** Documentation Basic Search Functionality Library SeleniumLibrary *** Variables *** *** Test Cases *** Verify basic search functionality for eBay [Documentation] This test case verifies the basic search [Tags] Functional Start TestCase Verify Search Results Finish TestCase *** Keywords *** Start TestCase Open Browser https://www.ebay.com chrome Input Text //*[@id="gh-ac"] mobile Verify Search Results Click Element id:gh-btn Page Should Contain results for mobile Finish TestCase Close Browser

robot -d results Tests/eBay/BasicSearch.robot

Вынести keywords в отдельный файл

Хранить всё в одном файле быстро становится неудобно.

Оставим сами тесты в файле BasicSearch.robot а keywords разделим на две группы - общие и относящиеся к проекту

BasicSearch.robot

*** Settings *** Documentation Basic Search Functionality Resource ../../Resources/CommonFunctionality.robot Resource ../../Resources/eBay_UserDefinedKeywords.robot *** Variables *** *** Test Cases *** Verify basic search functionality for eBay [Documentation] This test case verifies the basic search [Tags] Functional Start TestCase Verify Search Results Finish TestCase *** Keywords ***

Обратите внимание на то, что в этом файле уже не нужно подключать SeleniumLibrary

В файл CommonFunctionality.robot вынесем такие общие действия как открыть браузер, закрыть браузер и так далее

*** Settings *** Library SeleniumLibrary *** Keywords *** Start TestCase Open Browser https://www.ebay.com chrome Maximize Browser Window Finish TestCase Close Browser

Обратите внимание на строку 2. Пользовательские ключи содержат в себе ключи из библиотеки SeleniumLibrary, поэтому её нужно подключить в настройках.

В файл eBayUserDefinedKeywords.robot вынесем всё, что относится именно к этому проекту

*** Settings *** Library SeleniumLibrary *** Keywords *** Verify Search Results Input Text //*[@id="gh-ac"] mobile Click Element id:gh-btn Page Should Contain results for mobile Filter Results By Condition Mouse Over //*[@id="w7"] Sleep 3s Mouse Down //*[@id="w7"]/div/ul/li[2] Click Element //*[@id="w7"]/div/ul/li[2] Verify Filter Results Element Should Contain //*[@id="srp-river-results-query_answer1-w0-x-carous

robot -d results Tests/eBay/BasicSearch.robot

============================================================================== BasicSearch :: Basic Search Functionality ============================================================================== Verify basic search functionality for eBay :: This test case verif... | PASS | ------------------------------------------------------------------------------ BasicSearch :: Basic Search Functionality | PASS | 1 test, 1 passed, 0 failed ==============================================================================

Если вы получили ошибку No keyword with name 'Start TestCase' found

============================================================================== BasicSearch :: Basic Search Functionality ============================================================================== Verify basic search functionality for eBay :: This test case verif... |FAIL | No keyword with name 'Start TestCase' found. ------------------------------------------------------------------------------ BasicSearch :: Basic Search Functionality |FAIL | 1 test, 0 passed, 1 failed ==============================================================================

- убедитесь что в начале BasicSearch.robot вы с помощью Resourse указали правильный путь до файлов CommonFunctionality.robot , eBayUserDefinedKeywords.robot

*** Settings *** Documentation Basic Search Functionality Resource ../../Resources/CommonFunctionality.robot Resource ../../Resources/eBay_UserDefinedKeywords.robot

Test Setup и Test Teardown

Код из предыдущего примера отлично сработает в случае успеха.

Однако, если результатом будет FAIL браузер не закроется автоматически.

Чтобы избавить себя от необходимости подчищать окружение в случае провала - используйте Test Setup и Test Teardown

*** Settings *** Documentation Basic Search Functionality Resource ../../Resources/CommonFunctionality.robot Resource ../../Resources/eBay_UserDefinedKeywords.robot Test Setup Start TestCase Test Teardown Finish TestCase *** Variables *** *** Test Cases *** Verify basic search functionality for eBay [Documentation] This test case verifies the basic search [Tags] Functional Verify Search Results Filter Results By Condition Verify Filter Results *** Keywords ***

Явно указать источник ключевого слова

Если в разных файлах повторяются пользовательские ключи - возможен конфликт.

Чтобы его избежать можно явно указать и какого файла используется keyword

eBay_UserDefinedKeywords.Verify Search Results eBay_UserDefinedKeywords.Filter Results By Condition eBay_UserDefinedKeywords.Verify Filter Results

Теперь в файле BasicSearch.robot не нужно импортировать Selenium Library и писать Keywords

Похожие статьи
Robot Framework
Объявить переменную
Поддержка Robot в PyCharm
Тестирование ПО
Теория
Учебник по тестированию API
Тестирование API
Selenium
Selenium + Python
Несколько драйверов одновременно
Добавить Selenium в PyCharm
Тестирование с помощью Python
Список открытых API
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: