Robot framework как писать проверки
Robot Framework — фреймворк для разработки приемочных автотестов (ATDD).
Это keyword-driven testing фреймворк, который предоставляет табличное форматирование
Основные идеи для создания Robot Framework были отражены в магистерской диссертации Пекки Клярка (Pekka Klärck) в 2005 году.
Первая версия была разработана Nokia Siemens Networks в том же году. Версия 2.0 была издана под открытой лицензией Apache License 24 июня 2008 года. Фреймворк написан на языке Python.
Установка
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 Framework 4.0.1 (Python 3.9.1 on linux)
Пример
Небольшой пример работы с настроенным фреймворком
Зайдите в директорию с тестами
В этой директории могут лежать Makefile , Dockerfile различные файлы из которых берутся данные для создания тестовых окружений и так далее.
Это обычно настраивает DevOps или QA Team Lead
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
Чтобы создать тестовое окружение нужно выполнить
Когда окружение активно можно начать пользоваться роботом.
Для вызова справки выполните
seleniumlibrary
python -m 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
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
python sut/login.py login andrei HeiHeiru1
Пример теста с Selenium WebDriver
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
Более детальный отчёт находится в 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 вынесем такие общие действия как открыть браузер, закрыть браузер и так далее
Обратите внимание на строку 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 cmd1"> robot -d results Tests/eBay/BasicSearch.robot
- убедитесь что в начале 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
Статьи по автоматизации разработки и тестирования. DevOps и безопасная разработка ПО.
понедельник, 4 марта 2013 г.
Разработка функциональных тестов при помощи RobotFramework
Рекомендуется ознакомиться с вводными статьями по использованию RobotFramework (далее сокращенно RF):
Далее описаны шаги для полной установки RobotFramework. Необходимо скачивать инсталляторы только для конкретной системы: 64-х или 32-х битной.
1.1. Под Windows:
1.2. Проверка установки:
- Запустить cmd, набрать: java -version, должна появиться информация вида: "java version "1.6.0_27" Java(TM) SE Runtime Environment (build 1.6.0_27-b07) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)".
- Запустить cmd, набрать: python --version, должна появиться информация вида: "Python 2.7.3".
- Запустить cmd, набрать: pybot --version, должна появиться информация вида: "Robot Framework 2.7.1 (Python 2.7.3 on win32)".
- Запустить RIDE, для этого запустить cmd, набрать: ride.py, должен запуститься RIDE. Для упрощения дальнейшей работы, рекомендуется сделать ярлык быстрого запуска для RIDE. Он запускается файлом %PYTHON_HOME%Scripts\ride.py. При правильно установленном Питоне достаточно просто щёлкнуть по нему.
2. Подготовка к тестированию
Писать тесты для RobotFramework можно как при помощи интегрированной среды разработки RIDE, так и в обычном текстовом редакторе. RobotFramework использует ключевые слова (keywords) для написания тестов. Эти ключевые слова содержатся в стандартных библиотеках: BuiltIn, OperatingSystem, Telnet, Collections, String, Dialogs, Screenshot и в подключаемых внешних библиотеках, таких как Selenium2Library и др.
2.1. Структура тестов RobotFramework
Рекомендуется придерживаться следующей иерархии тестов:
Глобальный каталог (общий каталог с тест-кейсами и тест-сьютами всех типов)
- init-тест (текстовый файл с глобальными переменными, общими настройками для всех тест-сьютов и тестовой документацией)
- библиотека с ресурсами (текстовый файл, в котором хранятся стандартные команды RF, общие для всех проектов)
- тест-сьют (текстовый файл, в котором хранятся специфические настройки и переменные для конкретного типа тестов, а также сами тест-кейсы)
- тест-кейсы (команды, которые непосредственно выполняют отдельные тестовые проверки и хранятся в файле тест-сьюта)
Для реализации предлагаемой иерархии необходимо для каждого проекта:
- Создать глобальный каталог<project_work_dir>\test\front_end\rf
- Создать в нем текстовый файл __init__.txt. В этом файле ведется тестовая документация. кроме того, RF сразу воспринимаем каталог с таким файлом как каталог с тестами.
- Создать или скопировать из другого проекта текстовый файл со стандартными ресурсами (командами RF) resource.txt. В нем должны подключаться все необходимые стандартные библиотеки, указываться глобальные переменные для всех тест-сьютов, реализовываться стандартные проверки.
- Создать текстовый файл тест-сьют, например, <project_name>_Test_suite_CRUD.txt, в котором будут храниться тест-кейсы и могут быть описаны локальные переменные, необходимые для работы тест-сьюта. Также здесь подключается файл со стандартными ресурсами resource.txt.
- Внутри тест-сьюта в разделе описания тест-кейсов создавать обычные тесты, давая им наименования согласно тест-плана.
После этого можно редактировать тест-кейсы, например, в Notepad++ или выполнить команду "Open Directory" в RIDE, для редактирования всего тестового проекта.
2.2. Возможные разделы в файле с тестами RF и их формат
*** Settings ***
*** Variables ***
*** Keywords ***
После этого, вместо того, чтобы каждый раз писать в тест-кейсах команды для подключения к страничке авторизации (логина), можно просто писать команду Open Login Page.
*** Test Cases ***
Некоторые разделы могут отсутствовать, например, для файла с ресурсами не нужно описывать тест-кейсы, а в файлах тест-кейсов не обязателен раздел ключевых слов. Можно также вообще не разделять тесты RF по отдельным файлам, а все разделы вести внутри одного текстового файла. Кроме того, переменные и ресурсы, описанные в файле __init__.txt не будут доступны во всей иерархии тестов. Это нужно учитывать и описывать глобальные переменные в ресурсах, а локальные переменные - в тест-сьютах.
2.3. Экспорт тестов Selenium в RobotFramework
- Открываем настройки форматирования текста: Selenium IDE - Options - Options. вкладка Formats.
- Добавляем новый форматер: нажимаем кнопку Add.
Можно придерживаться следующего плана разработки тестов для RF:
- Описывается алгоритм действий в тесте в виде последовательности шагов, понятных инженеру-тестировщику, аналогично, как описывается задача для ручных тестировщиков.
- Например:
- выполнить такие-то подготовительные действия;
- запустить такую-то программу;
- выполнить такой-то сценарий действий;
- выполнить заключительные действия по формированию лога. - Каждому шагу алгоритма дается понятный перевод, в результате получаем тест-кейс, состоящий из ключевых слов самого высокого уровня (high-level keywords).
- В ресурсном файле описываем реализацию этих ключевых слов.
- Если не удаётся описать новые ключевые слова используя уже имеющиеся команды RF или для расширения функционала, можно подключить внешние python-модули, в которых реализовать ключевые слова как соответствующие функции.
Перед тем как установить Robot Framework, вы должны иметь установленый Python 2.5 или более новый. Robot Framework не был адаптирован для работы с Python 3, поэтому лучшим выбором будет версия 2.7. Если у вас еще не установлен Python, вы можете згрузить его отсюда
.
Затем вы должны загрузить Robot Framework и Selenium
. При каждой установке выбирайте опции по умолчанию.
Добавьте пути к установленному Python и Robot Framework в ваш path. Для Python 2.7 это будет, например, "c:\Python27\;c:\Python27\Scripts\;
Файлы используемые в нашем проекте
Выполнение Robot Framework тестов
- report.html
- log.html
- output.xml
- selenium_server_log.txt
Чтение результатов
После выполнения теста вы должны открыть report.html файл. В случае успешного прохождения теста, вы увидите:
Синтакс и форматы
-
Три необязательные таблицы:
- Settings: Информация необходимая для тестов, например, какие библиотеки будут использоваться, как задать и выполнить тесты.
- Variables: Имена переменных и их значения.
- Keywords: Это определители функций, в RF они называются ключевыми словами.
Мы имеем Login Page можем проверить, возможно ли залогиниться при наличии правильного логина и пароля.
Первая попытка
Таблица Settings
Каждая таблица обозначена как *** <имя таблицы> *** и продолжается до имени следущей таблицы. В текстовой версии синтаксис имеет в качестве разделителей пробелы. Каждый элемент под таблицей считается с левого края экрана. Если ключевое слово - keyword, принимает аргументы, они должны располагаться на этой же строке, разделяясь или табом или одним или больше пробелом. Я обычно разделяю их больше чем двумя пробелами для удобства чтения.
Настройки в Library импортируют имена библиотек в тест сьют. Selenium Library позволяет управлять браузером и идеально подходит к нашему заданию.
Определение элементов на странице
Я написал страницу для авторизации пользователей, которая очень удобна для тестирования. Для тестирования подобных простых страниц обычно смотрю в sourcecode, чтобы найти как идентифицировать элементы. Если вы взгляните на мою Login Page вы сразу обнаружите идентификаторы:
Тесткейсы
- A Testcases таблица содержит один или более тестов.
- В первой строке должно быть имя теста, которое будет использовано в reports и в logs.
- Setup Task: Чтобы использовать Selenium, необходимо запустить сервер, который будет получать команды и управлять браузером. Обратите внимания, что кeyword names могут содержать пробелы.
- Setup Task: Браузер открывает заданную страницу по умолчанию в Firefox-e. Можно указать также , что следует использовать Internet Explorer или Chrome.
- Setup Task: По умолчанию окно браузера полностью не раскрывается. В данном примере задается раскрытие окна.
- Test Action: Ключевое слово Input Text вводит текст в поле, оно принимает два аргумента, идентификатор элемента и текст для ввода. Таким образом мы вводим информацию в поле для имени пользователя, т.е. логин.
- Test Action: Следущее ключевое слово вводит пароль в заданное поле.
- Test Action: Одной из приятных особенностей Robot Framework является то, что ключевые слова обычно очень информативны.One of the nice things about robot framework is that its keyword names tend to be pretty obvious. Как видим, в этом шаге мы кликаем Login Button.
- Test Verification: Page Should Contain производит поиск заданного текста и если находит, то тест считается успешным и проваленным в обратном случае.
- Teardown Task: Close Browser, таким образом закрываем браузер, открытый в строке 4, если не сделаем этого, то будем иметь все открытые в течении теста окна, что может привести к путанице.
- Teardown Task: Выключаем Selenium Server, если не сделать этого, то это может привести к ошибкам, когда вы попытаетесь запустить Selenium Server в следующих тестах.
Настройки Suite
Все наши заданные тесты буут выполняться, но есть пара проблем. Когда проваливается какой-нибудь тест, Robot Framework прекращает выполнение теста, чтобы сохранить время и предотвратить тестовые действия на системе, находящейся в плохом (т.е. содержит ошибку) состоянии. Это значит, что если какой-нибудь verification шаг провалится, наши teardown (завершающие, очищающие) шаги никогда не будут выполнены. Для решения этой проблемы, а также для того чтобы сделать тесткейсы более читаемыми, мы можем задавать настройки как на уровне теста, так и на уровне сьюта, задавая начальные и конечные условия теста.
Setup/Teardown
- Suit Setup: Применяется единожды перед любыми тестамив течения выполнения сьюта.
- Test Setup: Применяется перед запуском каждого теста.
- Test Teardown: Применяется в конце выполнения каждого теста, даже когда этот тест проваливается.
- Suit Teardown: Применяется когда все тесты в сьюте завершены, даже когда один из них проваливается.
Таблица Keywords
Вы можете решить описанную выше проблему определением дополнительного ключевого слова, которое будет вызовом для этих двух уже имеющихся ключевых слов:
Соответственно изменяем Test Setup, чтобы использовать наше новое ключевое слово:
Делаем наши тесты более читаемыми
Сейчас я избавился от шагов, которые могут скрыть назначение моего всего теста. Самое время, чтобы сделать предназначение моих тесткейсов более очевидными с помощью задания им осмысленных имен. Мы просто добавляем соответствующие ключевые слова в нашу таблицу Keywords:
Такой подход позволяет использовать настройки (settings) в каждом отдельном ключевом слове. Синтаксис, используемый для настроек в ключевых словах и в тестах тот же самый. Специальный элемент находится в квадратных скобках, вы можете найти полный список специальных элементов в Robot Framework's User Guide . Здесь я имею возможность задавать аргументы, которые будут переданы в ключевые слова из тесткейса, который их вызывает. Синтаксис для переменных: $ и может содержать пробелы.
Таким образом ейчас наш тесткейс стал еще более читаемым:
Мощь тэгов
В то время, как полезно иметь возможность запускать каждый тест в вашем тест сьюте одновременно, часто нужно запускать всего лишь небольшой набор из них, например, для выполнения smoke test-а, или же для того, чтобы тестировать лишь какую то одну функциональность. Для этого вы можете помечать тесты тэгами и группировать их по функциональности.
Код внизу тот же самый, что я написал для еще одного теста, который должен проваливаться каждый раз и содержит пару тэгов. (Ключевые слова не менялись, поэтому здесь не рассматриваются):
Один сеттинг для уровня Test был добавлен, помечая первый тест тэгом InvalidTest. На уровне сьюта добавляем второй. Force Tags удостоверяет, что каждый тест в нашем тестсьюте будет помечен тэгом как FunctionalTest. Default Tags устанавливает тэги для теста как ValidTest несмотря на то, что тест имеет собственный тэг как в первом тесте.
Добавление описательных тэгов имеет два преимущества. Когда вы выполняете ваши тесты, результаты тестирования будут отсортированы по ним. Это часто будет помогать определить, где находится конкретная проблема. Ко всему прочему, вы можете задавать какие именно тесты выполнить. Например, когда вы используете следующую команду:
то будут включены только тесты, имеющие соответствующий тэг.
В то время как после команды:
из выполнения будут исключены тесты с этим тэгом.
Ключевое слово Files
Такие ключевые слова как Enter Username будут использоваться почти в любом тесте, который вы напишите для страницы. Поэтому иногда будет полезно разделить ваши тест сьюты на несколько файлов или даже разнести по нескольким папкам. Чтобы избежать копирование одного и того же набора ключевых слов в каждый файл, вы можете вынести и разместить их в отдельном файле ресурсов. В нашем примере простейшим способом для этого будет просто вырезать всё, что идет после *** Keywords *** и поместить в новый файл "LoginKeywords.txt"
Можете переименовать"SimpleTest.txt" в "LoginTest.txt" и добавить еще одну строку в секцию Settings файла LoginTest.txt, например так:
Папки как сьюткейсы
Я собираюсь добавить больше тест файлов, поэтому чтобы организовать их создам папку "LoginTest" в которую положу файлы "LoginTest.txt" и "LoginKeywords.txt". Теперь можно
запустить pybot из папки, содержащую папку "LoginTest" как:
Эта команда отправит на выполнение все тестфайлы в папке "LoginTest".
Init файлы
Как отмечено выше, и папки и файлы обрабатываются Robot Framework-ом как тестсьюты. Вы можете создать раздел Settings для папки добавлением "__init__.txt" файла, который будет содержать таблицу Settings. Так как собираюсь добавлять больше тестов и все они будут иметь одинаковые setup и teardowns, я перемещу еще несколько сеттингов из "LoginTest.txt" файла в "__init__.txt" файл:
И сейчас секция Settings файла "LoginTest.txt" выглядит как:
Data Driven тесты
Data driven тесты создаются для того, чтобы выполнять тот же самый тест с разными входными данными. Это позволяет писать тесты для большого количества тестовых сценариев с минимальными затратами усилий.
Robot Framework имеет специальный setting называемый Test Template, который позволяет создавать файлы, предназначенные для Data Driven тест сьютов:
Используемый Login Should Fail When в качестве template означает, что каждый из этих трех тесткейсов использует его как их единственное ключевое слово, и применяет заданный аргумент к нему. Вы можете видеть в первой строке таблицы Testcases две колонки задающие "Username" и "Password". Robot Framework игнорирует всё в первой строке этой таблицы после имени, колонка names строго предназначена для человека - читателя кода, а не для программы.
Другим новым элементом является переменная $ , которая обозначает пустую строку.
Вы можете видеть, что для этого сьюта я добавил еще одно ключевое слово в файл "LoginKeywords.txt" и назвал его "Login Is Unsuccessful". Это противоположность ключевому слову "Login Is Successful":
Run Keyword and Expect Error выполняет то, что и следует из его названияs. Вторым аргументом является ожидаемая ошибка, поместив * мы указываем, что ожидаем любую ошибку.
Переменные
Когда ваши тесты становятся сравнительно сложными, появляется необходимость менять некоторые данные от одного выполнения к другому или в зависимости от условий их выполнения. Используйте таблицу переменных чтобы облегчить себе жизнь. Для моих тестов я имею две переменных, URL тестируемого приложения и какой браузер используется в тесте, получая их как переменные из файла с ключевыми словами:
Обратите внимание, что при назначении переменных мы использовали=, это необязательно, но делает наш код более читаемым.
Заключение
Пришел к выводу, что Robot Framework является мощным инструментом для разработки и выполнения тестов. Добавляя функциональные тесты при разработки вашего проекта вы улучшите его общее качество.
Ресурсы
Дополнительно
Тест Robot Framework выполняется командной строкой. По умолчанию результат теста - 3 файла: HTML формат Выходной файл 、 HTML Отчет документ и Бревно документ, Выходные файлы также могут быть выполнены с помощью инструмента возобновления Постобработка 。
Исполнение командной строки
Грамматика:
robot [options] data_sources
python -m robot [options] data_sources
При нормальных обстоятельствах используйте команду Robot для выполнения скрипта. Во-вторых, в том, что Python выполняет тестовый скрипт в виде модуля, а затем первый случай в качестве примера.
Укажите тестовые данные
Robot Framework Тестовый корпус организован в виде файлов и каталогов, и мы также можем выполнять указанные файлы в соответствии с фактическими потребностями, например, если вы хотите только отладить сценарий правильной, нет необходимости выполнять все все, тогда вы можете Укажите документ.
Путь файла может быть абсолютным путем или относительным путем (относительно теста на выполнение)
Несколько файлов выполняются в команде, а файлы разделены на пробелы:
robot scalar.robot templates.robot
Robot Framework предоставляет множество вариантов командной строки, которые можно использовать для управления режимом выполнения тестового корпуса и вывода результата теста. Вы можете использовать Robot --help для просмотра поддерживаемых опций, введен только общие варианты.
--Name / -n: имя указанного тестового набора
robot --name Example scalar.robot templates.robot
Если вам не нужно быть параметрами «Имя», название тестового набора в журнале является множеством названий тестовых наборов, которое выглядит просто.
-t: имя указанного тестового случая
Например, в процессе отладки сценариев или регрессии, просто хочу запустить некоторое тестовое дело об ошибках, вы можете проверить указанный элемент в инструменте IDE, но вам нужно указать имя тестового корпуса с параметром -T в командная строка. Примечание. Если между названием теста имена пространство, то используйте подчеркивание _ вместо места, в противном случае он будет сообщать об ошибке.
Пример:test.robot:
Log Many Hello robot
Выполнение: Robot -T Test1_example Test.robot
Нечеткий сопоставленный режим
Поддержка аналогичных регионов, правила следующие:
- *: Сопоставить любой из персонажей и пустых символов;
- ?: Соответствовать одному символу;
- []: Сопоставить любой из символов в скобках, таких как: [ABC] соответствует любому в ABC;
- [! ABC]: сопоставление персонажей, кроме ABC;
- [A-Z]: сопоставить любой из символов между A-Z;
- [! A-Z]: сопоставить любой из персонажей между A-Z
Не отличайте корпус при сопоставлении букв, например:
Результат вывода командной строки
Все выполненные тестовые наборы и тестовые случаи и их состояние отображаются в режиме реального времени. В следующем примере показан выходной вывод простого тестового набора, который выполняет только два тестовых случая:
Example test suite
First test :: Possible test documentation | PASS |
Second test | FAIL |
Error message is displayed here
Example test suite | FAIL |
2 critical tests, 1 passed, 1 failed
2 tests total, 1 passed, 1 failed
Сгенерированный выходной файл
Вывод командной строки очень ограничен, обычно требуется отдельный выходной файл для просмотра результатов теста. Как показано на рисунке выше, 3 файла будут сгенерированы после завершения теста соответственно, вывод, журнал и отчет соответственно.
Вывод - это формат XML, который содержит всю выполненную информацию.
Log - это формат HTML, диаграмма наследования, показывающая детали тестовых наборов, тестовых чехлов и ключевых слов;
Отчет также является форматом HTML, общий отчет для результатов тестов. Если вы генерируете файлы журнала одновременно, конкретный тестовый элемент может быть связан с файлом журнала. Все успехи исполнения, цвет фона зеленый, цвет фона не удалось красный, как показано ниже:
Вышеуказанный файл генерируется в каталоге, в котором тестовый скрипт генерируется по умолчанию. Если вы хотите изменить местоположение вывода, вы можете использовать следующие параметры командной строки:
--Outputdir (-D): вывод на указанный путь
--Output (-O): Установите выходной путь выходного файла
--Log (-l): Установите выходной путь файла журнала
--Report (-R) :: Установите выходной путь файла журнала
-OUTUTOUT NORE --report None --log Нет: не генерируйте никаких файлов журнала
robot -d f:\ scalar.robot:
robot -o f:\output scalar.robot
Ошибка или предупреждающая информация
Случайные проблемы могут возникнуть во время реализации тестирования, таких как неспособность импортировать библиотеки или файлы ресурсов илииспользоватьКлючевое слово не существует. Согласно степени серьезности, такие проблемы классифицируются как ошибки или предупреждения, и записывают их в консоль (используя стандартный поток ошибок), отобразить раздел «Ошибка проверки тестирования» в файле журнала и записи робота.Системный журналОтказ В следующем примере показан появление ошибок и предупреждений в файле журнала.
Error in file '/home/robot/tests.robot' in table 'Setting' in element on row 2: Resource file 'resource.robot' does not exist
Keyword 'SomeLibrary.Example Keyword' is deprecated. Use keyword `Other Keyword` instead.
Получить версию и помочь информации
--help (-h): Получите варианты командной строки доступны для робота.
--Version: получить информацию о роботе
Создайте сценарий запуска
Тестовые случаи обычно автоматизированы непрерывной интеграционной системой или другими случаями. В это время необходимо иметь сценарий для начала выполнения тестирования, а также может использоваться каким-либо образом для вывода после обработки. Подобный скрипт также полезен, даже если тест выполняется вручную, аналогичные сценарии также полезны в случае большого количества вариантов командной строки или настройки тестовой среды.
В среде класса Unix используйте сценарий оболочки, используйте пакетный файл в среде Windows.
Пример сценария 1: Выполните тот же веб-тест, используя разные браузеры и объединить результаты.
Сценарий оболочки:
robot --variable BROWSER:Firefox --name Firefox --log none --report none --output out/fx.xml login
robot --variable BROWSER:IE --name IE --log none --report none --output out/ie.xml login
rebot --name Login --outputdir out --output login.xml out/fx.xml out/ie.xml
Партия:
call robot --variable BROWSER:Firefox --name Firefox --log none --report none --output out\fx.xml login
call robot --variable BROWSER:IE --name IE --log none --report none --output out\ie.xml login
call rebot --name Login --outputdir out --output login.xml out\fx.xml out\ie.xml
Случай выполнен
random:test
Тестовые случаи в тестовом наборе выполняются в случайном порядке.
random:suite
Набор тестов выполняется в произвольном порядке, но выполняется корпус использования в одном тестовом наборе.
random:all
Тестовые наборы и тестовые случаи выполняются в случайном порядке.
Например:
pybot --runmode random:test my_test.txt
Интеллектуальная рекомендация
Поверните строку в целые числа
Тема Описание Преобразуйте строку в целое число (реализация функции integer.valueof (строка), но строка не совпадает 0), требуя функции библиотеки, которая нельзя использовать для преобразования целых.
Docker создает репликацию Redis Master-Slave
Centos установить докер быстрый старт докера Создать Dockerfile Поместите файл на сервер Linux, создайте папку / usr / docker / redis и поместите его в этот каталог Выполните следующий код в каталоге .
Установка GateOne на новом CentOS7
Установка GateOne на новом CentOS7 В последнее время исследуются такие инструменты, как WebSSH2, в настоящее время требуется встроить терминал ssh в веб-приложение и найти GateOne. GateOne - это веб-в.
Примечания к исследованию Qt4 (5), QWaitCondition of QThread Learning
Практические занятия: решения проблем системы управления обучением
Сразу после получения задания будет много трудностей и много проблем. Хорошо иметь проблему, а это значит, что вы можете получить новые знания. Неважно, есть ли проблемы, ключ в том, как их решить. пр.
Вам также может понравиться
искробезопасная практика (5) обратный индекс
задний план Поисковые системы обычно создают инвертированный индекс ключевых слов. Ключевое слово - индекс, за которым следуют веб-страницы, содержащие ключевое слово. На этот раз, используя данные мо.
Решение центра тяжести неправильного многоугольника
Справочник статей Во-первых, решение центра тяжести неправильных многоугольников 1.1 Метод расчета треугольника центра тяжести 1.2 Метод расчета площади треугольника 1.3 Метод расчета площади полигона.
Читайте также: