Robot Framework(13)- RF 循環的詳細使用
- 2020 年 5 月 29 日
- 筆記
- Robot Framework, 測試高級進階技能系列 - Robot Framework
如果你還想從頭學起Robot Framework,可以看看這個系列的文章哦!
//www.cnblogs.com/poloyy/category/1770899.html
前言
- RF用 :FOR 或 FOR 來實現循環,沒有 While 循環
- :FOR 是過時的循環寫法,建議寫 FOR
FOR 的栗子
忽略爆紅,因為新的 FOR 關鍵字,插件還不能識別
測試結果
知識點
- 如果 IN 後面跟的是一個 List 變數,必須用 @{list} 的格式哦!
- 循環體內的語句需要縮進兩個空格以上
- 如果 IN 後面接的值太多,可以換行,需要通過 … 來表示接著上一行的內容
- 注意: FOR 和 IN 都不能小寫哦
:FOR 舊格式循環的栗子
可以看到沒爆紅啦,因為插件只支援舊格式…
測試結果
知識點
- 和 FOR 不同,不需要在循環結束後寫 END
- 但重點來了:循環體內,每一行開頭都需要寫 \ 【因為在RF 3.2 中, :FOR 不再起作用,如果要支援舊格式,就需要 \ 進行轉義】
- 注意::FOR 可以小寫,但是 IN 不可以(官網說 IN 也可以小寫,但是試了一遍不可以哦)
range 的用法
在Python 中,我們有常用的 range() 方法,RF 也有類似的用法
測試結果
enumerate 的用法
在 Python 中,有 enumerate() 函數,遍歷列表時可以追蹤每個元素的索引位置;在 RF 中通過 IN ENUMERATE 關鍵字來實現類似的效果
測試結果
知識點
- IN ENUMERATE 是連在一起用的哦,中間最多一個空格,並且是大小寫敏感的,不可以寫成小寫!
- 使用 IN ENUMERATE ,需要用單獨的一個變數去接住索引值,如 ${index}
- 如果只用一個變數的話(如第三個栗子),那麼每次循環返回的就是一個列表,第一個元素就是索引值,可以通過下標 [0] 去獲取;後面的值就是列表的值
遍歷 Dict 變數
測試結果
知識點
- 循環 Dict 變數時,可以通過 ${key} 和 ${value} 分別獲取每次循環的鍵和值
- IN ENUMERATE 也可以獲取鍵值對的索引值,但起始值是 1
栗子二:只用一個 ${item} 來獲取鍵值對
測試結果
知識點
- 如果只用一個 ${item} 變數來獲取鍵值對的話,它將是一個鍵值對列表(只有兩個值), ${item}[0] 是鍵, ${item}[1] 是值
- 再加上 IN ENUMERATE 的話,它就是一個索引+鍵值對列表(有三個值), ${item}[0] 是索引值
退出循環的栗子
相當於 Python 裡面的 break ;退出循環有兩個關鍵字
- exit for loop:強制退出循環
- exit for loop if:有條件的退出循環
測試結果
知識點
- 如果要使用 exit for loop 時,我們可以藉助 run keyword if 或者 run keyword unless
- 凡是關鍵字有 if ,它後面可以直接跟判斷表達式
繼續循環的栗子
相當於 Python 裡面的 continue ;繼續循環有兩個關鍵字
- Continue For Loop
- Continue For Loop If