本文作者:歐海鋒,碧桂園服務高階測試工程師,致力於研究測試技術。
一、前言
介面自動化測試是一種軟體測試技術,它透過模擬使用者系統操作來對系統的介面進行自動化測試。介面自動化測試的目的是為了提高測試效率和準確性,同時降低測試成本和週期。以下是為什麼需要進行介面自動化測試的一些原因:
1、提高測試效率:介面自動化測試可以透過自動化測試工具自動執行測試用例,避免了手工測試中需要大量時間和人力進行測試的問題,提高了測試效率;
2、準確度高:介面自動化測試是直接對系統的介面進行測試,可以更準確地模擬使用者操作,避免了手工測試中可能出現的錯誤和遺漏;
3、降低測試成本:介面自動化測試可以避免手工測試中需要大量人力和時間的問題,從而降低了測試成本;
4、快速反饋:介面自動化測試可以快速反饋測試結果,幫助開發人員快速定位和修復問題,縮短了開發週期;
5、保障產品質量:介面自動化測試可以對系統的各個介面進行全面的測試,確保系統的穩定性和效能,從而保障產品質量;
6、標準化和可重複性:介面自動化測試可以使用統一的測試指令碼和測試工具,保證測試的標準化和可重複性,使得測試結果更加可靠;
7、避免人為因素干擾:手工測試中可能會受到測試人員的主觀因素干擾,而介面自動化測試則可以避免這種情況,保證測試的客觀性和準確性。
綜上,介面自動化測試可以提高測試效率和準確性,降低測試成本和週期,保障產品質量,是現代軟體測試中不可或缺的一部分。
二、主流的介面自動化工具對比
基於上述的工具對比,中心進行鳳凰雲測的測試引擎研發,以確保該引擎更貼合當前中心專案狀況,該引擎優勢有:
不需要寫指令碼,只需要獲取相關的介面請求資訊,按照業務流順序編排,就能實現介面自動化;
對測試人員的程式碼能力要求相對較低;
存量資料儲存格式一致,且簡單易懂;
可自動生成詳細測試報告,無需人工整理分析;
系統整體效能優越,併發處理能力強;
測試斷言更加豐富多樣。可以跟內部的DevOps系統做資料對接,完成從需求到測試的閉環管理。
三、鳳凰雲測核心功能
1、斷言引擎
斷言引擎有著豐富的斷言方式,支援文字斷言、正則斷言、響應碼斷言、響應時間斷言、JsonPath斷言及Xpath斷言,支援主流測試工具的斷言方式。透過直觀的介面互動設計,使編寫斷言更加簡單快捷。
我們結合中心整體測試流程進行測試引擎的開發,以提升測試效率和測試質量。
引擎實現原理:讀取測試套中編排好的測試介面資訊,並透過遞迴方法有序地發起介面請求,以此來實現業務流介面和實現業務場景測試。
2、資料看板
豐富的資料統計:支援缺陷密度、缺陷逃逸率、缺陷解決時長及生產缺陷解決平均時間等度量資料統計。這些測試資料有助於專案管理進行專案迭代質量分析以及風險預估分析。
3、測試任務
多功能測試任務:多環境執行自動化測試用例、自動生成詳細測試報告、自動統計慢介面資料與一鍵迴歸全系統測試測試用例。
支援自定義測試任務,以適配更多的測試場景需求,一鍵生成詳細的測試報告和慢介面資料的自動統計,極大地提升了開發測試流程的效率。
4、資料整合
擁有強大的資料整合能力,能夠與中心的DevOps平臺做產品、應用、迭代及需求等資料整合,形成一個完整的閉環管理。
三、實踐分享
1、測試流程
基於中心現狀,進行相應測試流程的制定並輔以鳳凰雲測的測試引擎,將專案的測試流程規範化、數字化。
測試人員在進行需求分析時輸出相應的思維導圖,並標識了哪些用例適宜進行介面自動化。這一個過程為評估需求的自動化率提供了初步依據;
輸出相應的測試用例並上傳鳳凰雲測生成相應的測試套;
測試人員對相應的測試套進行介面自動化的編寫編排,實現業務流的介面自動化;
確認版本測試範圍,規劃測試任務所覆蓋的測試套,形成一個版本的測試任務;
在版本回歸時執行測試任務並生成測試結果與測試報告。
2、專案實踐
(1)測試度量
缺陷密度和缺陷逃逸率都是用於評估軟體質量的重要指標,但它們各自的定義和用途有所不同。
缺陷密度:指每千行程式碼中發現的缺陷數量,主要用於衡量軟體的質量和可靠性。缺陷密度是一個相對穩定的指標,不受測試階段和產品釋出的影響。透過計算缺陷密度,可以幫助評估當前已經發現的缺陷總數是否足夠多,從而決定是否應該退出測試或釋出產品。
缺陷逃逸率:指軟體產品釋出後發現的缺陷數量與該軟體產品在整個生命週期發現的所有缺陷數量的比率。它主要用於衡量軟體開發團隊和測試團隊對軟體質量控制的水平。缺陷逃逸率可以用來評估測試的有效性,確定當前產品發現的缺陷是否被有效修復,併為當前產品的質量是否達到測試質量目標提供最直接的判斷依據。
缺陷密度和缺陷逃逸率是相互關聯的兩個指標,它們可以幫助開發團隊更好地瞭解軟體的質量和可靠性,並採取相應的措施來修復缺陷和提高軟體質量。
(2)業務流程介面自動化
中心大部分專案都將自動化應用到平常的專案開發活動中,這充分證明了介面自動化為專案帶來了有效的幫助。
中心已成功將大部分系統存量用例實現了自動化,並實現了用例與測試套的自動關聯,顯著提升了技術人員在研發過程中對原功能進行快速驗證的能力,保障了新功能不會對原功能產生不良影響。
(3)生產點火(迴歸測試利器)
實現原理:選用專案中所有不涉及修改或增加資料的測試套,並將它們歸集到一個測試任務中,再加上雲測測試任務可以選擇相對應的環境進行測試,這意味著可以在任何環境中進行相應的點火測試。
生產環境的驗證時間控制大幅縮短,極大地提升了效率。
作用:快速驗證發版後介面響應及功能表現是否正常。發版後能快速定位響應問題,解決問題時效得到極大提升。下圖為某專案生產點火測試結果部分截圖:
(4)慢介面分析
實現原理:將當前任務中的介面響應時間做一次歸總統計,將超過響應閾值的介面標識出來。
作用:方便開發人員儘早地發現響應過慢的介面,並將相應的慢介面場景展示出來,為解決問題提供相應的場景以及資料。
3、總結
鳳凰雲測助力中心專案效果:
測試迴歸效率顯著提升;
測試過程資料有跡可循、有蹤可查;
測試用例與介面規整儲存;
基於客觀的專案質量資料分析,為專案質量提供了有力保證;
生成的測試報告全面、規範且詳細。
四、寫在最後
選用適合專案的介面自動化工具,需要考慮以下幾個方面:
1、工具的易用性:選擇易於使用的介面自動化測試工具,可以降低測試人員的學習成本,提高測試效率;
2、工具的功能豐富度:選擇功能豐富的介面自動化測試工具,可以滿足各種測試需求,如模組化測試、資料驅動測試及併發測試等;
3、工具的可擴充套件性與相容性:選用的自動化測試工具不僅具有良好的可擴充套件性和相容性,而且可以與其他測試工具和開發工具整合,實現自動化測試和持續整合;
4、工具的報告和日誌功能:選擇能夠生成詳細的測試報告和日誌的介面自動化測試工具,它能幫助測試人員快速且準確地檢視測試結果,並有效識別與解決問題;
5、介面覆蓋策略:根據專案的需求,選擇能夠覆蓋全面測試場景的介面自動化測試工具,以及單個介面Response;
6、自動化程度:選擇自動化程度高的介面自動化測試工具,以減少人工干預,提高測試效率和準確性;
7、社群支援:選擇有活躍社群支援的介面自動化測試工具,確保在遇到技術難題時,能夠迅速獲得協助和解決方案。
綜上所述,在選用適配專案的介面自動化工具時,需要綜合考慮包括工具的易用性、功能豐富度、可擴充套件性與相容性、報告和日誌功能、介面覆蓋策略、自動化程度和社群支援等多個因素。建議在選用工具之前,先了解專案的需求和限制,並進行充分的調研和比較,以選擇出最適合專案需求的介面自動化測試工具。