Robot Framework 循环

RF:FOR 来实现循环没有 While 循环,对应的文档解释在这里

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#for-loops
备注:我也不知道出了什么bug,直接点链接跳不过去,大家自己复制链接打开

Framework循环的写法是这样写的:

*** Settings ***
Library  mylib3

*** Test Cases ***

Example 1
    :FOR    ${animal}  IN   猫   狗  猪
    \    Log To Console    ${animal}
    \    Log To Console    第二行
    Log To Console   循环外面

注意::FOR 前面要加个冒号后面的写法跟 python 很像用 IN,注意 IN 要大写,:FOR 里面的 ${animal} 变量依次代表猫狗猪然后取出里面的每一个元素然后去执行,python 里面循环体要缩进 Robot Framework 也要缩进,大家看到他的缩进前面加了个 \ ,这个 \ 在这里表示另起一个单元格的意思,for 循环体内的语句, 要缩进一个单元格, 如果是纯文本文件, 连续的空格是无法表示多个单元格的,RF 会只当成一个。 所以前面还要有一个反斜杠转义,表示这边有一个空的单元格。

我们这里固定写了循环,我们在运行的时候实际上很多循环取出来的内容通常是一个变量,比如我们上面 returnlist 就是一个变量,具体返回什么我们不知道,要看这个函数实际执行的结果。

*** Settings ***
Library  mylib3

*** Test Cases ***

遍历list变量
    ${list}=     returnlist
    :FOR    ${index}    IN   @{list}
    \    Log To Console    ${index}

具体循环多少次我们不知道,把它存在一个变量里,然后我们用 :FOR ${index} IN @{list} 循环,这个 ${index} 变量会依次取出 @{list} 里面的元素,注意:FOR 循环取出变量的时候,这个 $ 符一定变成 @,不要用 $ 这里要注意。

如果这里返回的是一个字典就用 & 符号。我们执行起来看一下,就是 123

Robot Framework 循环_第1张图片
image.png

我们讲了 for 循环不得不想到一个内置函数 rangeRobot Framework也是有range 的,他的用法我们可以看一下它的官方文档。

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#id578
备注:我也不知道出了什么bug,直接点链接跳不过去,大家自己复制链接打开

打开之后点击 For loops

Robot Framework 循环_第2张图片
image.png

这里面我们上面说的语法它都有。


Robot Framework 循环_第3张图片
image.png

我们看一下 RANGE 的语法,其实也没什么好了解的,就是 :FOR IN 改成 :FOR IN RANGE 然后后面加上一个数字,就是重复多少次。

Robot Framework 循环_第4张图片
image.png
*** Settings ***
Library         mylib3.py

*** Test Cases ***
range用法
    [Documentation]    Loops over values from 0 to 9
    :FOR    ${index}    IN RANGE    10
    \    log to console    ${index}

一次取出的是0~9。


Robot Framework 循环_第5张图片
image.png

取出1~10

*** Settings ***
Library         mylib3.py

*** Test Cases ***
range用法
    [Documentation]    Loops over values from 1 to 10
    :FOR    ${index}    IN RANGE    1   11
    \    log to console    ${index}
Robot Framework 循环_第6张图片
image.png

加步长,比如说5 30 10,步长为10,打印出来就是 5、15和25

*** Settings ***
Library         mylib3.py

*** Test Cases ***
range用法
    [Documentation]    Loops over values from 0 to 9
    :FOR    ${index}    IN RANGE    5   30      10
    \    log to console    ${index}
Robot Framework 循环_第7张图片
image.png

我刚看了官方文档好像 :For 循环前面的冒号和 / 好像都不用加了,感兴趣的去研究一下新的语法。

你可能感兴趣的:(Robot Framework 循环)