iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0
自我挑戰組

Robot Framework 與 Websocket 協議測試系列 第 3

框架介紹: Robot Framework

  • 分享至 

  • xImage
  •  

適用情境

Robot Framework 在眾多自動化測試工具中,屬於「上層測試編排與管理」的框架,能支援 BDD 等現代專案開發管理框架的需求。核心以 Python 開發,能透過自定義 Library 無限擴充,算是它的強項跟特點。

本體執行以命令列為主,跟各大平台或 CI/CD 系統整合相對容易,並且提供 Step-by-Step 的詳盡測試報告與紀錄,便於後續追蹤與溝通。

官網與範例

Robot Framework 官網 : Robot Framework

經典的 Robot Framework 測試案例長相


*** Settings ***
Documentation     A test suite for valid login.
...
...               Keywords are imported from the resource file
Resource          keywords.resource
Default Tags      positive

*** Test Cases ***
Login User with Password
    Connect to Server
    Login User            ironman    1234567890
    Verify Valid Login    Tony Stark
    [Teardown]    Close Server Connection

Denied Login with Wrong Password
    [Tags]    negative
    Connect to Server
    Run Keyword And Expect Error    *Invalid Password    Login User    ironman    123
    Verify Unauthorised Access
    [Teardown]    Close Server Connection

有感覺到跟一般的程式語言不太一樣嗎? 這就是它巧妙之處,看似普通的純文字下面,隱含的強大的爆發力

外部函式庫

Robot Framework 本身不直接與被測系統互動,而是透過各式 Library 作為介面,連接不同類型的目標系統,例如:

  • 進行 API 測試時,可使用 RequestsLibrary。
  • 進行網頁測試時,可搭配 Selenium 或 Playwright。
  • 測試行動裝置時,可整合 Appium。
  • 若要串接現有的 Airtest 測試方案,也有對應的第三方套件可用。

此外,第三方社群也提供大量延伸套件,熟悉 Python 的開發者也能快速撰寫自訂 Library,擴充專案所需功能。例如後續章節將示範的自訂 WebSocket 函式庫,便是透過此機制融入整體測試流程。

欲知更多函式庫詳情,請看官網:

核心設計理念

與多數程式碼導向的測試框架不同,Robot Framework 以「關鍵字驅動」或「表格式資料驅動」為核心。測試腳本不必大量撰寫程式碼,以可讀性高的文字與表格組合即可描述測試步驟與資料。理論上,只要具備文字編輯工具與基礎測試概念,即可透過關鍵字的組合來建構自動化測試。

*** Test Cases ***
Login User with Password
    Connect to Server
    Login User            ironman    1234567890
    Verify Valid Login    Tony Stark
    [Teardown]    Close Server Connection

Denied Login with Wrong Password
    [Tags]    negative
    Connect to Server
    Run Keyword And Expect Error    *Invalid Password    Login User    ironman    123
    Verify Unauthorised Access
    [Teardown]    Close Server Connection

架構圖

(轉貼自 NRE Labs: NRE Labs | Using Robot Framework for Automated Testing)

實際的內部結構可分為幾個層次:

  1. 測試資料:依照情境或條件,提供對應的輸入與期望結果。
  2. 測試腳本:將下層函式庫的能力以關鍵字組合,形成可重複使用的關鍵字堆疊而成的自動化測試流程。
  3. 執行層:由 Robot Framework 負責執行腳本、紀錄並編排產出報告。

在底層可以看到多個 Test Library,這些 Library 如同轉接器,負責連結不同系統並提供特定能力。
上層則可採用類似 Page Object Model (selenium.dev/documentation/test_practices/encouraged/page_object_models/) 的抽象方式,專注於高階動作與商業邏輯的表達,讓測試腳本維護起來更有結構、復用性更高。

小結

憑藉著獨特的關鍵字驅動、強大的外掛生態與高度擴充性,Robot Framework 對於需要跨系統整合、協作規模較大的專案特別合適。

或許在小型公司或專案中,可能會感受到層次較多、結構偏重、脫褲子放屁等,但在大型專案或需要統一測試腳本管理與報告格式的情境下,「適度官僚」的多層抽象架構設計反而能帶來秩序與效率。這也是選擇它作為本系列實作基礎的主因。


上一篇
大局觀: 系統架構 & AI 協作策略
下一篇
傳輸協議介紹: WebSocket
系列文
Robot Framework 與 Websocket 協議測試10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言