在机器人框架中循环

时间:2014-10-14 00:02:19

标签: robotframework

我想在Robot框架中替换几个变量来重复类似的命令。可以请你建议我怎么做?

以下是示例代码:

variable1 = ['abc']
varaible2 = ['123','456']

|    | Run Keyword And Continue On Failure | testing | ${variable1} | ${variable2} | ${GetVal} | ${Check} |

variable3 = ['xyz']
varaible2 = ['678','789']

|    | Run Keyword And Continue On Failure | testing | ${variable3} | ${variable4} | ${GetVal} | ${Check} |

6 个答案:

答案 0 :(得分:4)

是机器人框架支持for循环这里是示例

:FOR    ${animal}    IN    cat    dog  
\    Log    ${animal}  
\    Log    2nd keyword  
Log    Outside loop


更多示例请通过此链接

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#for-loops

答案 1 :(得分:2)

Robot框架提供带有特殊关键字:FOR的“for”循环(请参阅用户指南中的For Loops

| | :FOR | ${v2} | IN | @{variable2}
| | | Run keyword and continue on failure
| | | ... | testing | ${variable1} | ${v2} | ${GetVal} | ${Check}

请注意,循环体有一个额外的缩进级别。

如果要进行嵌套循环,则需要为嵌套循环创建单独的关键字。编写一个完成所有循环和逻辑的python关键字变得非常容易,因为机器人实际上并不是一个通用的编程语言。

答案 2 :(得分:0)

这是一个循环给定数字的例子

 : FOR    ${INDEX}    IN RANGE       200    
        \    Log To Console             ${INDEX}

答案 3 :(得分:0)

其他答案非常擅长解释如何在Robot Framework中编写一个简单的FOR循环,因此这为您的信息增加了清晰度。

首先,假设已经在其他地方定义了各种未知变量,那么您要求的代码如下:

*** Test Cases ***
Do Your Test
    :FOR    ${INDEX}  IN RANGE    ${INCLUSIVE_STARTING_INDEX1}     ${EXCLUSIVE_ENDING_INDEX1}
    \   Run Keyword and Continue On Failure     testing    ${variable1}    ${variable2}    ${GetVal}   ${Check}
    :FOR    ${INDEX}  IN RANGE    ${INCLUSIVE_STARTING_INDEX2}     ${EXCLUSIVE_ENDING_INDEX2}
    \   Run Keyword and Continue On Failure     testing    ${variable3}    ${variable4}    ${GetVal}   ${Check}

其次,我需要澄清机器人框架中的FOR循环关键字。它们是语言中最基本层面的独特实体。我通过花费数小时深入研究代码来学习这一点,试图弄清楚如何编写可嵌套的For循环。为了节省您的尝试工作,不是没有在Python中编写您自己的自定义关键字。

另外,我应该指明我冒昧地假设你在你的问题中做了一些拼写错误,并且你在其他地方写的个性化关键词“测试”接受列表对象作为它的第二个输入变量。如果这不正确,请告诉我,我会给你一个更准确的答案。

答案 4 :(得分:0)

如果只需要一个循环,则可以使用

:FOR    ${iTemp}    IN    @{listOfStudents}
 \    Log    ${iTemp}  
 \    Log    GO_ON. 

但是您不能在循环内进行循环 为此,您应该使用类似以下的关键字

First Loop
   :FOR    ${i}    IN    @{listOfStudents}
   \    Log    ${i}  
   \    Log    OutSide Loop

Outside Loop
   :FOR    ${j}    IN    @{ListOfSubject}  
   \    Log    ${j}  
   \    Log    new Kewords.

这就是在Robot Framework中使用循环的方式

想法

答案 5 :(得分:0)

For loop syntax was enhanced in Robot Framework 3.1. New syntax is as follows:

*** Test Cases ***
Example
    FOR    ${animal}    IN    cat    dog
        Log    ${animal}
        Log    2nd keyword
    END
    Log    Outside loop

Second Example
    FOR    ${var}    IN    one    two    ${3}    four    ${five}
    ...    kuusi    7    eight    nine    ${last}
        Log    ${var}
    END