Data Driver Robot Framework

Введение

Библиотека DataDriver — это расширение для Robot Framework.

DataDriver создает новые тест кейсы на основе файла с данными. Можно использовать .csv, .xls или .xlsx файлы.

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

Официальная документация

Установка

python -m pip install robotframework-datadriver

Пример

Разберём пример с официальной страницы.

Нам предлагается следующий код

*** Settings *** Library DataDriver Test Template Login With User And Password *** Test Cases *** Login with user ${username} and password ${password} Default UserData *** Keywords *** Login With User And Password [Arguments] ${username} ${password} Log Many ${username} ${password}

И содержимое для .csv файла.

*** Test Cases ***;${username};${password};[Tags];[Documentation] Right user empty pass;demo;${EMPTY};1;This is a test case documentation of the first one . Right user wrong pass;demo;FooBar;2, 3, foo;This test case has the Tags 2, 3 and foo ;${EMPTY};mode;1, 2, 3, 4;This test case has a generated name based on template name. ;${EMPTY};${EMPTY};; ;${EMPTY};FooBar;; ;FooBar;mode;foo, 1; ;FooBar;${EMPTY};foo; ;FooBar;FooBar;foo, 2;

Авторы забыли написать, что для запуска в таком виде .csv файл нужно назвать так же как и .robot файл.

Назовём файлы datadriver_demo.robot и datadriver_demo.csv

robot_data_driver_demo/ ├── datadriver_demo.csv └── datadriver_demo.robot

Также ничего не сказано про аргументы Default и UserData.

Их можно просто удалить

*** Settings *** Library DataDriver Test Template Login With User And Password *** Test Cases *** Login with user ${username} and password ${password} *** Keywords *** Login With User And Password [Arguments] ${username} ${password} Log Many ${username} ${password}

Из директории robot_data_driver_demo выполним

python -m robot .\datadriver_demo.robot

============================================================================== Datadriver Demo ============================================================================== Right user empty pass :: This is a test case documentation of the ... | PASS | ------------------------------------------------------------------------------ Right user wrong pass :: This test case has the Tags 2,3 and foo | PASS | ------------------------------------------------------------------------------ Login with user and password mode :: This test case has a generat... | PASS | ------------------------------------------------------------------------------ Login with user and password | PASS | ------------------------------------------------------------------------------ Login with user and password FooBar | PASS | ------------------------------------------------------------------------------ Login with user FooBar and password mode | PASS | ------------------------------------------------------------------------------ Login with user FooBar and password | PASS | ------------------------------------------------------------------------------ Login with user FooBar and password FooBar | PASS | ------------------------------------------------------------------------------ Datadriver Demo | PASS | 8 tests, 8 passed, 0 failed ==============================================================================

Название тест кейса

Следующий интересный момент - название тест кейса. Если его заменить например на Some Test, все тесты по-прежнему будут выполняться.

Единственной разницей будет появление предупреждения об идентичных названиях тестов.

*** Settings *** Library DataDriver Test Template Login With User And Password *** Test Cases *** Some Test *** Keywords *** Login With User And Password [Arguments] ${username} ${password} Log Many ${username} ${password}

python -m robot .\datadriver_demo.robot

============================================================================== Datadriver Demo ============================================================================== Right user empty pass :: This is a test case documentation of the ... | PASS | ------------------------------------------------------------------------------ Right user wrong pass :: This test case has the Tags 2,3 and foo | PASS | ------------------------------------------------------------------------------ Some Test :: This test case has a generated name based on template... | PASS | ------------------------------------------------------------------------------ [ WARN ] Multiple tests with name 'Some Test' executed in suite 'Datadriver Demo'. Some Test | PASS | ------------------------------------------------------------------------------ [ WARN ] Multiple tests with name 'Some Test' executed in suite 'Datadriver Demo'. Some Test | PASS | ------------------------------------------------------------------------------ [ WARN ] Multiple tests with name 'Some Test' executed in suite 'Datadriver Demo'. Some Test | PASS | ------------------------------------------------------------------------------ [ WARN ] Multiple tests with name 'Some Test' executed in suite 'Datadriver Demo'. Some Test | PASS | ------------------------------------------------------------------------------ [ WARN ] Multiple tests with name 'Some Test' executed in suite 'Datadriver Demo'. Some Test | PASS | ------------------------------------------------------------------------------ Datadriver Demo | PASS | 8 tests, 8 passed, 0 failed ==============================================================================

Из логов видно, что название тест кейса из .csv файла имеет приоритет над базовым названием в .robot файл.

Article author: Andrei Olegovich

Похожие статьи
Operating System
RequestsLibrary
XML
Libraries
Robot Framework

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

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