從飛信案例看即時通訊海量併發使用者系統壓力效能測試

2021-06-19 01:40:48 字數 1588 閱讀 6635

2010/03/08

海量併發使用者系統效能測試的重要性不用多說,對這類系統必須進行嚴格的效能測試。類似飛信這樣的系統,無論是使用者規模還是業務的複雜度,在國內都屈指可數。自2023年開始的連續3年時間內,中國移動飛信系統進行了連續三期的效能測試服務。

飛信系統是中國移動推出的「綜合通訊服務」,融合了語音、gprs、簡訊等多種通訊方式,實現了網際網路和移動網間的無縫通訊服務。從2023年飛信推出第乙個版本開始,其使用者發展速度之快之猛就大大超出了最初的預計。在上線後不到半年的時間內,飛信系統與網路就經歷了多次的擴容公升級。現有的系統架構究竟能承載多少使用者、公升級的空間到底有多大是中國移動對飛信系統最為關心的問題。因此,中國移動亟需對現有系統架構進行一次容量及可擴充套件性的全面評估測試。

第一,使用者行為分析、系統資料分析難度大,業界當時也沒有可參考的成熟業務模型,因此如何建立乙個有效的盡可能接近真實的業務模型是該專案最大的難點之一;

第三,由於資料規模龐大,資料準備亦成為當時專案的一大難題。

從it部門自身的業務管理、it治理結構兩個方面全面支援cio的重點工作,並提出以諮詢為引導、產品和解決方案為依託的全面質量測試服務。200多名自有專業工程師,多年服務金融、電信及大型企業的it系統建設及運維經驗,使神州數碼成為業界惟一的完整測試中心解決方案提供商。

二期:專案進度空前緊張

第一期測試完成後,中國移動認識到現有的生產系統架構難以在可控制的成本下滿足使用者數量飛速增長的需求,開始尋找全新的系統架構來替換現有系統,最後鎖定了兩套不同的備選系統。移動希望確認備選系統是否能滿足當前及未來可能的效能需求,並進行兩套系統之間的效能優劣對比。基於一期的圓滿服務,中國移動二期繼續選擇由神州數碼來完成這個專案。儘管有了一期的成功經驗,二期專案依然有不少新的挑戰:

使用者模型構建複雜,要準備兩套不同的測試環境,資料準備工作更大更複雜,而專案又要求在乙個月內完成測試任務,時間非常緊張,因此指令碼開發的難度不亞於第一期。

專案的挑戰很大,在專案實施過程中又由於某些原因致使計畫生變,需要提前半個月完成測試工作,在技術難度與時間進度的雙重壓力下,工程師放棄了所有的週末,測試執行期間每天都工作到深夜十二點甚至凌晨兩點以後,最終提前完成了測試工作。

三期:上百g資料加大測試難度

飛信專案第三期發生在新的系統替換現有生產系統的割接上線前,中國移動希望能對整個系統進行一次全面的總體驗收測試,以確認系統上線後能正常運轉並且能支撐未來半年的使用者增長。專案目標涵蓋了手機客戶端的功能測試、協議測試以及容量測試三大部分,專案所面臨的挑戰遠遠超出了前兩期:

1.容量測試要求實現200萬使用者同時上線訪問的模擬,這種規模的容量測試在國內是首次,在國際上也非常罕見,而且相對於前兩期,這一次的容量測試中包含的業務種類增加了數倍,且包含兩種不同協議,使用者互動過程更加複雜,指令碼開發的總體技術難度極高;

2.容量測試中,海量的資料準備、資料監控、資料分析工作,使得測試執行過程的控制以及最終測試結果的分析非常複雜,尤其是效能監控的原始資料量超過上百g;

3.大規模的協議驗收測試,沒有可參考的成熟模式,而且在不到兩個月的時間內要完成5種協議、近百種業務的協議測試,同時要求測試指令碼具有通用性、易用性、可重用性,不僅有很高的技術門檻,而且在任務分解、團結協作方面也提出了很高的要求。

在這樣的情況下,團隊所有的工程師團結努力,儘管期間測試需求變化較大,最終仍然按客戶的要求按時完成了所有任務。

報告稱移動飛信躍居即時通訊第二

易觀國際 最新發布的第二季度即時通訊市場季度監測報告顯示,二季度中國即時通訊市場活躍賬戶達 4.26 億,同比增長 13 市場前三名的順序發生顯著變化,qq活躍賬戶數達 3.41億,以 80.2 的份額居首,msn則以 4.1 的份額滑落至第三,移動飛信迅速公升至第二。由於qq的領先地位顯著,即時通...

android 整合環信 即時通訊

工作這麼長時間了,我是乙個很懶的人 今天正好看見前同事在csdn上發的部落格,記錄了那時我們一起工作碰到的問題,勾起了美好的回憶,索性我在記錄一下剛剛做完的一些功能,花了將近多半個月做了環信的即時通訊,裡面用到了群聊,私聊,群聊列表和私聊列表。在這些功能中我碰到的最大的問題就是傳送訊息和接收訊息,t...

環信即時通訊在Android平台的部署

環信 如果想要封裝性好一點,也可以在工程裡再建立乙個環信的library,然後將sdk裡的jar和.so,都匯入到工程 在主工程的清單檔案下宣告 package 初始化 package import android.widget.toast import com.hyphenate.chat.emc...