MeterSphere 案例分享丨 88 郵箱測試左移和測試右移的落地實踐
2019 年,全球領先的文化娛樂產業集團完美世界拿下了 “一定是東半球最貴的” 頂級域名 www.88.com。2020年8月8號,歷時一年研發,88 完美郵箱與大家正式見面。立足產品角度,這是完美世界正式進軍郵箱賽道的起點。對於 88 郵箱團隊來說,此舉邁出了從 0 到 1 的第一步。
不同於 QQ 郵箱和網易郵箱,88 完美郵箱主打商務與協同辦公,提供團隊郵件快速建立(日報、週報、月報、任務和審批)、團隊通訊錄、團隊郵件組管理、88 便籤、對接飛書會議、線上文件,以及免費開放 5GB 容量網盤等高效協同的功能。
對於完美世界來說,郵箱業務的誕生與快速發展催生出一個全新的團隊,從 0 到 1 組建團隊,需要建立新的研發流程和規範。在這一過程中,測試如何發揮更大的價值是一個重要的課題,而測試實現左移和右移是關鍵目標和突破方向。
測試左移和測試右移模型
對軟體產品而言,傳統的質量模式透過測試左移和測試右移被賦予更多的內涵,也承擔起更多的職責。
-
測試左移:測試左移,本質上是藉助工具和測試手段更早地發現問題和預防問題
- 需求:對需求、架構和設計模型的測試
- 開發:著重增加對單元、元件和服務層的測試
- 持續測試:自動化測試
-
測試右移:對測試同學來說,版本上線後需要持續關注線上監控和預警,及時發現問題並跟進解決,將影響範圍降到最低
- 灰度釋出:新版本線上測試
- 監控:合理的效能監測、資料監控和預警機制
- 使用者反饋:線上問題處理、跟蹤機制
測試左移如何落地?
測試任務跟蹤
測試任務跟蹤,不僅僅只是跟蹤測試本身的工作,還需要介入到需求、技術方案、編碼的全過程。只有前序每一步都跟蹤到位,才能儘量避免測試過程中的不可控因素,從而保證產品質量。
測試同學的任務其實是不好度量和跟蹤的,但是 MeterSphere 開源持續測試平臺為我們解決了這個痛點。測試計劃、測試用例、執行情況等都可以在 MeterSphere 平臺上直觀地看到,做到了 “讓資料為質量說話”。
建立程式碼分支管理規範
開發同學在編碼過程中,經常會因為環境不夠用、或者程式碼被覆蓋等問題而煩惱。對於敏捷開發模式的團隊,需求多、分支多是常態,怎樣讓開發測試有序地協同工作,規範分支管理流程是必要的。
Sonar 程式碼質量檢測
Sonar 是視覺化的程式碼質量檢查平臺,支援的語言包括 PHP、Java、Python、C# 等,包含專案、問題、程式碼規則、質量配置、質量閥和配置五個模組。
以下是專案執行情況的概覽,每個專案名稱代表一個專案,專案檢查的結果簡單呈現在專案首頁概覽中,包含 Bug 數量、漏洞數量、不規範、單元覆蓋率、程式碼重複度等維度。
我們通常會將 Sonar 發現的問題以 Bug 的方式提交給開發團隊,要求致命、嚴重級別的 Bug 必需修改,並跟蹤解決進度。在實際的運用過程中,也會根據專案實際情況調整質量閥門,以避免誤報等情況出現。
持續測試:基於 Metersphere 平臺實現介面自動化
介面測試提前接入,透過 YApi 管理介面文件,開發同學在需求評審後即進入技術設計與介面設計階段,測試同學則根據介面文件進行 Mock 測試。
基於 MeterSphere 開源持續測試平臺,我們實現了測試工作的自動化。提測後自動化測試介面透過率,提前發現問題,有效提升測試效率。
MeterSphere 持續測試平臺採用開源可擴充套件框架,實現了測試跟蹤、介面自動化、效能自動化的全覆蓋,特別適合創業團隊。從測試團隊的角度看,MeterSphere 平臺既能切實地提升產品質量和測試效率,又解決了自研自動化框架人力不足的痛點。
同時,MeterSphere 支援與 Jenkins 的整合,每次有新的程式碼提交後,平臺自動觸發環境部署和介面自動化 Job 執行,併傳送郵件通知,實現了主流程功能的迴歸測試,提升測試效率。
測試右移如何落地?
灰度釋出
使用灰度釋出方式,新版本上線後先更新部分伺服器,測試人員先進行驗收透過後,再全量釋出。這樣一來,儘可能地避免了測試和正式環境配置不一致、資料庫更新不及時等不確定因素引起的問題。
服務監控
對於測試人員來說,服務上線後仍然需要關注服務的執行情況,以便在出現系統問題時能夠快速做出反應,將影響降至最低。在這一環節,我們引入了 Zabbix 系統檢測工具,實時監控系統硬體資源使用情況。同時設定報警通知,將異常情況第一時間通知給相關負責人。
Zabbix 透過呼叫 ODBC 來獲取資料庫的資料,以及資料庫狀態等資訊;透過 IPMI Agent 監控硬體裝置,例如 Dell 或者 HP 伺服器的主機板溫度、CPU 電壓、蓋子是不是被開啟等;透過 JMX Agent 監控 Java JVM,例如 Tomcat;透過追蹤模擬滑鼠在 Web 網站上的點選操作,來檢查 Web 網站的功能和響應時間。
使用者反饋
“使用者就是上帝”。任何產品的成功與否,都取決於使用者。為此,我們建立了完善的使用者反饋處理機制:對於使用者反饋的問題,第一時間進行修復上線;針對使用者提出的建議,結合實際情況對產品進行打磨和最佳化。
專項測試
安全
保證郵箱資料安全性,是產品研發的一個重要環節。資料面臨的安全威脅來自於多個方面,如何有效地保護資料的保密性、完整性、可用性和真實性,郵箱團隊一直在不斷地升級和最佳化。這部分的工作主要涉及系統安全加固、資料庫加密、全鏈路傳輸加密、反作弊策略、反黑策略、反入侵策略、安全管理、反商業洩密等。
效能
介面層面
根據使用者量預期,制定系統效能要求,再構造資料藉助 JMeter 對系統進行持續壓測,測試系統的極限處理能力,以及最佳處理能力。
同時,將部分主要流程性指令碼透過 MeterSphere 開源持續測試平臺建立自動化效能測試任務,每次版本升級後自動執行穩定性測試,大大提升了測試效率,也能在早期發現問題並解決問題,進一步提升產品質量。
Web 頁面
從資源載入時間、頁面渲染、介面呼叫邏輯多方面分析 Web 頁面效能。這這方面,透過 www.webpagetest.org 工具,測試首頁資源載入、介面響應時長、頁面渲染時間等資料記錄頁面效能。
從不限於以下不同維度的測試資料分析頁面效能,並給出合理的改進措施:
- 多次測試取平均值
- 是否有快取資料
- SSL 握手時間
- 介面響應時間
- 介面呼叫合理性(並行、序列、重複請求)
- 資源最佳化
- 弱網
MeterSphere 使用體會
對於創業者來說,時間少任務重是常態,反覆地手工測試讓人精疲力竭,要著手去寫自動化程式碼,又需要投入大量的人力,讓人應接不暇。我們團隊引入 MeterSphere 工具之後產生了非常好的效果。
現在來總結一下 MeterSphere 持續測試平臺的優點:
- 它規範了測試用例,測試計劃可追溯,任務執行情況一目瞭然,團隊合作變得高效;
- 介面測試上手成本低,將介面用例與部署平臺結合,每次有新程式碼部署後,都自動執行自動化指令碼,在保證質量的同時提升了效率;
- 效能測試提供圖形化可視介面,且保留歷史資料,方便追溯,效能結果一目瞭然;
- 開源!開源!開源!
MeterSphere 專案還在持續不斷最佳化和改進,如果能增加以下些功能就更好啦:
- 增加 UI 自動化模組;
- 增加效能測試資料的對比功能,方便穩定性測試資料的對比;
- 場景支援在介面中呼叫,方便用例的組合測試,減少寫重複介面。
對於測試團隊來說,保證產品質量,測試左移和測試右移都是非常重要的突破方向。我們也將在此基礎上不斷地完善和最佳化,全方位提升研發測試效能。
注:本文作者為 88 完美郵箱測試主管李雪蘭。
相關文章
- 什麼是測試左移和測試右移
- MeterSphere 案例分享丨易盛資訊 MeterSphere 介面測試使用經驗
- 不想左移和右移的測試老了該怎麼辦??
- 構建高效Presubmit卡點,落地測試左移最佳實踐MIT
- 測試人的內卷,從左移右移開始
- 簡單談一下我對持續測試下的測試左移、迭代測試和測試右移的理解吧
- Parasoft軟體測試實踐:什麼是左移測試?
- MeterSphere 案例分享丨恆大智慧科技基於 JMeter 的效能測試方案演進之路JMeter
- 介面測試框架接入效能測試實踐分享框架
- API 安全中的“左移”測試API
- 經驗分享丨功能測試漲薪路線,記一次簡單的效能測試實踐!
- 乾貨分享丨一種DevOps模式下UI自動化測試左移思路的探究dev模式UI
- 開源測試平臺--MeterSphere
- 自動化測試框架選型和落地實踐路徑框架
- 測試實戰分享:關於詞根字典使用者測試的案例研究
- Jmeter測試工具的實際專案測試案例JMeter
- Java的左移和右移運算子Java
- 使用 MeterSphere 進行 Dubbo 介面測試
- 介面自動化測試工程實踐分享
- MBT測試思想在蘇寧蛙測的運用實踐分享
- MeterSphere 案例分享丨我們為什麼要從 HTTPRunner 轉向 MeterSphereHTTP
- 測試平臺系列(88) 完成郵件通知功能(附贈精美郵件模板)
- DevOps 中的測試實踐dev
- DevOps中的測試實踐dev
- 測試右移:線上質量監控 ELK 實戰
- 軟體測試案例實踐:銀行如何做大規模自動化測試?
- Docker與自動化測試及其測試實踐Docker
- Java中的單元測試與整合測試最佳實踐Java
- ChaosBlade混沌測試實踐
- Locust效能測試實踐
- 精準測試實踐
- Vodafone A/B測試實踐
- 聊聊測試左移到開發階段
- Golang專案的測試實踐Golang
- 負數的右移與左移
- 故障測試 Byteman 上手實踐
- 測試用例最佳實踐
- Go 單元測試實踐Go