自动化测试过程中,如果我们想多次运行某段语句,且每次使用的值都不一样,那么我们就要使用到循环。
在Robot FrameWork中,循环使用到的关键字是FOR,常用见应用如下。
应用一:
FOR ${变量} IN 参数1 参数2 参数3
参数可以是数字或字符串,FOR必须大写
执行结果:
Starting test: TEST.LogTest.for INFO : 1 INFO : 2 INFO : 3 Ending test: TEST.LogTest.for
执行结果:
Starting test: TEST.LogTest.for INFO : apple INFO : pear Ending test: TEST.LogTest.for
应用二:
FOR ${变量} IN RANGE 初始值 终值(选填) 步长(选填)
执行结果:
Starting test: TEST.LogTest.for INFO : 0 INFO : 1 INFO : 2 Ending test: TEST.LogTest.for 说明:上述两个执行结果一样,从0开始,终值-1结束。
设置步长为:2
执行结果:
Starting test: TEST.LogTest.for INFO : 0 INFO : 2 Ending test: TEST.LogTest.for
应用三:
使用exit for loop 退出循环(类似break),结合run keyword if关键字使用
执行结果:
Starting test: TEST.LogTest.loop INFO : @{list} = [ 1 | 3 | 5 | 7 ] INFO : 1 INFO : 3 INFO : 5 INFO : Exiting for loop altogether. Ending test: TEST.LogTest.loop
为什么用@{list}而不是${list},替换为${list}后的执行结果为
Starting test: TEST.LogTest.loop INFO : ${list} = ['1', '3', '5', '7'] INFO : ['1', '3', '5', '7'] Ending test: TEST.LogTest.loop
应用四:
continue for loop 跳过当前执行下一轮循环,结合run keyword if关键字使用
执行结果:
Starting test: TEST.LogTest.loop INFO : Continuing for loop from the next iteration. INFO : 1 INFO : Continuing for loop from the next iteration. INFO : 3 Ending test: TEST.LogTest.loop
拓展:
Repear Keyword关键字,多次执行指定的关键字,可以设定次数或执行时间
1、执行log关键字2s
执行结果:
Starting test: TEST.LogTest.continue INFO : Repeating keyword, round 1, 2s remaining. INFO :apple INFO : Repeating keyword, round 2, 1s 998ms remaining. INFO : apple INFO : Repeating keyword, round 3, 1s 996ms remaining. INFO : apple 。。。。。。 Ending test: TEST.LogTest.continue
2、执行log关键字两次
执行结果:
Starting test: TEST.LogTest.continue INFO : Repeating keyword, round 1/2. INFO : apple INFO : Repeating keyword, round 2/2. INFO : apple Ending test: TEST.LogTest.continue