此文章來源於專案官方公眾號:“AirtestProject”
版權宣告:允許轉載,但轉載必須保留原連結;請勿用作商業或者非法用途
在現代軟體開發流程中,自動化測試和持續整合(CI)工具的結合已經成為不可或缺的部分。Airtest 作為一款優秀的自動化測試工具,結合持續整合(CI)工具,可以大大提升測試效率和開發質量。本文將詳細介紹如何將 Airtest 與 CI 工具進行整合。
什麼是 Airtest?
Airtest 是一款基於影像識別的自動化測試工具,可以用於 Android、iOS 以及 Windows 平臺的應用測試。Airtest 使用影像識別技術,在測試過程中透過截圖比對來模擬使用者操作,如點選、滑動等。它的測試指令碼使用 Python 語言編寫,易於維護和擴充套件。
什麼是持續整合(CI)?
持續整合(CI)是一種軟體開發實踐,開發者經常將程式碼整合到主幹,每次整合都透過自動化的構建和測試來驗證。常用的 CI 工具包括 Jenkins、GitLab CI、CircleCI 等。透過 CI 工具,可以在每次程式碼提交後自動進行構建、測試和部署,從而提高開發效率和軟體質量。
為什麼要將 Airtest 與 CI 工具整合?
將 Airtest 與 CI 工具整合可以實現以下幾點好處:
- 自動化執行測試
- 實時反饋
- 提高效率
Airtest 與 Jenkins 的整合方法
下面以 Jenkins 為例,介紹如何將 Airtest 整合到 CI 工具中。
環境準備
- 安裝 Jenkins:在伺服器上安裝並配置好 Jenkins。可以從Jenkins 官網下載並安裝。
- 安裝 AirtestIDE:在測試機器上安裝 AirtestIDE。可以從Airtest 官網下載並安裝。
- 配置 Jenkins 節點:確保 Jenkins 能夠訪問測試機器。可以透過 SSH 或者其他方式連線。
配置 Airtest 指令碼
- 編寫 Airtest 指令碼:在 AirtestIDE 中編寫自動化測試指令碼,並確保指令碼可以正常執行。
- 儲存指令碼:將 Airtest 指令碼儲存到專案的程式碼庫中,以便後續在 Jenkins 中呼叫。
配置 Jenkins 任務
- 建立新任務:在 Jenkins 的主頁中,點選 “新建任務”,輸入任務名稱,並選擇 “構建一個自由風格的軟體專案”。
配置原始碼管理:在任務配置頁面中,配置原始碼管理,選擇程式碼庫型別(如 Git),並輸入程式碼庫地址和憑證
-
新增構建步驟:在 “構建” 部分,新增一個 “執行 Shell” 指令碼的構建步驟。指令碼內容如下:
# 切換到Airtest指令碼的目錄 cd /path/to/your/airtest/scripts # 執行Airtest指令碼 airtest run your_test_script.air
這裡需要根據實際情況修改指令碼路徑和指令碼名稱。
配置構建觸發器:配置觸發機制,如 “構建觸發器”,可以選擇 “Poll SCM”,設定定時檢查程式碼庫的更新,也可以選擇 “GitHub hook trigger for GITScm polling” 來實現程式碼提交後自動觸發構建。
儲存配置:配置完成後,點選 “儲存” 按鈕儲存任務配置。
執行任務並檢視結果
- 手動觸發任務構建過程是否能正常執行。
- 檢視構建日誌:在任務頁面中,點選最新的構建號,進入構建詳情頁。點選 “控制檯輸出” 檢視構建日誌,確認 Airtest 指令碼是否成功執行。如果有錯誤資訊,可以根據日誌進行排查和修復。
- 自動化觸發:如果配置了自動觸發機制,可以在程式碼庫中進行一次程式碼提交,觀察 Jenkins 是否會自動觸發構建,並進行 Airtest 指令碼的執行。
配置測試報告
為了更好地瞭解測試結果,可以將 Airtest 指令碼生成的測試報告整合到 Jenkins 中。Airtest 預設生成的是 HTML 格式的報告,可以透過 Jenkins 的 HTML Publisher 外掛釋出報告。
安裝 HTML Publisher 外掛:在 Jenkins 的管理頁面中,點選 “管理外掛”,搜尋並安裝 “HTML Publisher Plugin”。
配置釋出測試報告:在任務配置頁面的 “構建後操作” 部分,新增一個 “Publish HTML reports” 操作。
配置報告路徑:在 “HTML directory to archive” 中,輸入 Airtest 生成報告的目錄路徑。在 “Index page[s]” 中,輸入報告的入口頁面(通常是 log.html)。
儲存配置:點選 “儲存” 按鈕儲存任務配置。
執行並檢視測試報告
- 再次觸發構建:手動或自動觸發一次構建。構建完成後,Jenkins 會自動釋出 Airtest 生成的 HTML 測試報告。
- 檢視測試報告:在構建詳情頁面,點選 “HTML Report” 連結,即可檢視詳細的測試報告。
注意:
如果構建完後的報告為空,則可能是 HTML Publisher Plugin 1.10 以上版本出現的內容安全性問題,需要在【Manage Jenkins】-【Script Console】輸入並執行以下內容
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
總結
透過以上步驟,我們成功實現了 Airtest 與 Jenkins 的整合。每次程式碼提交後,Jenkins 會自動觸發 Airtest 指令碼進行自動化測試,並生成詳細的測試報告。這套流程可以顯著提高測試效率,減少手動操作,提高軟體質量。
當然,除了 Jenkins 之外,GitLab CI、CircleCI 等其他 CI 工具也可以透過類似的方式與 Airtest 進行整合。希望本文能夠幫助到需要進行自動化測試和持續整合的開發者們,讓你們的開發流程更加高效和可靠。如果你有其他問題或建議,歡迎在評論區留言交流。
AirtestIDE 下載:airtest.netease.com/
Airtest 教程官網:airtest.doc.io.netease.com/
搭建企業私有云服務:airlab.163.com/b2b
官方答疑 Q 群:526033840