移動應用性能測試白皮書

前言

下文中說的手機測試範圍不包含短信和電話功能,而是指用於通信功能之外的其他應用。如今手機已經成爲大多數人的日常必需品。手機的使用量逐年增加,運行在手機上的應用也層出不窮。除了處理通常的電話和短信之外,人們也開始用手機來拓展業務,聯絡親友,擴展職業圈,玩遊戲,打廣告,買賣商品。手機和其他移動平臺的重要性不容小覷,各大商家已經開始着手開發手機版的產品,搶佔這塊重要的細分市場。當今時代,手機軟件和網站已經成爲人們從事商業活動,提高僱員業績和接觸目標市場的主要途徑。

以下統計數據顯示在這個智能化的時代手機應用的重要性:

  • 截止2011年底,全球共有87%的人口(60億)擁有手機,其中10億擁有智能手機

  • 22%手機用戶每個月至少用手機上網一次

  • 34%的美國用戶和28%歐洲用戶在手機上使用超過一種移動應用

  • 預計到2014年,手機上網的總量將超過電腦

  • 尼爾森2012年的報道顯示,智能手機64%的時間在運行多種應用程序

  • 2011年,全球移動應用下載量約300億

  • 91%美國智能手機用戶平均每天花費2.7小時訪問社交應用程序,是他們平均吃飯時間的兩倍,睡眠時間的三分之一

  • 6億Facebook用戶中,三分之一用戶通過手機訪問,1.65億Twitter用戶中,一半的用戶通過移動設備登錄,而大約每天有2億Youtube用戶通過移動設備登錄


移動應用的使用量和重要性與日俱增,用戶體驗的要求也越來越高。與桌面程序相比,移動應用耗電小,速度慢,但手機用戶卻希望享受到與桌面程序同樣的加載速度。

我們在此將探討移動應用的重要性,移動app的性能測試的難點,移動app與桌面應用的異同,移動app的種類,對移動app進行壓力測試和性能調優的基本方法。

移動應用的類別

移動應用按架構可分成三大類。要做好性能測試的, 有必要了解各種應用的種類和內部架構。我們來分別介紹一下各類app的基本情況。


784d_19175602_35647.jpg

本地應用

需要從網上商店下載並安裝在特定移動設備上的可劃分到這一類。這類應用由特定編程語言(例如安卓系統上用的Java和iOS系統上用的Object-C)編寫,結合特定移動設備的開放API。用戶將這種應用安裝到移動設備上之後,無需連接到互聯網就能使用。遊戲應用程序和從網上商店下載的app就是很好的例子。

聯網應用

