目錄
目錄
一、RF控制流—if判斷
RF中,IF語句是用 Run Keyword If 來代替的
1.1 語法
Run KeyWord If 判斷條件 其他關鍵字
... ELSE IF 判斷條件 其他關鍵字
...
... ELSE 判斷條件 其他關鍵字
如果給出的條件滿足,就執行給出的關鍵字
1.2 案例
1.2.1 案例1
*** Test Cases ***
...
# 如果要運行的關鍵字有返回值,在控制流語句前面接收
${用戶余額} Run KeyWord If ${res}==1 用戶信息頁面-獲取用戶余額
1.2.2 案例1
*** Settings ***
Force Tags new
*** Test Cases ***
數字比較
@{list1} BuiltIn.Create List 0 10 5
BuiltIn.Run Keyword If ${list1[0]}>${list1[1]} BuiltIn.Log 我贏了
... ELSE BuiltIn.Log 我輸了
字符比較
# 字符比較都需要加上雙引號或者單引號
&{dict1} BuiltIn.Create Dictionary str1=happy str2=unhappy
BuiltIn.Run Keyword If "${dict1.str1}"=="happy" BuiltIn.Log I am happy!
布爾值比較
# 布爾值比較都需要加上雙引號或者單引號
# 注意返回值為None的情況
# 在rf中,布爾值首字母是大寫:True、False
${var1} BuiltIn.Set Variable true
${res} BuiltIn.Run Keyword If "${var1}"=="false" BuiltIn.Log pass
BuiltIn.Log ${res}
BuiltIn.Comment 返回值為None的情況
${value} BuiltIn.Set Variable hello
${value} BuiltIn.Set Variable If "true"=="false" hao ${value}
# 在rf中,如果關鍵字沒有設置返回值,那么就會返回None,如果有返回值,所以上面語句中,
# 最后加了一個${value}作為BuiltIn.Set Variable If關鍵字條件不滿足時的返回值,二
# BuiltIn.Set Variable If的語法為,條件滿足返回第一個值,不滿足返回第二個值
1.3 IF關鍵字使用案例講解
實際項目中,可能需要在不同的測試環境(SIT環境、UAT環境以及生產環境)中跑自動化測試腳本。不同 測試環境所需要准備的測試數據可能不一樣,所以要做到測試數據的分離。在rf命令行啟動過程中,可以通過-v傳入全局的參數,可以在用例中在用例執行前判斷傳入的參數的值,再根據這個值導入不同的資源文件
*** Test Cases ***
BuiltIn.Run Keyword If "${env}"=="SIT" BuiltIn.Import Resource SIT環境測試數據存儲資源文件路徑
... ELSE IF "${env}"=="SIT" BuiltIn.Import Resource UAT環境測試數據存儲資源文件路徑
... ELSE IF BuiltIn.Import Resource UAT環境測試數據存儲資源文件路徑
二、RF控制流—For循環
2.1 單層for循環
2.1.1 語法
第一種語法:
:For 變量 IN 序列(or 列表)
關鍵字 參數值
Exit for loop if 判斷條件
第二種語法:
:For 變量 IN RANGE 循環限量
關鍵字 參數值
Exit for loop if 判斷條件
2.1.2 案例
*** Settings ***
Force Tags A
*** Test Cases ***
從列表或序列中循環取值
[Documentation] 從列表中循環取值
# For IN 從序列或者列表中取值
BuiltIn.Log start
@{myList} BuiltIn.Create List hello world hey
BuiltIn.Comment \表示該for循環的作用域,表示語句是for循環的內容
:FOR ${item} IN @{myList}
\ BuiltIn.Log ${item}
\ # 滿足條件的情況下,退出循環
\ BuiltIn.Exit For Loop If "${item}"=="world"
在一個范圍內循環取值
[Tags] smoke
BuiltIn.Log 只有一個參數,參數為終止值。默認其實為0,默認為+1
:FOR ${index} IN RANGE 5
\ BuiltIn.Log ${index}
# 設置起始值
BuiltIn.Log 設置起始值。第一個參數為起始值,第二個參數為結束值。默認+1
:FOR ${index} IN RANGE 10 15
\ BuiltIn.Log ${index}
BuiltIn.Log 設置步長。第一個參數為起始值,第二個參數為結束值,第三個參數為步長
:FOR ${index} IN RANGE 10 20 2
\ BuiltIn.Log ${index}
2.2 雙層for循環
rf中不支持直接嵌套for循環,如果想要嵌套for循環,需要把內層for循環寫成關鍵字,for寫到外面
2.2.1 語法
外層循環:
:For 變量 IN 序列(or 列表)
內層循環關鍵字 參數值
內層循環關鍵字:
:For 變量 IN RANGE 循環限量
關鍵字 參數值
2.2.2 案例
外層for循環:
*** Settings ***
Force Tags A
Default Tags test tt
Resource ../關鍵字/內層for循環關鍵字.robot
*** Test Cases ***
雙層for循環
BuiltIn.Comment rf中不支持直接嵌套for循環,如果想要嵌套for循環,需要把內層for循環寫成關鍵字,for寫到外面
@{rows} BuiltIn.Create List row1 row2 row3 row4
@{cells} BuiltIn.Create List cell1 cell2 cell3
:FOR ${row} IN @{rows}
\ 內層for循環關鍵字.內層for循環 ${row} @{cells}
內層for循環關鍵字:
*** Settings ***
Library BuiltIn
*** Keywords ***
內層for循環
[Arguments] ${row} @{cells}
:FOR ${cell} IN @{cells}
\ BuiltIn.Log ${cell}