在過去的章節中我們有提到 Robot Framework 自帶的 log.html
的報告,如果還沒有看過的話,歡迎閱讀這篇,在這個章節將針對測試報告做補充,Robot Framework 提供的原生報告對於開發自動化測試的夥伴來說是已經足夠了,但是當今天我們想要將報告分享跟 RD、PM 或是主管呢?這時候 Robot Framework 原生的 log 就顯得太陽春了,因此當我們今天提到測試報告美化,不得不提起目前受到大家青睞得 Allure,Allure 提供優秀的介面及圖表並且支援許多的程式語言及測試框架,為測試建立起統一的報告,並且 Allure 是開源的!下面我們一起來看看如何在 Robot Framework 中整合 Allure 吧!
官方網站:https://allurereport.org/
Allure 是一個強大的開源報告框架,專門用於生成測試執行報告。它支持多種測試框架,包括 Robot Framework、pytest、Cypress、PHPUnit、Junit5 等。Allure 報告具有直觀的界面,能夠以清晰的方式展示測試結果,從而使開發人員和測試人員能夠輕鬆分析測試數據。
要在 Robot Framework 中生成 Allure 報告,我們首先需要安裝一些必要的工具。
由於 Allure 與一些單純組成測試報告的工具不同,Allure 是透過 Java 進行開發的,因此我們的本地環境需要有 Java,並且與 Robot Framework 自帶的 log.html
的報告不同,當我們今天需要查看 Allure 報告時,會在本地起一個 server 讓我們透過這個服務來訪問報告,因此是否適合團隊就有賴大家閱讀後自行評估了:
我們可以透過 Homebrew 來安裝 Allure:
brew install allure
安裝後可以透過 allure --version
檢查是否安裝成功:
allure --version
# 2.30.0
接著我們需要安裝 Robot Framework adapter ,這個庫提供了將 Robot Framework 測試結果與 Allure 進行集成的功能。
pip3 install allure-robotframework
安裝完後我們便可以執行測試來看看產生的報告的效果囉!
在過去我們觸發的指令為 :robot test/
但是如果要整合 allure_robotframework,我們需要在我們的指令中新增 --listener allure_robotframework
,如下面展示的這樣,--listener
是 Robot Framework 監聽器的用,如果對 Robot Framework 監聽器有興趣的話可以參考前面的章節:
robot --listener allure_robotframework test/
運行後我們會在當前的目錄底下看到產生一個 output/allure
的路徑,這時候我們可以透過以下的指令來查看報告:
allure serve allure-results
運行後我們會被導到瀏覽器中瀏覽報告:
生成報告後,我們可以到各個測試案例的詳細信息,包括:
同時回到剛剛我們啟動報告的終端機我們可以看到以下資訊,下面的資訊跟我們這個 Server 起在哪個環境,以及當我們看完報告後可以透過 Ctrl+C
結束查看。
Generating report to temp directory...
Report successfully generated to /var/folders/ls/zggl28854bd3rqbxgzf90kym0000gn/T/3350409526508158050/allure-report
Starting web server...
2024-09-01 15:56:15.275:INFO::main: Logging initialized @4197ms to org.eclipse.jetty.util.log.StdErrLog
Server started at <http://192.168.0.160:56253/>. Press <Ctrl+C> to exit
這邊分享一個小撇步,如果我們想跟 Robot Framework 自帶的 log.html
的報告一樣,產生一個 html 檔案就好,不想要分享整個資料夾該怎麼辦,這時候我們可以透過下面這個指令:
allure generate --single-file output/allure
執行後便會在當前的目錄底下產生一個 allure-report
的資料夾,裡頭有一個 index.html
的檔案,這時候我們便可以直接開啟這個 index.html
即可。
我們也可以客製化 Allure 報告中的訊息,讓報告更易讀或是符合我們的需求:
Add One ToDos And Check Items
[Tags]
... allure.label.owner:Max
... allure.label.severity:critical
${item_name} = Create Fake Item Name
Input Text Into ToDo ${item_name}
Verify Element Text Should Display Correctly ${Common_TODO_Count_Test} 1 item left!
透過在 Tags 的標籤中加入 allure.label.owner:Max
等資訊,我們在報告中便可以看到這些資訊:
關於有哪些細部的客製化,由於篇幅的原因我們就不一一做介紹了,有興趣的話可以參考官方文件的這兩篇:
通過 Allure 報告,我們可以大幅度提高測試報告的可讀性和可視化效果。這不僅幫助開發人員和測試人員更快地理解測試結果,還能輕鬆發現測試過程中的潛在問題。