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 作為介面,連接不同類型的目標系統,例如:
此外,第三方社群也提供大量延伸套件,熟悉 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)
實際的內部結構可分為幾個層次:
在底層可以看到多個 Test Library,這些 Library 如同轉接器,負責連結不同系統並提供特定能力。
上層則可採用類似 Page Object Model (selenium.dev/documentation/test_practices/encouraged/page_object_models/) 的抽象方式,專注於高階動作與商業邏輯的表達,讓測試腳本維護起來更有結構、復用性更高。
憑藉著獨特的關鍵字驅動、強大的外掛生態與高度擴充性,Robot Framework 對於需要跨系統整合、協作規模較大的專案特別合適。
或許在小型公司或專案中,可能會感受到層次較多、結構偏重、脫褲子放屁等,但在大型專案或需要統一測試腳本管理與報告格式的情境下,「適度官僚」的多層抽象架構設計反而能帶來秩序與效率。這也是選擇它作為本系列實作基礎的主因。