簡潔好用的Allure Test Report
Test Report是整個自動化測試的靈魂
老闆和客戶不會知道你的測試架構設計的有多完美
他們第一眼看到的是你的Test report能提供多少資訊來判斷測試結果和解決問題
一個好的測試報告
能讓我們清楚地了解目前軟體的品質狀況重要資訊包括:
- 統計Pass,fail,broken rate
- Error or Failure 資訊
- 錯誤log或截圖
- 清楚的分類Test case
- 清楚的結構,方便瀏覽
- 記錄執行的步驟與時間
Allure Framework
Allure是一個輕量級,靈活,支援多語言與多平台的測試框架優點:
- 美觀清楚的內容
- 使用Tag,開發方便 (就像便利貼一樣)
- 可以放上不同類型檔案到report
- 連結url link
- 結合BDD語法 (Feature, Story)
- 顯示完整每個case執行Timeline
- 搭配CI/CD工具使用
- 無法整合成單一個Test report file
- Test report佔用空間較大
運作原理
第一步: 測試執行中會使用adapter library將過程存在xml檔案中第二部: 測試完成後會用report generator tool將xml轉換成HTML格式report
產生的Test report可以在本地端開啟也能整合到Jenkins上顯示
環境安裝設定
- 安装 pytest-allure-adaptor
pip3 install pytest-allure-adaptor
- 要產生好看的報告,首先要安裝 formulas
brew tap qatools/formulas
- 接著安裝Allure Command Tool
brew install allure-commandline
使用方式
Pytest目前只能用Allure 1.4.x版本Allure跟Pytest的搭配很簡單
只要在 程式片段中指定各種tag
- 在python script import Allure package
import allure
- 將Test case區細分成多個步驟
with pytest.allure.step('Click Start button'):
或
@pytest.allure.step
def make_test_data_foo(): - 加上Attachment
allure.attach('screenshot', driver.get_screenshot_as_png(), type=AttachmentType.PNG)
- 加上BDD
@allure.feature('Feature1')
@allure.story('Story1') - 加上Severity
@pytest.allure.severity(pytest.allure.severity_level.CRITICAL)
- 加上環境參數
allure.environment(Device='Oppo A39', Version='Android 5.1', Type='Sanity')
執行並產生report
- 執行測試時在pytest後面加上這段參數
py.test --alluredir report
- 測試結束後輸入指令
allure generate report/ -o report/html
- 打開html目錄, 從瀏覽器執行 index.html
如何把report帶著走
大家看到這裡應該會有個疑問如果我想把report帶到其他電腦怎麼打開?
我找到的做法是:
- 把整個report folder複製起來
- 另外一台電腦要安裝allure command line tool
- Terminal指到report目錄下
- 輸入指令
allure report open --report-dir ./html
- 會啟動瀏覽器開啟test report
Reference:
- Source: Allure Framework官方文件
- Source: 移动端自动化测试系列之三——Allure测试报告
Comments
Post a Comment