在上一個章節,我們執行了我們的第一個 Robot Framework 的測試,並且在終端機上看到了測試的結果,但是當今天測試案例較多較複雜時,不是所有的測試都可以透過終端機的顯示便可以排查錯誤的,因此在今天這個章節,將與大家介紹關於 Robot Framework 內建的報告該如何使用!
首先,先來複習一下上章的執行結果,在執行完測試後最後三行,我們可以看到測試的產生了三個檔案,這三個檔案分別是 output.xml
、log.html
及 report.html
,下面一起來看看這三個檔案分別有什麼用途吧。
==============================================================================
Test :: My First Robot Framework
==============================================================================
Test Case 001 | PASS |
------------------------------------------------------------------------------
Test Case 002 | FAIL |
6 != 5
------------------------------------------------------------------------------
Test :: My First Robot Framework | FAIL |
2 tests, 1 passed, 1 failed
==============================================================================
Output: ithome/output.xml
Log: ithome/log.html
Report: ithome/report.html
output.xml
是 Robot Framework 生成的原始測試結果文件,包含了測試執行的所有細節。這個文件以 XML 格式存儲,主要用於進一步處理和分析測試結果,例如透過解析這個檔案進行測試數據的分析,或是將測試結果傳送到測試結果管理平台,或是我們可以透過這個檔案進行測試報告的重組或是 rerun。
下面我們可以舉個範例,當今天測試結束後,我們希望可以將總共執行的測試數量、通過的測試數量及失敗的測試數量傳送到 slack 通知團隊,那麼這時候就需要透過讀取這個 output.xml 來取得這些資料:
from robot.api import ExecutionResult
result = ExecutionResult('output.xml')
stats = result.statistics
print(f"Total Cases: {stats.total.total}")
print(f"Pass: {stats.total.passed}")
print(f"Fail: {stats.total.failed}")
上面的 Code 執行後的效果如下:
Total Cases: 2
Pass: 1
Fail: 1
在上方的程式碼中,我們透過 Robot Framework 本身提供的 ExecutionResult,快速取得測試的成果,接下來便可以透過 slack 的 webhook 傳送測試結果到 slack 通知啦!關於 slack webhook 如何使用,可以參考:https://api.slack.com/messaging/webhooks
在這邊也分享一下如果透過 slack 通知的話,可以包含以下的資訊:
report.html
提供了一個高層次的測試結果概覽,適合快速了解測試的整體執行情況。以表格的形式展示了所有 Test Suite 的測試結果,上面也有提供些 filter 的功能,讓我們可以過濾出想看的資訊,但是對於測試人員來說,我們會更加傾向直接查看測試錯誤的原因,因此可以透過點擊 report.html
的 Test Suite 名稱,進入到 log.html
log.html
是詳細的測試執行日誌,展示了每個測試案例的執行流程、使用的關鍵字及其輸入輸出,以及可能的錯誤信息。這個文件提供了樹狀結構視圖,可以幫助我們逐步展開查看測試步驟,精確定位問題,以上個章節執行的測試為例:
在 log.html
中,我們可以查看細到每一個測試步驟的結果是 pass 或是 fail,以及測試過程中產生的值是什麼,相當快速的可以定位到問題在 code 中的哪一個部分,以及相較於其他框架的測試報告 Robot Framework 算是相對精美了,在報告中我們也可以查看到每一個測試步驟的執行時間,這些時間的長短依據可以是日後我們優化測試的一個重要參考資料。
最後,我們針對這三個檔案,透過表格來做個統整吧!
檔案/類型 | output.xml | log.html | report.html |
---|---|---|---|
功能 | 原始測試數據,詳細結果存儲 | 詳細測試日誌,逐步展開測試過程 | 測試結果概覽,偏向全局 |
格式 | XML | HTML | HTML |
適用場景 | 進行進一步數據處理、生成報告或系統集成 | 排查測試問題、查看詳細測試步驟 | 高層次了解測試狀況,適合向管理層匯報 |
適合的使用者 | 測試開發工程師 | 測試人員、開發人員 | 測試經理、專案主管、產品負責人 |
Robot Framework 提供的測試結果報告工具非常強大,可以幫助我們快速掌握測試執行情況,並深入追蹤失敗的測試案例。通過利用這些報告工具,我們可以大大提升測試的有效性和穩定性,進一步提高測試自動化的品質和效率。