通過移動設備上的瀏覽器訪問的應用叫做聯網應用。這類應用是通過網絡技術如HTML,JQuery和JavaScript開發的。熱門社交網站,如Facebook(http://m.facebook.com)和Gmail(http://m.gmail.com)等都專門開發了基於移動設備的聯網應用,倍受移動用戶親睞。

混合應用

聯網應用和本地應用的結合被稱作混合型應用。在這類應用裏,聯網應用被內嵌到本地移動應用中。用戶界面像本地應用,內容卻需要聯網加載。安裝在移動設備上的Facebook,Linkedin和Twitter應用是這類“本地界面,聯網內容”的最佳典範。

提高移動應用性能的重要性

隨着手機使用量的增加,手機性能的重要性也日益顯著。手機用戶對性能期望非常高,希望手機應用能像在電腦上運行那麼快。據統計:


  • 71%用戶希望在手機上打開網頁能同電腦上一樣快

  • 5秒鐘被認爲是用戶能忍受的最長響應時間

  • 如果響應時間超過5秒,74%上網用戶和50%移動應用用戶會放棄

  • 三分之一失望的用戶會轉向競爭對手的應用


通常,手機用戶會嘗試兩次,如果第三次依然出現同樣問題,半數人再也不會使用該應用。比起桌面程序,手機應用的架構更加複雜,可用資源相對更少,提高和維持快速的響應時間比桌面程序更困難。


測試移動應用的挑戰

做好性能測試,從來就不是一件簡單容易的事。搭建與生產環境相同的性能測試環境一直是做性能測試的第一步,也是很重要的一步。然而,由於其複雜的架構,測試手機程序和網站顯得更加困難。要覆蓋到不同種類(聯網,本地和混合應用)、不同平臺(iOS,安卓等等)和不同網絡環境(Wifi,2G,3G,3G+,4G LTE)也是手機測試面臨的一大難題。下面介紹一下幾個手機性能測試相關的主要難題。

模擬移動網絡的互聯網連接

與桌面程序的高帶寬相比,大多數手機用戶使用的3G,3G+和4G LTE網絡更慢,無線連接更差。性能測試要模擬不同手機網絡的接入情況,這對性能測試人員來說並非易事。

移動設備種類繁多

市面上有成千上萬手機廠商,每個手機廠商傾向於使用不同的操作系統和手機配置。而且,即便是同一個品牌的手機,也有無數的影響因素,每個手機模型都有特定的配置,比如操作系統,處理器,內存和屏幕尺寸等等。測試手機應用時,這些因素或多或少都應該被考慮到,絕對不是件輕鬆的事。面對這種情況,選擇一中功能夠用的性能測試工具變得越來越重要。

用戶數量巨大

隨着時間的推移,使用智能手機商務應用的用戶會急劇增加,越來越多的用戶會通過手機處理重要業務。用戶數量增加,相應的網絡應用也需要增加。你不僅僅要滿足現有用戶需要,還要適時地增加新功能,這對任何手機應用都是極其重要的。

桌面端網絡應用和手機應用的差別

不管是桌面端網絡應用還是手機應該,性能測試的基本原理是相似的,尤其是對於手機網絡應用的測試。兩者使用相同的技術,你也不用爲手機應用選擇特別的性能測試工具。測試工具只需要具備基本的性能測試能力,測試人員基本上會用就行了。儘管如此,手機應用和桌面應用還是有如下幾個本質上的區別:

客戶端模式

傳統網絡應用運行在胖客戶端上,而手機應用使用的是瘦客戶端。胖客戶端直接從服務器端訪問應用,而不像瘦客戶端那樣需要將數據通過信號塔中轉,因而它比瘦客戶端吞吐量更大,速度更快。

網絡帶寬

網絡帶寬在性能中擔當重要角色,現今的桌面端應用極大地得益於高速網絡。移動網路也在帶寬方面不斷進步,不過任然無法與前者相提並論。大多數用戶在低於3G或4G的網絡下使用手機,應用的會話時間延長,用戶的響應時間也響應增加,同時也消耗了更多電量。相比桌面應用,帶寬是導致手機應用性能差的最大原因。

數據傳送

與桌面端應用強大的CS架構不同,手機數據得依靠信號塔傳送到用戶設備上。信號塔之間的數據傳送一直以來都很慢,也使得手機應用性能變差。

設備電量

網絡應用可以藉助桌面電腦的高速處理器和內存最大化地提高性能,然而移動設備的資源卻非常有限。移動設備只能依靠有限的電池和內存資源。

操作方式

不像桌面應用那樣通過點擊鼠標來操作,移動設備使用手指操作從而獲得更好的用戶體驗。手指操作不如鼠標來得快。何況,設備其實需要將觸摸動作翻譯成點擊。

數據使用

在移動網路中,流量是收費的。數據緩存技術是桌面應用中提高用戶體驗的常用手段,但由於流量限制,此項技術在移動應用中無法實現。

性能指標

由於架構不同,網絡和移動應用的性能指標也有些許差別。除了常規指標如響應時間和資源利用量之外,還需要監控電池消耗、二進制大小等等。

手機性能測試基礎和最佳實踐

本地手機應用腳本的錄製

你需要一個移動設備或模擬器來錄製用戶在本機移動應用上的操作。爲了測試應用的性能而錄製用戶操作,需要暫時關閉移動設備或模擬器上的其他網絡流量。你需要一個額外的設備來記錄手機或模擬器上的流量,而這個設備可以代替移動設備或模擬器接入互聯網。如果用來錄製的設備是運行在防火牆之後的,那就不可能獲得從3G或4G網絡裏的流量記錄。

解決這個問題的方法是將移動設備設置爲代理錄製器。強制讓數據從錄製代理裏通過,就可以直接用移動設備來錄製用戶操作。

網絡手機應用腳本的錄製

從手機網絡應用抓取用戶操作與桌面網絡應用相似,因爲兩者沿用了類似的架構。爲簡單起見,可以用桌面網頁瀏覽器來錄製移動網絡應用的用戶操作。不過,你需要修改用戶請求,僞裝成是來自移動設備而不是桌面電腦。瀏覽器插件可以修改用戶代理,讓請求看起來像是通過移動設備發出的。除此之外,最新的桌面網頁瀏覽器需要支持最新的移動應用技術如HTML5等等。

混合移動應用腳本的錄製

就像手機網絡應用一樣,桌面網頁瀏覽器也可以用來錄製各種各樣的混合移動應用。你可以直接瀏覽到該手機應用的URL地址,然後做性能測試,就像測試單純的網絡應用一樣。

c9bf_19180849_47171.jpg

準確評估應用程序的性能,必須識別並模擬最類似現實情況的設置。合理的負載模型是實現預期效果的關鍵。不同用戶的互聯網接入情況不盡相同(例如,Wifi,3G和4G),成功的性能測試必須覆蓋所有的情況。所有流行的手機應用性能測試工具都可以模擬真實世界的各種網絡連接。

另外,根據具體的功能,模擬不同地理區域的大用戶負責也很重要。好的性能測試工具像AgileLoad可以藉助基於雲的性能測試模擬不同地理位置的大用戶負載。

測試的執行過程是被監控的,在所有針對不同用戶負載的應用程序響應被測試完之後,其結果也會對比事先定義好的服務水平協議得到全面的分析。好的性能測試工具如AgileLoad,也提供問題診斷功能,幫你找出根本原因從而快速解決。

移動應用性能優化技術

移動應用的性能優化技術取決於特定的應用極其瓶頸特性。我們在這裏分享幾個通用的優化移動應用性能的技巧:


  • 減少客戶端到服務器的HTTP請求數量,可以縮短頁面加載時間

  • 將JavaScript和CSS打包成文件並在多個頁面之間共享,也是優化性能的好辦法

  • 儘管瀏覽器緩存在移動應用上不那麼湊效,但可以用HTML5的網頁存儲技術替代

  • 使用內嵌腳本資源,鏈接引用會極大地延長加載時間

  • 壓縮或儘量減少界面資源,少佔帶寬,也能提高速度

  • 根據屏幕尺寸裁剪圖像, 不僅能減小圖片大小,還能提高處理速度


總結

移動應用日益普及,其重要性也日益增加,這已是不爭的事實。優秀的用戶體驗將成爲讓用戶駐足的原因之一。移動應用的性能測試原理與傳統桌面應用並無二致。但是,要全面測試移動應用的性能參數,測試人員需要理解各種移動應用的架構和它們與桌面應用的根本區別,例如帶寬,處理器,屏幕尺寸等等。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章