LightBlue Essay

Technical ● Life Insight

DevOps, Programming

Robot Framework – 屬於全人類的自動化測試框架

Robot Framework 是一個基於python的自動測試框架,藉由語意化的 keyword  讓非工程人員也可以輕鬆兜出自己需要的 test case 。

基本上 Robot framework 的程式碼分為四部分:

  • Settings: 設置整個 Test Suite 的相關資訊及使用的 library 等等,也可以用 resource 來引入自己寫的 robot 檔案,單行註解以 # 開頭
*** Settings ***
Documentation    A hello world test suite for Shiyanlou
...              Just output some message on console
Library          String
#Resource keyword.robot
  • Variable:此區域中可以定義變量,如果在 Keywords 或是 Test Cases 區域中就得用  Set Variable 關鍵字,可定義一般數字、字串或 Dictionary (字典)。特别要注意的是 Robot Framework 變量不分大小寫及底線,${showMessage}${show_message}${Show_Message}都代表相同的变量。
*** Variables ***
${ACTION}    hi
@{MESSAGES}  world    shiyanlou
  • Keywords:關鍵字設計為 Robot Framework 的核心,可在關鍵字中帶入其他關鍵字堆疊出複雜的效果,類似函數的概念,[Arguments] 可帶入變量,而 [Return] 可將變量回傳。
*** Keywords ***
Print Welcome Message
    [Arguments]       ${act}    ${message}
    Log To Console    ${act}    ${message}!!
    [Return]    Success
  • Test Cases:測試案例一般依照 User Story 撰寫,一如驗收系統功能的精神在於不明白系統的介面及實作細節前提下,用戶一樣知道系統該做什麼,該得到什麼回饋。因此把系統功能步驟以自然語言的描述方式留在 test case 層級,實作細節留在 Keywords 或 Library ,並把常用的實作細節抽出來重複引用。注意 Test Case 是循序由上執行到下,所以 Test Case 之間的狀態跟資料會影響測試結果。下方的例子利用迴圈訪問 @{MESSAGES} 並將變量傳到 Print Welcome Message,最后將結果輸出到 Console。Test Case 名稱允許非ascii字元,甚至支援中文!
*** Test Cases ***
應該看到歡迎訊息
    :FOR  ${message}  IN   @{MESSAGES}
    \    ${result} =    Print Welcome Message    ${action}    ${message}
    \    Log To Console    Result: ${result}

 

[工商時間] 基本的架構講解到此,我在實驗樓開了課程,大家可以在這個教學平台藉由VM動手實戰,歡迎大家加入 Robot Framework自动化测试基础实战课程

 

 

 

 

 

Facebook Comments

Theme by Anders Norén