李兆翠++王立群
摘 要:隨著網絡的快速發展,手機等移動終端上網人數迅速增加,極大地帶動了移動應用的快速發發展。用戶對移動應用的性能期望非常高,如何提高移動應用軟件性能,非常重要。本文介紹移動應用概念、類別、提高移動應用性能重要性,探析了移動應用軟件在移動端性能測試的主要關注點,性能測試過程以及性能測試工具。
關鍵詞:移動應用 性能測試 自動化
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1672-3791(2017)09(c)-0017-02
根據第39次互聯網發展狀況統計報告顯示,截至2016年12月中國網民規模達7.31億,其中手機網民規模達6.95億,網民中使用手機上網人群占比95.1%[1],手機不斷擠占其他個人上網設備的使用。手機上網人數的增加,帶動了移動應用的快速發展。
1 移動應用簡介
1.1 移動應用
廣義移動應用包含個人以及企業級應用,狹義移動應用指企業級商務應用。一般運行在手機、平板電腦介質為代表的移動終端上。
目前移動應用正逐漸滲透到人們生活和工作的各個方面,新聞資訊、移動音樂、手機游戲、在線視頻、即時通訊、地圖導航等豐富多彩的移動互聯網應用快速發展,深刻地改變著社會生活,人們喜歡通過各種移動應用獲取信息[2]。
1.2 移動應用的類別
移動應用可分成三大類:(1)本地應用。用戶從網上下載、安裝到特定移動設備上,無需連接到互聯網就能使用。(2)聯網應用。通過移動終端上的瀏覽器訪問網絡。(3)混合應用。聯網應用和本地應用的結合,聯網應用被內嵌到本地移動應用中,用戶界面像本地應用,內容聯網加載。
1.3 提高移動應用性能的重要性
手機用戶對性能期望非常高,希望手機應用能像在電腦上運行那么快。據統計:70%以上的用戶希望在手機上打開網頁能同電腦上一樣快,5s被認為是用戶能忍受的最長響應時間,如果響應時間超過5s,50%以上的用戶會放棄,1/3失望的用戶會轉向競爭對手的移動應用。通常手機用戶會嘗試兩次,如果第三次依然出現同樣問題,半數人再也不會使用該應用。由此可見,移動應用的性能對軟件來說非常重要。
2 性能測試
性能測試主要是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。性能測試主要目的是驗證軟件系統是否能夠達到用戶提出的性能指標,同時發現軟件系統中存在的性能瓶頸及問題,找到軟件的可擴展點,優化軟件,最后起到優化系統的目的。移動應用軟件性能測試主要是在移動端即客戶端的測試,主要關注以下內容。
2.1 響應時間測試
響應時間是移動應用軟件對用戶發出的請求做出響應所需要的時間。響應時間包括網絡傳輸時間、應用服務器處理時間和數據庫服務器處理時間。用戶要求移動應用軟件給出快速響應,一般業務響應時間不超過5s。
2.2 移動應用軟件資源占用測試
移動端移動應用軟件占用資源主要有CPU、內存、網絡流量、電量。
(1)CPU。主要測試移動應用軟件CPU占用率。應用軟件CPU占用率經常超過80%,該軟件需要調優。(2)內存。主要測試移動應用軟件內存使用率。在Android系統中,每個APP進程同其他進程共享且獨用私有內存。PSS(實際使用的物理內存)值包括自身占用的內存大小和共享庫的大小。一般用PSS來衡量一個APP的內存開銷,移動設備為每個APP進程分配的私有內存是有限制的。這就要求要合理的申請內存使用和及時釋放內存,以免發生內存泄漏。(3)網絡流量。主要測試移動應用軟件對網絡流量的消耗情況。目前的網絡類型包含2G、3G、4G、WiFi,且區分的不同運營商。在統計流量消耗時,要連接不同的網絡進行測試。(4)電量。主要測試移動應用軟件對電量的消耗情況。移動設備的電池電量有限,要測試軟件的電量使用,以免用戶手機耗電發熱,帶來不良體驗。
2.3 可靠性測試
軟件可靠性是軟件系統在規定的時間內及規定的環境條件下,完成規定功能的能力。軟件可靠性測試是指為了保證和驗證軟件的可靠性要求而對軟件進行的測試。大部分通過自動化測試工具來實現。通過軟件可靠性測試可以達到以下目的:(1)有效地發現程序中影響軟件可靠性的缺陷。(2)驗證軟件可靠性滿足一定的要求。(3)預計軟件可靠性水平。
3 性能測試的基本過程
性能測試過程是一個持續的測試和優化過程,即先進行性能測試,發現問題,試圖處理問題以提高系統的性能,再進行性能測試、優化,直到達到滿意的結果[3]。基本過程有以下幾步。
(1)確定性能測試需求,包括確定性能指標及系統會承受的負載。(2)選擇測試工具和開發相應的測試腳本。一般針對選定的關鍵業務操作來開發相應的自動化測試腳本,并進行測試腳本的數據關聯和參數化。(3)建立性能測試負載模型,確定每次請求的數據量、思考時間、加載方式和持續加載時間。(4)多次運行性能測試,獲得軟件系統的性能數據。(5)對系統資源進行跟監控和分析,發現性能瓶頸,定位代碼中的性能問題。解決軟件系統的性能問題,進行優化。(6)提交性能測試報告。
4 性能測試工具
性能測試大多通過測試工具自動化進行測試,測試工具種類繁多。經典的性能測試工具是HP LoadRunner。HP LoadRunner Mobile Recorder可進行移動端應用業務腳本錄制,VuGen可實現腳本編輯,Controller實現業務負載場景的設計、監控及執行,Analysis進行結果的分析,實現移動平臺性能測試。
其他測試工具主要有以下幾類。
(1)Android studio自帶性能測試工具。Memory Monitor主要用于內存檢測實時監測應用的內存使用情況,查找內存泄漏。CPU Monitor主要用于實時監測應用的CPU的使用情況。Network Monitor主要用于實時監測應用的網絡使用情況。
(2)第三方性能測試工具。
①Emmagee:Emmagee是網易QA團隊開發的Android性能監測小工具,主要用于監控單個App的CPU、內存、流量、啟動耗時、電量、電流等性能狀態的變化。
②Itest:Itest是科大訊飛出品,可獲取應用的資源消耗情況,用于記錄應用的CPU、內存、流量、電量等消耗。
(3)云測試平臺。國內外有一些云測試平臺,借助于云測試平臺可更真實地對移動應用軟件進行性能測試。移動應用性能測試的云測試平臺有Testing云測試、百度MTC、阿里MQC、貫眾云測試、騰訊優測、騰訊WeTest等。
5 結語
隨著網絡的快速發展,手機等移動終端上網人數迅速增加,極大地帶動了移動應用的快速發發展。用戶對移動應用的性能期望非常高,如何提高移動應用軟件性能,非常重要。
參考文獻
[1] 中國互聯網絡信息中心.第39次中國互聯網絡發展狀況統計報告[EB/OL].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/,2017-06-24.
[2] 王立群,楊靜.移動應用軟件性能測試研究[J].科技風,2015(21):115.
[3] 朱少民.軟件測試方法和技術[M].3版.北京:清華大學出版社,2016.endprint