51Testing软件测试论坛
标题:
Robot Framework使用For循环
[打印本页]
作者:
一月蔷薇_456
时间:
2018-4-13 14:31
标题:
Robot Framework使用For循环
1.普通的For循环
在一个普通的For循环中,循环开始的关键字是 :FOR ,其中的:用于与一般关键字做区分,对于循环结构体
内的每一行,使用 \ 作为改行的行首关键字。对于循环中的变量,可以在 IN 关键字后给出所有变量,也可以
从一个列表中进行赋值,每次循环从列表中取出一个值。例如:
1)给出所有变量
[attach]113431[/attach]
2)从列表中进行赋值
[attach]113432[/attach]
执行测试用例,输出结果为:
[attach]113433[/attach]
2.嵌套循环
Robot Framework本身并不支持直接使用嵌套循环,但是可以通过在一个循环结构中使用另一个包含有循环结
构的关键字来实现。例如
*** Keywords ***
Handle Row
[Arguments] @{row}
: FOR ${cell} IN @{row}
\ log ${cell}
Handle Table
[Arguments] @{table}
: FOR @{row} IN @{table}
\ Handle Row @{row}
在使用时,调用Handle Table,Handle Table再调用内层循环Handle Row,从而实现嵌套循环的目的。
3.For-in-range循环
除了针对序列的循环之外,有些时候还需要能够进行特定迭代次数的循环。Robot Framework中通过FOR
index IN RANGE limit来实现,其语法与Python中的使用方式相似。
1)只使用数据上限
只使用数据上限时,数据从0开始,每次+1,数据从0直到指定数据,但不包含该数据。例如:
[attach]113434[/attach]
输出结果为0、1、2、3、4、5、6、7、8、9,数据从0开始至9结束,输出结果不包含10.
2)使用开始和结束数据
使用开始和技术数据时,数据从“开始数据”开始,每次+1,至“结束数据”结束,但不包含结束数据。例如:
[attach]113435[/attach]
输出结果为2、3、4、5、6、7、8、9、10,数据从2开始至10结束,输出结果不包含11.
[attach]113436[/attach]
3)使用开始、结束、步长
使用 开始、结束、步长 时,数据从“开始数据”开始,每次+“步长数据”,至“结束数据”结束,但不包含
结束数据。例如:
[attach]113437[/attach]
输出结果为2、5、8,数据从2开始至11结束,每次累加3,输出结果不包含11.
[attach]113438[/attach]
4.For-in-enumerate循环
有些时候需要知道当前循环中的循环位置的index编号,此时可以使用FOR index ... IN ENUMERATE ...关
键字。在取index编号时,固定使用 ${index} 作为变量名,例如
[attach]113439[/attach]
运行结果为
[attach]113440[/attach]
5.多变量循环
与python中的for循环类似的是,当列表中的变量数量可以被一定数量整除时,可以直接使用等于该数量
的变量做循环。例如
[attach]113441[/attach]
6.For-in-zip 循环
对于有些测试来说,可能会用到多个列表的数据,在循环中需要对这些数据进行组合使用。Robot Frame
work提供了一个叫做For-in-zip的关键字,该关键字来自于python内置的zip函数,可用于对列表进行组合。
例如
[attach]113442[/attach][attach]113445[/attach]
这里注意,我们在定义一个列表变量时,可以使用${列表名},也可以使用@{列表名},而在for-in-zip循
环中使用该关键字时,只能使用${列表名}。执行测试用例,结果如下:
[attach]113441[/attach]
7.跳出循环
一般来说一个循环结构的用例需要遍历完所有数据后再退出。某些情况下,需要提前终止并跳出循环时,
可以使用Exit For Loop 或者 Exit For Loop If。例如
[attach]113442[/attach]
或是使用
[attach]113443[/attach]
执行测试用例,输出结果为:
[attach]113444[/attach]
8.在循环中使用continue
有些时候,需要在循环中使用continue来跳过循环结构体中的某些过程。在Robot Framework中,可
以使用Continue For Loop 或者 Continue For Loop If。具体用法与跳出循环时的Exit用法一致,这里
不再做演示。
9.重复执行单一关键字
某些情况下,循环结构可能只需要对一个关键字做执行次数的循环。Robot Framework提供了一个关
键字Repeat Keyword,只需指明循环次数和循环中的关键字即可。而在描述循环次数时,有时为了让
测试用例易于理解,可以在次数后面添加一个times 或 x 例如:
[attach]113445[/attach]
作者:
梦想家
时间:
2018-5-9 16:33
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2