移動應(yīng)用APP性能測試白皮書
點擊進入專題策劃:優(yōu)秀移動應(yīng)用性能監(jiān)測工具盤點
一、前言
下文中說的手機測試范圍不包含短信和電話功能,而是指用于通信功能之外的其他應(yīng)用。如今手機已經(jīng)成為大多數(shù)人的日常必需品。手機的使用量逐年增加,運行在 手機上的應(yīng)用也層出不窮。除了處理通常的電話和短信之外,人們也開始用手機來拓展業(yè)務(wù),聯(lián)絡(luò)親友,擴展職業(yè)圈,玩游戲,打廣告,買賣商品。手機和其他移動 平臺的重要性不容小覷,各大商家已經(jīng)開始著手開發(fā)手機版的產(chǎn)品,搶占這塊重要的細分市場。當今時代,手機軟件和網(wǎng)站已經(jīng)成為人們從事商業(yè)活動,提高雇員業(yè) 績和接觸目標市場的主要途徑。
以下統(tǒng)計數(shù)據(jù)顯示在這個智能化的時代手機應(yīng)用的重要性:
- 截止2011年底,全球共有87%的人口(60億)擁有手機,其中10億擁有智能手機
- 22%手機用戶每個月至少用手機上網(wǎng)一次
- 34%的美國用戶和28%歐洲用戶在手機上使用超過一種移動應(yīng)用
- 預(yù)計到2014年,手機上網(wǎng)的總量將超過電腦
- 尼爾森2012年的報道顯示,智能手機64%的時間在運行多種應(yīng)用程序
- 2011年,全球移動應(yīng)用下載量約300億
- 91%美國智能手機用戶平均每天花費2.7小時訪問社交應(yīng)用程序,是他們平均吃飯時間的兩倍,睡眠時間的三分之一
- 6億Facebook用戶中,三分之一用戶通過手機訪問,1.65億Twitter用戶中,一半的用戶通過移動設(shè)備登錄,而大約每天有2億Youtube用戶通過移動設(shè)備登錄
移動應(yīng)用的使用量和重要性與日俱增,用戶體驗的要求也越來越高。與桌面程序相比,移動應(yīng)用耗電小,速度慢,但手機用戶卻希望享受到與桌面程序同樣的加載速度。
我們在此將探討移動應(yīng)用的重要性,移動app的性能測試的難點,移動app與桌面應(yīng)用的異同,移動app的種類,對移動app進行壓力測試和性能調(diào)優(yōu)的基本方法。
二、移動應(yīng)用的類別
移動應(yīng)用按架構(gòu)可分成三大類。要做好性能測試的, 有必要了解各種應(yīng)用的種類和內(nèi)部架構(gòu)。我們來分別介紹一下各類app的基本情況。
本地應(yīng)用
需要從網(wǎng)上商店下載并安裝在特定移動設(shè)備上的可劃分到這一類。這類應(yīng)用由特定編程語言(例如安卓系統(tǒng)上用的Java和iOS系統(tǒng)上用的Object-C)編 寫,結(jié)合特定移動設(shè)備的開放API。用戶將這種應(yīng)用安裝到移動設(shè)備上之后,無需連接到互聯(lián)網(wǎng)就能使用。游戲應(yīng)用程序和從網(wǎng)上商店下載的app就是很好的例 子。
聯(lián)網(wǎng)應(yīng)用
通過移動設(shè)備上的瀏覽器訪問的應(yīng)用叫做聯(lián)網(wǎng)應(yīng)用。這類應(yīng)用是通過網(wǎng)絡(luò)技術(shù)如HTML,JQuery和 JavaScript開發(fā)的。熱門社交網(wǎng)站,如Facebook(http://m.facebook.com)和Gmail(http: //m.gmail.com)等都專門開發(fā)了基于移動設(shè)備的聯(lián)網(wǎng)應(yīng)用,倍受移動用戶親睞。
混合應(yīng)用
聯(lián)網(wǎng)應(yīng)用和本地應(yīng)用的結(jié)合被稱作混合型應(yīng)用。在這類應(yīng)用里,聯(lián)網(wǎng)應(yīng)用被內(nèi)嵌到本地移動應(yīng)用中。用戶界面像本地應(yīng)用,內(nèi)容卻需要聯(lián)網(wǎng)加載。安裝在移動設(shè)備上的Facebook,Linkedin和Twitter應(yīng)用是這類“本地界面,聯(lián)網(wǎng)內(nèi)容”的***典范。
三、提高移動應(yīng)用性能的重要性
隨著手機使用量的增加,手機性能的重要性也日益顯著。手機用戶對性能期望非常高,希望手機應(yīng)用能像在電腦上運行那么快。據(jù)統(tǒng)計:
- 71%用戶希望在手機上打開網(wǎng)頁能同電腦上一樣快
- 5秒鐘被認為是用戶能忍受的最長響應(yīng)時間
- 如果響應(yīng)時間超過5秒,74%上網(wǎng)用戶和50%移動應(yīng)用用戶會放棄
- 三分之一失望的用戶會轉(zhuǎn)向競爭對手的應(yīng)用
通常,手機用戶會嘗試兩次,如果第三次依然出現(xiàn)同樣問題,半數(shù)人再也不會使用該應(yīng)用。比起桌面程序,手機應(yīng)用的架構(gòu)更加復雜,可用資源相對更少,提高和維持快速的響應(yīng)時間比桌面程序更困難。
四、測試移動應(yīng)用的挑戰(zhàn)
做好性能測試,從來就不是一件簡單容易的事。搭建與生產(chǎn)環(huán)境相同的性能測試環(huán)境一直是做性能測試的***步,也是很重要的一步。然而,由于其復雜的架構(gòu),測試 手機程序和網(wǎng)站顯得更加困難。要覆蓋到不同種類(聯(lián)網(wǎng),本地和混合應(yīng)用)、不同平臺(iOS,安卓等等)和不同網(wǎng)絡(luò)環(huán)境 (Wifi,2G,3G,3G+,4G LTE)也是手機測試面臨的一大難題。下面介紹一下幾個手機性能測試相關(guān)的主要難題。
模擬移動網(wǎng)絡(luò)的互聯(lián)網(wǎng)連接
與桌面程序的高帶寬相比,大多數(shù)手機用戶使用的3G,3G+和4G LTE網(wǎng)絡(luò)更慢,無線連接更差。性能測試要模擬不同手機網(wǎng)絡(luò)的接入情況,這對性能測試人員來說并非易事。
移動設(shè)備種類繁多
市面上有成千上萬手機廠商,每個手機廠商傾向于使用不同的操作系統(tǒng)和手機配置。而且,即便是同一個品牌的手機,也有無數(shù)的影響因素,每個手機模型都有特定的 配置,比如操作系統(tǒng),處理器,內(nèi)存和屏幕尺寸等等。測試手機應(yīng)用時,這些因素或多或少都應(yīng)該被考慮到,絕對不是件輕松的事。面對這種情況,選擇一中功能夠 用的性能測試工具變得越來越重要。
用戶數(shù)量巨大
隨著時間的推移,使用智能手機商務(wù)應(yīng)用的用戶會急劇增加,越來越多的用戶會通過手機處理重要業(yè)務(wù)。用戶數(shù)量增加,相應(yīng)的網(wǎng)絡(luò)應(yīng)用也需要增加。你不僅僅要滿足現(xiàn)有用戶需要,還要適時地增加新功能,這對任何手機應(yīng)用都是極其重要的。
五、桌面端網(wǎng)絡(luò)應(yīng)用和手機應(yīng)用的差別
不管是桌面端網(wǎng)絡(luò)應(yīng)用還是手機應(yīng)該,性能測試的基本原理是相似的,尤其是對于手機網(wǎng)絡(luò)應(yīng)用的測試。兩者使用相同的技術(shù),你也不用為手機應(yīng)用選擇特別的性能測 試工具。測試工具只需要具備基本的性能測試能力,測試人員基本上會用就行了。盡管如此,手機應(yīng)用和桌面應(yīng)用還是有如下幾個本質(zhì)上的區(qū)別:
客戶端模式
傳統(tǒng)網(wǎng)絡(luò)應(yīng)用運行在胖客戶端上,而手機應(yīng)用使用的是瘦客戶端。胖客戶端直接從服務(wù)器端訪問應(yīng)用,而不像瘦客戶端那樣需要將數(shù)據(jù)通過信號塔中轉(zhuǎn),因而它比瘦客戶端吞吐量更大,速度更快。
網(wǎng)絡(luò)帶寬
網(wǎng)絡(luò)帶寬在性能中擔當重要角色,現(xiàn)今的桌面端應(yīng)用極大地得益于高速網(wǎng)絡(luò)。移動網(wǎng)路也在帶寬方面不斷進步,不過任然無法與前者相提并論。大多數(shù)用戶在低于3G 或4G的網(wǎng)絡(luò)下使用手機,應(yīng)用的會話時間延長,用戶的響應(yīng)時間也響應(yīng)增加,同時也消耗了更多電量。相比桌面應(yīng)用,帶寬是導致手機應(yīng)用性能差的***原因。
數(shù)據(jù)傳送
與桌面端應(yīng)用強大的CS架構(gòu)不同,手機數(shù)據(jù)得依靠信號塔傳送到用戶設(shè)備上。信號塔之間的數(shù)據(jù)傳送一直以來都很慢,也使得手機應(yīng)用性能變差。
設(shè)備電量
網(wǎng)絡(luò)應(yīng)用可以借助桌面電腦的高速處理器和內(nèi)存***化地提高性能,然而移動設(shè)備的資源卻非常有限。移動設(shè)備只能依靠有限的電池和內(nèi)存資源。
操作方式
不像桌面應(yīng)用那樣通過點擊鼠標來操作,移動設(shè)備使用手指操作從而獲得更好的用戶體驗。手指操作不如鼠標來得快。何況,設(shè)備其實需要將觸摸動作翻譯成點擊。
數(shù)據(jù)使用
在移動網(wǎng)路中,流量是收費的。數(shù)據(jù)緩存技術(shù)是桌面應(yīng)用中提高用戶體驗的常用手段,但由于流量限制,此項技術(shù)在移動應(yīng)用中無法實現(xiàn)。
性能指標
由于架構(gòu)不同,網(wǎng)絡(luò)和移動應(yīng)用的性能指標也有些許差別。除了常規(guī)指標如響應(yīng)時間和資源利用量之外,還需要監(jiān)控電池消耗、二進制大小等等。
六、手機性能測試基礎(chǔ)和***實踐
本地手機應(yīng)用腳本的錄制
你需要一個移動設(shè)備或模擬器來錄制用戶在本機移動應(yīng)用上的操作。為了測試應(yīng)用的性能而錄制用戶操作,需要暫時關(guān)閉移動設(shè)備或模擬器上的其他網(wǎng)絡(luò)流量。你需要 一個額外的設(shè)備來記錄手機或模擬器上的流量,而這個設(shè)備可以代替移動設(shè)備或模擬器接入互聯(lián)網(wǎng)。如果用來錄制的設(shè)備是運行在防火墻之后的,那就不可能獲得從 3G或4G網(wǎng)絡(luò)里的流量記錄。
解決這個問題的方法是將移動設(shè)備設(shè)置為代理錄制器。強制讓數(shù)據(jù)從錄制代理里通過,就可以直接用移動設(shè)備來錄制用戶操作。
網(wǎng)絡(luò)手機應(yīng)用腳本的錄制
從手機網(wǎng)絡(luò)應(yīng)用抓取用戶操作與桌面網(wǎng)絡(luò)應(yīng)用相似,因為兩者沿用了類似的架構(gòu)。為簡單起見,可以用桌面網(wǎng)頁瀏覽器來錄制移動網(wǎng)絡(luò)應(yīng)用的用戶操作。不過,你需要 修改用戶請求,偽裝成是來自移動設(shè)備而不是桌面電腦。瀏覽器插件可以修改用戶代理,讓請求看起來像是通過移動設(shè)備發(fā)出的。除此之外,***的桌面網(wǎng)頁瀏覽器 需要支持***的移動應(yīng)用技術(shù)如HTML5等等。
混合移動應(yīng)用腳本的錄制
就像手機網(wǎng)絡(luò)應(yīng)用一樣,桌面網(wǎng)頁瀏覽器也可以用來錄制各種各樣的混合移動應(yīng)用。你可以直接瀏覽到該手機應(yīng)用的URL地址,然后做性能測試,就像測試單純的網(wǎng)絡(luò)應(yīng)用一樣。
準確評估應(yīng)用程序的性能,必須識別并模擬最類似現(xiàn)實情況的設(shè)置。合理的負載模型是實現(xiàn)預(yù)期效果的關(guān)鍵。不同用戶的互聯(lián)網(wǎng)接入情況不盡相同(例 如,Wifi,3G和4G),成功的性能測試必須覆蓋所有的情況。所有流行的手機應(yīng)用性能測試工具都可以模擬真實世界的各種網(wǎng)絡(luò)連接。
另外,根據(jù)具體的功能,模擬不同地理區(qū)域的大用戶負責也很重要。好的性能測試工具可以借助基于云的性能測試模擬不同地理位置的大用戶負載。
測試的執(zhí)行過程是被監(jiān)控的,在所有針對不同用戶負載的應(yīng)用程序響應(yīng)被測試完之后,其結(jié)果也會對比事先定義好的服務(wù)水平協(xié)議得到全面的分析。性能測試工具可提供問題診斷功能,幫你找出根本原因從而快速解決。
七、移動應(yīng)用性能優(yōu)化技術(shù)
移動應(yīng)用的性能優(yōu)化技術(shù)取決于特定的應(yīng)用極其瓶頸特性。我們在這里分享幾個通用的優(yōu)化移動應(yīng)用性能的技巧:
- 減少客戶端到服務(wù)器的HTTP請求數(shù)量,可以縮短頁面加載時間
- 將JavaScript和CSS打包成文件并在多個頁面之間共享,也是優(yōu)化性能的好辦法
- 盡管瀏覽器緩存在移動應(yīng)用上不那么湊效,但可以用HTML5的網(wǎng)頁存儲技術(shù)替代
- 使用內(nèi)嵌腳本資源,鏈接引用會極大地延長加載時間
- 壓縮或盡量減少界面資源,少占帶寬,也能提高速度
- 根據(jù)屏幕尺寸裁剪圖像, 不僅能減小圖片大小,還能提高處理速度
八、總結(jié)
移動應(yīng)用日益普及,其重要性也日益增加,這已是不爭的事實。優(yōu)秀的用戶體驗將成為讓用戶駐足的原因之一。移動應(yīng)用的性能測試原理與傳統(tǒng)桌面應(yīng)用并無二致。但是,要全面測試移動應(yīng)用的性能參數(shù),測試人員需要理解各種移動應(yīng)用的架構(gòu)和它們與桌面應(yīng)用的根本區(qū)別,例如帶寬,處理器,屏幕尺寸等等。