萬物云空間科技服務股份有限公司(以下簡稱為“萬物云”),前身為萬科物業發展股份有限公司,是國內領先的物管龍頭上市公司。作為一家科技引領的全域空間服務商,萬物云致力于打造產業級共享服務平臺,基于空間物聯技術及應用,構建產業互聯生態。截至2023年12月31日,萬物云在全國范圍內的在管住宅物業服務項目達到3810個,商企物業服務項目2241個,智慧城市服務項目98個。
一、萬物云的測試業務現狀及自動化建設目標
萬物云的測試范圍包含軟件和硬件兩個層面。軟件層面,萬物云統一管理著旗下萬科物業、萬科云城等七家公司的研發團隊,這些公司的業務領域包括居住消費、住宅物業、二手房租售、新房置業、房屋裝修、商企物業、安防機電、智慧城市、智慧社區等,業務系統眾多,使用的IT信息系統超過60個,每個系統在更新后都需要進行測試;
硬件層面,由于萬物云的業務包括提供IoT(Internet of Things,物聯網)解決方案,其中涉及到許多硬件,這些硬件也需要進行測試。因此,對于萬物云的測試團隊來說,面向繁雜應用場景和維度的測試無疑是一個巨大的挑戰。
除了廣泛的測試范圍以外,測試管理的不便和測試效率低下也是困擾萬物云測試團隊的兩個難題。一方面,萬物云信息系統的測試工作由許多測試小組獨立負責,這些小組一般由3到5人組成。各小組的測試工具和測試資產比較零散,管理人員難以實時統計和管理測試數據、測試進度及測試成果;
另一方面,隨著業務的快速增長,萬物云各個項目的迭代周期從以往的2到3個月縮短為1個月甚至更短,迭代周期的縮短,對測試團隊的測試效率提出了更高的要求。
萬物云的測試團隊希望從建設自動化測試平臺入手,進一步優化測試流程,提高測試效率,解決測試范圍廣、測試管理難、測試效率低三個關鍵問題,并實現以下三個目標:
■ 全生命周期的測試管理
萬物云的測試團隊希望新構建的自動化測試平臺可以覆蓋測試活動的完整生命周期,涉及測試計劃的制定、用例設計、自動化腳本編寫、測試執行、結果分析和報告整理等環節。
在測試計劃階段,測試團隊的管理人員可以通過測試平臺確定測試目標、測試范圍、測試資源、測試進度等,確保測試活動能夠有序進行;
在測試設計階段,測試平臺需要提供設計測試用例的工具和方法,幫助測試人員設計測試用例和測試場景,從而確保測試的全面性和有效性;
在測試執行階段,測試平臺要具備可以自動化執行測試用例的能力,減少人工測試量,提高測試效率,同時也要能夠實時同步測試進度和測試結果,保證測試人員可以及時發現和處理測試中遇到的問題;
在結果分析和報告整理階段,測試平臺需要能夠對測試結果進行統計和分析,生成詳細的測試報告,幫助測試團隊了解測試的質量和效果,同時為未來改進測試工作提供參考。
■ 提升持續測試能力
項目迭代周期的縮短,意味著測試團隊需要快速高效地完成冒煙測試和回歸測試。這就要求在應用發布時,測試平臺要能夠自動運行冒煙測試和回歸測試用例,并將測試結果及時反饋給開發團隊,保障核心業務場景的穩定性。
要實現這個目標,最直接的手段是將測試平臺與DevOps平臺進行對接,保證測試平臺能夠自動觸發測試操作。然而,萬物云使用的各類測試工具無法與開發團隊所使用的TFS(Team Foundation Server ,微軟開發的團隊代碼管理服務平臺)平臺進行集成,導致萬物云DevOps流程中持續測試的短板無法被補齊。
為了讓萬物云的測試活動更加緊密地融入敏捷開發的流程中,萬物云迫切需要一個能夠與DevOps工具鏈集成的測試平臺。
■ 建立質量度量體系
萬物云的測試數據資產大部分由各個測試人員獨立維護和管理,這導致了測試管理人員難以實時統計測試進度,不利于迭代計劃的調整和優化。
所以,新構建的測試平臺要具備展示實時數據的能力,從而為測試團隊的管理人員分析測試進度提供參考,并且對測試活動的績效作出評估。除此以外,測試平臺還需要能夠生成可視化報告,從而幫助團隊識別日常工作中存在問題,并且及時制定優化策略。
二、為什么選擇MeterSphere?
萬物云的測試團隊經過詳細的調研和對比,最終選擇了基于MeterSphere開源持續測試平臺建設自動化測試平臺。測試團隊經過對比選型后選擇MeterSphere的四個理由如下:
1.一站式的測試和管理
測試方面,MeterSphere集成了團隊協作、用例管理、接口自動化、UI測試、性能測試和消息通知等功能,讓測試團隊可以一站式地完成測試任務,無需頻繁切換各種測試工具。在設計不同業務類型的測試用例時,MeterSphere提供的自定義用例模板、自定義版本、自定義模塊等功能,為構建用例的規范和標準提供了基礎支撐;
管理方面,MeterSphere所使用的“工作空間+項目”管理維度,正好與萬物云“測試小組+項目”的團隊管理模式相適配。除此以外,MeterSphere還支持對測試數據資產進行集中的持久化存儲,極大地方便了測試團隊統一管理和繼承測試數據。
2.靈活的插件機制和高可擴展性
萬物云對測試平臺的重要需求之一,就是測試平臺要能夠支持包括MQTT協議在內的軟件和硬件的自有協議。
MeterSphere的自定義插件機制滿足了這一需求。通過MeterSphere完全開放的API,測試團隊可以靈活地根據業務需求完成與微軟TFS的對接,將測試業務與CI/CD流程打通,讓自動化測試融入敏捷開發的流程,最終形成閉環。
3.數據分離和高度可復用
MeterSphere支持獨立維護并使用包括用例、腳本、數據在內的公共測試資產。因此,在底層系統相同的情況下,測試人員可以提煉出業務的重疊部分,將這些測試資產轉化為公共測試資產,與其他測試人員共享。這樣一來,每位測試人員只需要關注各自獨有的測試參數,就可以快速開展測試任務了。
除此以外,MeterSphere還擁有靈活的用例引用和復制機制,測試人員可以輕松地拆分和組裝公共測試資產,最大程度地化解了測試人員每次測試都需要重新編寫測試用例的痛點。使用MeterSphere后,萬物云的測試人員只需要根據業務流程選擇用例進行組裝,就可以完成整個業務流程的拼接。
4.可視化的測試度量
DataEase是一款開源的數據可視化分析工具,具備豐富的圖表類型和樣式配置,以及靈活的指標計算、下鉆、聯動等功能。
MeterSphere支持與DataEase無縫對接。以MeterSphere集中管理的測試數據為基礎,借助DataEase的數據展示能力,能夠多維度地實時展示測試進度和測試成果,將萬物云的測試度量體系可視化,極大提升了萬物云測試團隊對應用的質量保障水平。
三、萬物云自動化測試平臺的建設過程
萬物云自動化測試平臺的建設過程共分為四個階段:即存量測試數據整理和遷移階段、集成TFS階段、測試質量大屏建設階段,以及持續測試階段。
■ 第一階段:存量測試數據整理和遷移階段
萬物云的存量測試數據資產由各個測試小組的成員保存,具有數據類型多樣化的特點。紛繁復雜的數據類型,讓測試團隊的存量數據遷移變成了一項艱巨的工作。
由于MeterSphere支持直接導入常見的Postman、JMeter、Swagger等類型的測試數據,因此測試團隊平滑地完成了存量數據的遷移工作。除了存量數據易于遷移以外,MeterSphere平臺還支持定時同步Swagger文檔,從而實現了接口定義數據的定時自動更新,降低了測試團隊的溝通成本,有效提升測試效率。
■ 第二階段:集成TFS階段
萬物云的開發團隊使用微軟TFS進行流水線作業。然而,TFS無法直接與MeterSphere進行對接。為了解決這一難題,萬物云測試團隊和MeterSphere團隊進行了調研和多種方案對比。最后,雙方決定基于解耦的原則,采用“TFS插件+網關”的方案進行對接。具體對接架構如圖1所示。
▲ 圖1 微軟TFS與MeterSphere平臺的對接架構
萬物云TFS插件的具體執行過程如下:
① 在TFS中選擇需要執行的測試任務所在的工作空間、項目和測試用例;
▲ 圖2 在TFS中選擇工作空間、項目和測試用例
② 保存相關配置后,開發人員提交代碼完成構建,觸發MeterSphere平臺自動執行測試用例,如圖3所示;
▲ 圖3 觸發MeterSphere平臺自動執行測試用例
③ 測試人員查看MeterSphere執行步驟中具體的執行情況和報告,并點擊圖4中紅框位置的鏈接;
▲ 圖4 查看測試用例的自動執行情況
④ 點擊圖4的鏈接后,跳轉進入MeterSphere測試報告頁面,如圖5所示。
▲ 圖5 MeterSphere平臺自動生成的測試報告
■ 第三階段:測試質量大屏建設階段
為了優化萬物云的測試度量體系,萬物云將MeterSphere平臺與DataEase數據可視化分析工具進行了無縫對接,構建了測試質量數據大屏。
在萬物云的測試質量可視化數據大屏上,不同項目的接口用例數量、執行次數、接口自動化用例數量等多個維度的數據都得到了直觀生動的展現,為測試管理人員做出科學決策提供了有力的數據支持。
▲ 圖6 萬物云的測試質量大屏
■ 第四階段:持續測試階段
在MeterSphere開源持續測試平臺與微軟TFS完成集成,并且構建了測試質量大屏后,萬物云的測試團隊不斷完善和優化測試流程,最終形成了“接口定義設計→自動同步接口定義→用例設計→自動化測試→自動化推送測試結果→測試進度和測試成果展示”的完整測試流程閉環,成功實現了“持續測試”的目標。
▲ 圖7 萬物云的持續測試流程
四、萬物云自動化測試平臺的建設成果
萬物云基于MeterSphere開源持續測試平臺搭建的自動化測試體系,對其核心業務的接口和自動化測試場景的覆蓋率達到了100%。
目前,萬物云已經使用MeterSphere開源持續測試平臺管理了120多個項目,25000多個測試用例,以及240多個測試計劃。TFS平均每天觸發執行測試計劃任務超過150次。自動化測試平臺體系給萬物云的測試團隊帶來的價值,主要體現在以下三個方面:
1.響應快:應用在生產環境發版后,會自動觸發MeterSphere執行測試任務,節省了發版后測試團隊和開發團隊的溝通成本和協調時間,溝通效率提升了10%;
2.效率高:由于MeterSphere和TFS進行了對接,TFS能夠主動觸發測試人員在MeterSphere中設置好的自動化接口場景,MeterSphere會自動執行接口用例。執行完成后,MeterSpere還會自動生成測試報告,并且自動將測試結果推送至相應的責任人。
與之前單純依靠測試人員手工操作相比,使用MeterSphere后,從接口測試到產出測試報告和測試結果,測試人員完成這一套工作流程的平均花費時間,從以前的15分鐘縮短至如今的6分鐘,有效提高了測試團隊的工作效率;
3.有效性高:MeterSphere的自動化腳本使用響應斷言與Elasticsearch數據庫和MySQL數據庫中的數據進行對比,實現了多重校驗,提升了代碼驗證的準確性和全面性,從而有效保證了產品交付質量。