1. 程式人生 > >RobotFramework自動化測試框架(2)- RobotFramework語法

RobotFramework自動化測試框架(2)- RobotFramework語法

  • RobotFramework測試用例是由四部分組成的,下面就從這四個部分簡單介紹語法:
  • 關鍵字表 *** Keywords ***
  • 設定表 *** Settings ***
  • 變量表 *** Variables ***
  • 測試用例表 *** Testcases ***

 

1、關鍵字表

關鍵字表是幹什麼用的?

組合已有的關鍵字(包括庫關鍵字和其他使用者關鍵字)來建立新的高層次的關鍵字,也就是使用者關鍵字。因此,關鍵字表是存放使用者關鍵字的

使用者關鍵字的組成:

1、使用者關鍵字的名稱

應該具備描述性,使用很長的關鍵字名稱也是可以的。

2、使用者關鍵字的設定項

  • 使用者關鍵字的文件:通過 [Documentation] 設定。在關鍵字文件的開始部分使用 *DEPRECATED* 可以標記該使用者關鍵字已經不建議使用,如果使用則會觸發一個警告。
  • 使用者關鍵字的標籤:通過 [Tags] 設定。帶 robot- 字首的標籤名將作為保留。普通使用者需避免使用 robot- 字首的標籤。
  • 使用者關鍵字的引數:通過 [Arguments] 設定。引數名稱的語法格式和變數一樣,如 ${arg}

下面是使用者關鍵字的引數說明:

  1. 首先是 [Arguments],後面是宣告的引數名稱。每個引數佔一個單元格,引數名稱的語法格式和變數一樣。
  2. 當關鍵字被呼叫時,需要傳遞和此處定義相同數量的引數。
  3. 引數的名稱推薦使用小寫字母作為名稱,如:${my_arg},${my arg} 或 ${myArg}。
  4. 為引數新增預設值只需要在引數名後面跟上等號(=),然後跟上預設值即可。例如 ${arg}=default。
  5. 可以為多個引數指定預設值,指定預設值的引數必須跟在普通的位置引數後面。
  6. 預設值的語法是對空格敏感的。等號 = 前面不允許有空格,而等號後面的空格則被視作預設值的一部分。
  7. 只需在關鍵字的引數簽名中使用列表變數如 @{varargs} 作為引數宣告。
  8. 同時不定數量的引數可以和預設值引數混用,前面的引數先進行匹配,列表引數最終接受所有剩餘的引數,數量可以是0個到任意個。
  9. 只需在引數列表的最後,在位置引數和任意數量引數的後面,使用字典變數,如 &{kwargs}。
  10. 當該關鍵字被呼叫時,前面沒有被匹配的 命名引數 都會傳遞給該引數。
  • 使用者關鍵字返回值:通過 [Return] 設定。

最常見的情況是使用者關鍵字返回一個值,並且賦值給一個標量變數。直接將返回值放在 [Return] 設定後面的單元格內。
使用者關鍵字還可以返回多個值,這些值可以一次性賦給多個標量、或者一個列表變數、或者兩者混合。多個值只需依次跟在 [Return] 後面的單元格中即可。

  • 使用者關鍵字的 Teardown:通過 [Teardown] 設定 。

teardown 在當前關鍵字執行失敗時也會被呼叫。此外,teardown 內的所有步驟都會執行到,即使其中某個步驟失敗。不過,teardown 的失敗會導致當前用例執行失敗,並且該用例餘下的步驟將不再執行。

例子:

1 *** Keywords ***
2 f1
3     [Documentation]    Demo
4     [Tags]    one    two
5     [Arguments]    ${a}    ${b}=default value
6     Log    ${a}+${b}    
7     [Return]    ${a}
8     [Teardown]    Log    ${b}

3、呼叫的其他關鍵字

也就是,已有的關鍵字(包括庫關鍵字和其他使用者關鍵字)。

 

2、設定表

作用:

匯入普通標準庫:Library

匯入遠端庫:Library

匯入資原始檔:Resource

匯入變數檔案:Variables

匯入擴充套件測試庫:Library

1 *** Settings ***
2 Library    Selenium2Library
3 Library    OperatingSystem    
4 Library    Remote    http://200.200.131.126:8080/RPC2    WITH NAME    a1
5 Resource    a.robot
6 Variables    ../robot_xml.py
7 Library    b 

 

