Списки в Robot Framework
Введение | |
Проверка на принадлежность к списку | |
Пример | |
Get Length: длина списка | |
Append To List: добавить элемент | |
Похожие статьи |
Введение
Создать список можно с помощью @
*** 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 ==============================================================================
Автор статьи: Андрей ОлеговичCollections: списки, словари | |
Кортежи | |
Словари | |
Списки | |
Строки | |
Robot Framework |