Robot Framework使用循環


1.普通的For循環
在一個普通的For循環中,循環開始的關鍵字是 :FOR ,其中的:用於與一般關鍵字做區分,對於循環結
構體內的每一行,使用 \ 作為改行的行首關鍵字。對於循環中的變量,可以在 IN 關鍵字后給出所有變量,
也可以從一個列表中進行賦值,每次循環從列表中取出一個值。例如:
1)給出所有變量
 
 
2)從列表中進行賦值
執行測試用例,輸出結果為:

 

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直到指定數據,但不包含該數據。例如:
輸出結果為0、1、2、3、4、5、6、7、8、9,數據從0開始至9結束,輸出結果不包含10.
2)使用開始和結束數據
使用開始和技術數據時,數據從“開始數據”開始,每次+1,至“結束數據”結束,但不包含結束數據。
例如:
輸出結果為2、3、4、5、6、7、8、9、10,數據從2開始至10結束,輸出結果不包含11.
3)使用開始、結束、步長
使用 開始、結束、步長 時,數據從“開始數據”開始,每次+“步長數據”,至“結束數據”結束,但不
包含結束數據。例如:
輸出結果為2、5、8,數據從2開始至11結束,每次累加3,輸出結果不包含11.
 
4.For-in-enumerate循環
有些時候需要知道當前循環中的循環位置的index編號,此時可以使用FOR index ... IN ENUMERATE ...關
鍵字。在取index編號時,固定使用 ${index} 作為變量名,例如
運行結果為

 

5.多變量循環
與Python中的for循環類似的是,當列表中的變量數量可以被一定數量整除時,可以直接使用等於該數量的
變量做循環。例如

 

 

6.For-in-zip 循環
對於有些測試來說,可能會用到多個列表的數據,在循環中需要對這些數據進行組合使用。Robot
Framework提供了一個叫做For-in-zip的關鍵字,該關鍵字來自於python內置的zip函數,可用於對列表進
行組合。例如

 

 

 

這里注意,我們在定義一個列表變量時,可以使用${列表名},也可以使用@{列表名},而在for-in-zip循環
中使用該關鍵字時,只能使用${列表名}。執行測試用例,結果如下:

 

 

7.跳出循環
一般來說一個循環結構的用例需要遍歷完所有數據后再退出。某些情況下,需要提前終止並跳出循環時,
可以使用Exit For Loop 或者 Exit For Loop If。例如

 

 

執行測試用例,輸出結果為:  

 

 

8.在循環中使用continue
有些時候,需要在循環中使用continue來跳過循環結構體中的某些過程。在Robot Framework中,可以使
用Continue For Loop 或者 Continue For Loop If。具體用法與跳出循環時的Exit用法一致,這里不再做
演示。
 
9.重復執行單一關鍵字
某些情況下,循環結構可能只需要對一個關鍵字做執行次數的循環。Robot Framework提供了一個關鍵字
Repeat Keyword,只需指明循環次數和循環中的關鍵字即可。而在描述循環次數時,有時為了讓測試用例
易於理解,可以在次數后面添加一個times 或 x 例如

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM