Циклы в Robot Framework

Содержание
Введение
FOR
Перебор списка
Выход из цикла
WHILE
Похожие статьи

Введение

В этой статье вы можете изучить различные способы применения циклов в RobotFramework

FOR

Стандартный цикл по перебору целых чисел

*** Settings *** Documentation An example of the for loop *** Tasks *** Numeric For ${i}= Set Variable 0 FOR ${i} IN RANGE 51 Log To Console ${i} END

robot loop.robot

============================================================================== Loop :: An example of the for loop ============================================================================== Numeric For .0 1 2 … 49 50 Numeric For | PASS | ------------------------------------------------------------------------------ Iloop :: An example of the for loop | PASS | 1 task, 1 passed, 0 failed ============================================================================== Output: /home/andrei/src/tests/robot/src/tests/output.xml Log: /home/andrei/src/tests/robot/src/tests/log.html Report: /home/andrei/src/tests/robot/src/tests/report.html

С помощью IN RANGE можно задать начальное и конечное значение интервала

FOR ${i} IN RANGE 50 59

Перебор списка

Рассмотрим пример перебора велосипедных брендов из списка : Stels , Forward , Author , Trek

*** Settings *** Documentation Regular loop over list *** Variables *** @{BIKES}= Stels Forward Author Trek *** Tasks *** Break out of the for loop on condition FOR ${bike} IN @{BIKES} Log To Console \n${bike} END

robot loop.robot

============================================================================== Loop :: Regular loop over list. ============================================================================== Regular loop over list Stels Forward Author Trek ------------------------------------------------------------------------------ Loop :: Regular loop over list | PASS | 1 task, 1 passed, 0 failed ============================================================================== Output: /home/andrei/src/tests/robot/src/tests/output.xml Log: /home/andrei/src/tests/robot/src/tests/log.html Report: /home/andrei/src/tests/robot/src/tests/report.html

Выход из цикла

Рассмотрим тот же пример, но с дополнительным условием на выход из цикла.

*** Settings *** Documentation An example breaking out of the for loop based on some condition. *** Variables *** @{BIKES}= Stels Forward Author Trek *** Tasks *** Break out of the for loop on condition FOR ${bike} IN @{BIKES} Exit For Loop If $bike == 'Author' Log To Console \n${bike} END

robot loop.robot

============================================================================== Loop :: An example breaking out of the for loop based on some condition. ============================================================================== Break out of the for loop on condition Stels Forward Break out of the for loop on condition | PASS | ------------------------------------------------------------------------------ Loop :: An example breaking out of the for loop based on some cond... | PASS | 1 task, 1 passed, 0 failed ============================================================================== Output: /home/andrei/src/tests/robot/src/tests/output.xml Log: /home/andrei/src/tests/robot/src/tests/log.html Report: /home/andrei/src/tests/robot/src/tests/report.html

WHILE

Начиная с пятой версии Robot Framework из коробки доступен цикл WHILE

*** Settings *** Documentation An example of while loop *** Tasks *** WHILE: zero to fifty ${x}= Set Variable ${0} WHILE ${x} < 51 Log To Console ${x} ${x}= Evaluate ${x} + 1 END

robot loop.robot

============================================================================== Iloop :: An example of while loop ============================================================================== WHILE: zero to fifty .0 1 2 … 49 50 WHILE: zero to fifty | PASS | ------------------------------------------------------------------------------ Iloop :: An example of while loop | PASS | 1 task, 1 passed, 0 failed ============================================================================== Output: /home/andrei/src/tests/robot/src/tests/output.xml Log: /home/andrei/src/tests/robot/src/tests/log.html Report: /home/andrei/src/tests/robot/src/tests/report.html

Пример с конкатенацией строк

*** Settings *** Documentation An example of while loop *** Tasks *** WHILE: zero to fifty ${x}= Set Variable ${0} WHILE ${x} < 51 Log To Console ${x} ${name}= Catenate name${x} Log To Console ${name} ${x}= Evaluate ${x} + 1 END

Цикл с условием внутри

Внутри цикла можно пользоваться условными операторами

Например, выделим чётные числа

*** Settings *** Documentation Searching for even values *** Tasks *** Look for even ${i}= Set Variable 0 FOR ${i} IN RANGE 7 Log To Console ${i} IF ${i % 2} == 0 Log To Console "i is even" Sleep 1 END END

robot ex.robot

============================================================================== Ex :: Searching for even values ============================================================================== Look for even .0 "i is even" 1 2 "i is even" 3 4 "i is even" 5 6 "i is even" Look for even | PASS | ------------------------------------------------------------------------------ Ex :: Searching for even values | PASS | 1 task, 1 passed, 0 failed ============================================================================== Output: /home/andrei/robot/output.xml Log: /home/andrei/robot/log.html Report: /home/andrei/robot/report.html

Похожие статьи
Robot Framework
Основы
Архитектура
RFBrowser
Переменные: set, reassign…
if else: Условные операторы
in: Оператор принадлежности к списку
Циклы
Перенос на новую строку
[Tags]: теги
Collections: списки, словари
JSON
Передача аргументов в кейворд
Evaluate
Поддержка Robot в PyCharm
Ошибки
Список открытых API

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

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

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

@aofeed

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

@aofeedchat

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