3、變量表

作用:

建立變數

變數的分類:

注意:變數是不區分大小寫的,同時,其中的下劃線和空格也會被忽略。

  1. 標量變數:${SCALAR}。$:表示標量變數的識別符號,{ }:一對花括號,SCALAR:變數名。
  2. 列表變數:@{LIST}。@:表示列表變數的識別符號,{ }:一對花括號,LIST:變數名。
  3. 字典變數:&{USER}。&:表示字典變數的識別符號,{ }:一對花括號,USER:變數名。
1 *** Variables ***
2 ${aa1}    2
3 ${NAME}    Robot Framework
4 @{NAMES2}    @{NAME}    Seppo
5 &{MANY}     first=1     second=${2}    ${3}=third

 

4、測試用例表

作用:

編寫測試用例

構成:

1、測試用例名稱:

位於測試用例表格的第一列。一個用例始於測試用例名,直到遇到下一個用例名,或者到表格的結束。

2、關鍵字名稱:

一般情況下位於第二列。不論關鍵字名稱位於第幾列,跟在其後的列包含的是要傳遞給該關鍵字的引數。

3、測試用例配置項:

每個測試用例都可以有自己的相關設定。設定項的名稱使用方括號([])括起來,以區別於關鍵字。

下面列出了可設定的配置項:

測試用例文件([Documentation])

為用例設定一段文件說明。這個說明會顯示在命令列的輸出中,以及後續的測試日誌和測試報告中。

測試用例標籤([Tags])

一個測試套件中的用例標籤必須唯一。 

測試用例前(後)置條件([Setup] / [Teardown])

  • 有兩種設定方法:
  1. 在測試用例檔案的設定表中設定Test Setup 和 Test Teardown。這種情況下,該檔案中的所有測試用例都會使用該前(後)置條件。
  2. 對單個測試用例通過設定 [Setup]、[Teardown]設定前(後)置條件。
  • 注意事項:
  1. 在Robot Framework中,setup和teardown都是帶引數的普通關鍵字而已,並且各自只能指定一個關鍵字。如果涉及到多個步驟,只能創造一個更高層的 user keywords。
  2. Setup在測試用例之前執行,Teardown在測試用例之後執行。Teardown在以下兩個方面比較特殊:首先,它在測試用例執行失敗的時候也會被執行,所以常常用來作為測試環境的清理工作。其次,teardown中所有的關鍵字都會被執行,哪怕其中有的執行失敗。
  3. 如果用例單獨設定了 [Setup] 或 [Teardown],則會覆蓋檔案中的 Test Setup 或 Test Teardown。進而可以為 [Setup] 或 [Teardown]設定空值(空格或 NONE),表示當前用例沒有前(後)置條件,即使測試檔案設定表中已有設定。

測試用例模板([Template])

  • 有兩種設定方法:
  1. 在測試用例檔案的設定表中設定 Test Template。這種情況下,該檔案中的所有測試用例都會應用該模板。
  2. 對單個測試用例通過設定 [Template] 指定一個模板。
  • 注意事項:
  1. 如果一個模板用例的內容有多行資料,該模板會逐行應用於這些資料。也就是說,該模板關鍵字會被呼叫多次,每次使用其中一行的資料作為引數。如果用例單獨設定了 [Template],則會覆蓋檔案中的 Test Template。進而可以為 [Template] 設定空值(空格或 NONE),表示當前用例沒有模板,即使測試檔案設定表中已有設定。
  2. 模板測試用例在執行過程中,如果有某一輪次執行失敗也不會影響下面輪次繼續執行。
  3. 當模板中使用了嵌入式的引數,模板關鍵字中引數的個數必須和傳入的引數個數一致,但是引數的名稱不一定非要和原關鍵字保持一致。甚至還可以新增或減少引數。

需要注意的是:

在測試用例中使用的變數,必須宣告。

 

1 *** Testcases ***
2 Test1
3     [Documentation]    Demo2
4     [Tags]    ooo
5     [Setup]    ${aa1}
6     [Teardown]    ${mn}
7     [Timeout]    20
8     Should Be Equal As Integers    ${aa1}    2