关键字通用形式

:FOR ...... IN ...
keyWord
  • 普通for循环

Starting test: 
*  INFO : cat
*  INFO : dog
*  INFO : @{list} = [ abc | efg ]
*  INFO : abc
*  INFO : efg
Ending test:
  • For-in-range循环

Starting test: 
*  INFO : 0
*  INFO : 1
*  INFO : 2
*  INFO : 3
*  INFO : 4
*  INFO : 5
*  INFO : 6
*  INFO : 7
*  INFO : 8
*  INFO : 9
Ending test:

FOR---IN RANGE支持设置开始、结束、步频长,格式为:FOR 循环变量 IN RANGE start end step

Starting test: 
*  INFO : 10
*  INFO : 11
*  INFO : 12
*  INFO : 13
*  INFO : 14
*  INFO : ==================================================
*  INFO : 10
*  INFO : 12
*  INFO : 14
*  INFO : 16
*  INFO : 18
Ending test:
  • For-in-enumerate循环

有些时候需要知道当前循环中的循环位置的index编号,此时可以使用IN ENUMERATE。

Starting test: 
*  INFO : @{list} = [ Tom | May | Miker ]
*  INFO : 0+Tom
*  INFO : 1+May
*  INFO : 2+Miker
Ending test:

另外,IN ENUMERATE支持多变量循环,当循环体变量能够被变量值整除时,可以使用该特性。

Starting test: 
*  INFO : 0+a+b+c
*  INFO : 1+bird+cat+dog
*  INFO : 2+Tom+May+Miker
Ending test:
  • For-in-zip 循环

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

即多个LIST组合使用一个for循环,注意,此处循环体中需要将list变量用scalar形式。

Starting test: 
*  INFO : @{animalList} = [ bird | cat | dog ]
*  INFO : @{nameList} = [ Tom | May | Miker ]
*  INFO : animal: bird
*  INFO : name: Tom
*  INFO : animal: cat
*  INFO : name: May
*  animal: dog
*  name: Miker
Ending test:
  • 嵌套循环

Robot Framework的for 循环本身不支持嵌套循环,但可以通过封装关键字进行嵌套循环。

Test Case:

User keyword:

result:

Starting test: 
*  INFO : @{animalList} = [ bird | cat | dog ]
*  INFO : @{nameList} = [ Tom | May | Jack ]
*  INFO : @{list} = [ [u'bird', u'cat', u'dog'] | [u'Tom', u'May', u'Jack'] ]
*  INFO : 0
*  INFO : bird
*  INFO : cat
*  INFO : dog
*  INFO : 1
*  INFO : Tom
*  INFO : May
*  INFO : Jack
Ending test:
  • 跳出循环

一般来说一个循环结构的用例需要遍历完所有数据后再退出。某些情况下,需要提前终止并跳出循环时,可以使用Exit For Loop 或者 Exit For Loop If

Starting test: 
*  INFO : @{animalList} = [ bird | cat | dog ]
*  INFO : @{nameList} = [ Tom | May | Jack | Jone ]
*  INFO : bird
*  INFO : Exiting for loop altogether.
*  INFO : Tom
*  INFO : May
*  INFO : Exiting for loop altogether.
Ending test:
  • 循环内continue跳过

有些时候,需要在循环中使用continue来跳过循环结构体中的某些过程。在Robot Framework中,可以使用Continue For Loop 或者 Continue For Loop If

Starting test: 
*  INFO : @{animalList} = [ bird | cat | dog ]
*  INFO : @{nameList} = [ Tom | May | Jack | Jone ]
*  INFO : bird
*  INFO : Continuing for loop from the next iteration.
*  INFO : dog
*  INFO : Tom
*  INFO : May
*  INFO : Continuing for loop from the next iteration.
*  INFO : Jone
Ending test:
  • Repeat Keyword 关键字循环

某些情况下,循环结构可能只需要对一个关键字做执行次数的循环。Robot Framework提供了一个关键字Repeat Keyword,只需指明循环次数和循环中的关键字即可。而在描述循环次数时,有时为了让测试用例易于理解,可以在次数后面添加一个times 或 x。

results matching ""

    No results matching ""