Списки в Robot Framework

Введение

Создать список можно с помощью @

*** Settings *** Documentation Creating List *** Variables *** @{versions}= 18 19 20 21

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

С помощью in можно проверить входит ли такой объект в список или нет.

Такой оператор присутствует в Python и других языках программирования.

in отделяется отступами в один пробел

$var in $list

Проверка на принадлежность к списку

Рассмотрим тест list.robot сделаем простую проверку принадлежит ли наша версия PostreSQL списку разрешённых или нет. Тест падать не будет.

** Variables *** ${PG_VERSION} 11 @{versions}= 11 13 *** Test Cases *** Test1 Log To Console ${PG_VERSION} Log To Console ${versions} IF "${PG_VERSION}" in ${versions} Log To Console "IN" ELSE Log To Console "NOT IN" END

python -m robot list.robot

============================================================================== List ============================================================================== Test1 11 .['11', '13'] ."IN" Test1 | PASS | ------------------------------------------------------------------------------ List | PASS | 1 test, 1 passed, 0 failed ============================================================================== Output: /home/andrei/robot/output.xml Log: /home/andrei/robot/log.html Report: /home/andrei/robot/report.html

Если ELSE вам не нужен его можно убрать или воспользоваться ключевым словом Run Keyword If

Test2 Run Keyword If "${PG_VERSION}" in ${versions} Log To Console Version ${PG_VERSION} is OK

Test2 Version 11 is OK Test2 | PASS |

Пример

Рассмотрим тест in.robot сделаем не просто проверку, а обязательное условие чтобы версия была из списка разрешённых.

Теперь нужно, чтобы тест падал при посторонней версии.

*** Settings *** Documentation Testing in operator *** Variables *** @{versions}= 18 19 20 21 ${current_version}= 21 *** Keywords *** Start TestCase Log To Console "Starting Test Case" Compare Versions Log To Console ${current_version} Should Be True $current_version in $versions Finish TestCase Log To Console "Finishing Test Case" *** Test Cases *** Verify that in is working [Documentation] This test case verifies that "in" can be used [Tags] Functional Start TestCase Compare Versions Finish TestCase

python -m robot in.robot

============================================================================== Example :: Testing in operator ============================================================================== Verify that in is working :: This test case verifies that "in" can... "Starting Test Case" .21 ."Finishing Test Case" Verify that in is working :: This test case verifies that "in" can... | PASS | ------------------------------------------------------------------------------ Example :: Testing in operator | PASS | 1 test, 1 passed, 0 failed ============================================================================== Output: /home/andrei/tests/Example/output.xml Log: /home/andrei/tests/Example/log.html Report: /home/andrei/tests/Example/report.html

Пример

*** Settings *** Documentation Testing that list is not empty *** Variables *** @{versions}= 11 13 *** Test Cases *** List Len Is Not Null ${list_len}= Get Length ${versions} IF ${list_len} == 0 Log To Console "list is empty" END Should Not Be Equal As Integers ${list_len} 0

python -m robot list_ex.robot

============================================================================== List Ex :: Testing that list is not empty ============================================================================== List Len Is Not Null | PASS | ------------------------------------------------------------------------------ List Ex :: Testing that list is not empty | PASS | 1 test, 1 passed, 0 failed ============================================================================== Output: C:\Users\Andrei\robot\output.xml Log: C:\Users\Andrei\robot\log.html Report: C:\Users\Andrei\robot\report.html

Append To List

Ключевое слово Append To List из библиотеки Collections позволяет добавлять элементы в список

# list_demo.robot *** Settings *** Library Collections *** Variables *** @{my_list} a b c *** Test Cases *** Demo Append Length Should Be ${my_list} 3 Log To Console ${my_list} Append To List ${my_list} d e Length Should Be ${my_list} 5 Log To Console ${my_list}

python -m robot .\list_demo.robot

============================================================================== List Demo ============================================================================== Demo Append .['a', 'b', 'c'] ...['a', 'b', 'c', 'd', 'e'] Demo Append | PASS | ------------------------------------------------------------------------------ List Demo | PASS | 1 test, 1 passed, 0 failed ==============================================================================

Автор статьи: Андрей Олегович

Изображение баннера