RF中for循环

robotframework支持FOR循环语句,语法和Python的语法基本相同,但robotframework中,“FOR”关键字前面需要增加一个“:”,写成“:FOR”,其它与Python的语法相同。

1.FOR IN

这种结构,循环的次数由“IN”关键字后面的list变量个数控制。示例如下:

 RF中for循环_第1张图片

运行结果:

 RF中for循环_第2张图片

这个例子中,“IN”后面直接写了3个常量,则表示运行三次。每个循环${n}被依次赋予3个常量中的1个。当然“IN”后面也可以写一个List变量,代码修改如下:

 RF中for循环_第3张图片

效果是一样的。

 

2.FOR IN RANGE

这种写法更常用一些。“IN RANGE”后面,跟一个整数型的数字的范围。循环的次数受数字的范围控制。示例如下:

 RF中for循环_第4张图片

运行结果:

 RF中for循环_第5张图片

从结果我们可以看出,${n}的值从3开始,一直被赋值到4,循环2次。“IN RANGE”后面也可以只写一个数字,表示范围的下限默认是0。示例如下:

 RF中for循环_第6张图片

运行结果:

 RF中for循环_第7张图片

以上两种写法,步长默认步长都是1。我们也可以修改步长,示例如下:

 RF中for循环_第8张图片

运行结果:

 RF中for循环_第9张图片

这个例子中的步长为10

 

3.Exit For Loop  退出循环

RF也提供了退出循环的语句——Exit For Loop。遇到这个语句,脚本将无条件提出循环。示例如下:

 

运行结果如下:

20190910 16:03:22.890 :  INFO : @{list} = [ ]

20190910 16:03:23.011 :  INFO : Exiting for loop altogether.

20190910 16:03:23.012 :  INFO : [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50]

 RF中for循环_第10张图片

运行结果如下:

 RF中for循环_第11张图片

${n}被赋值到4,触发了Exit For Loop语句而推出了循环。

 

4.Exit For Loop If   满足条件后退出循环

 

运行结果如下:

20190910 16:03:22.890 :  INFO : @{list} = [ ]

20190910 16:03:23.011 :  INFO : Exiting for loop altogether.

20190910 16:03:23.012 :  INFO : [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50]

 

运行结果如下:

 RF中for循环_第12张图片

 

5.在循环中使用continue,终止单个循环

Continue For Loop If

 

Continue For Loop

 

运行结果都如下:

 

6.For   in enumerate循环

有些时候需要知道当前循环中的循环位置的index编号,此时可以使用FOR index … IN ENUMERATE …关键字。在取index编号时,固定使用 ${index} 作为变量名,例如

 

运行结果为

 RF中for循环_第13张图片

7.For in zip 循环

对于有些测试来说,可能会用到多个列表的数据,在循环中需要对这些数据进行组合使用。Robot Framework提供了一个叫做For-in-zip的关键字,该关键字来自于python内置的zip函数,可用于对列表进行组合。例如

 

这里注意,我们在定义一个列表变量时,可以使用${列表名},也可以使用@{列表名}

而在for-in-zip循环中使用该关键字时,只能使用${列表名}。执行测试用例,结果如下:

 RF中for循环_第14张图片 

你可能感兴趣的:(RF中for循环)