Android性能測試,跟pc性能測試一樣分為用戶端及伺服器,但在用戶端上的性能測試分為2類,對于應用性能測試,包括很多測試項,如啟動時間、記憶體、CPU、GPU、功耗、流量等。但針對rom版本的性能測試,一般關注功耗。
一、不同版本的性能測試
1、rom版本的性能測試
rom版本一般就關注功耗測試,不過rom版本的功耗測試跟應用的功耗測試會有所差異,當然隻是用例設計方面的差異,工具仍然采用安捷倫電源儀進行。
2、應用的性能測試
應用的性能測試,對于啟動時間、記憶體、CPU測試大家一般都使用外部提供的第三方工具來輔助測試,如GT、安測試等、這些工具的原理都是基于調用Android底層的一些api來擷取到測試所用到的值,當然我們也可以采用其他方法,如使用Android本身提供的一套adb即可完成上述測試。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SNlFTOzYjN4ETNhFDZmhTYiZWNlJDZzUDOzQTMxEmNi9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
對于GPU、功耗、等測試來說,用第三方工具測試得到的數值一般都不是很準确,這個時候我們需要引入硬體來進行測試了,GPU可以采用高速相機來進行測試,功耗可以使用萬用表或安捷倫電源儀來進行測試(ps:有硬體動手能力的可以DIY一個小闆進行)。
3、Android的性能測試
該本分内容為今天主要詳述的内容,具體分析見下文。
二、關于Android的性能測試
1、啟動時間
首先,我們來說說啟動時間。關于應用的啟動時間的測試,分為三類:
①首次啟動--應用首次啟動所花費的時間
②非首次啟動--應用非首次啟動所花費的時間
③應用界面切換--應用界面内切換所花費的時間那麼如何來做啟動時間的測試呢,一般我們分為2類,一類為使用軟體來測試,一類為使用硬體來測試,首先我們說說軟體測試的方法,可能大部分人都比較通曉使用Android提供的DisplayManager來擷取activity的啟動時間。
步驟:
通過計算activity最後剩餘的時間之和即可(這裡可以使用excel表格自動相加也可以使用算法,我就不詳細介紹了)。
除了Display Manager的列印時間方法後,還有通過關注am的啟動時間及Display Manager列印的結束時間,通過兩者時間之間想減也能得到應用的啟動時間,還有可以通過Power Manager來計算列印時間,在應用啟動的時候,我們可以關注Activity Manager-Launch的變化來計算應用的啟動時間,還有可以通過截圖統計啟動時間,對于自研應用,最效率的莫過于直接在程式中插入列印時間的節點了。
除了軟體測試的方法,還有硬體測試,我們可以使用高速相機或者手機,采用錄像的方法把應用啟動過程給錄制下來,然後通過人工數幀或者程式數幀的方式計算啟動時間。
2、記憶體消耗
1)記憶體消耗概念
這個測試節點的設計目标是為了讓應用不占用過多的系統資源,且及時釋放記憶體,保障整個系統的穩定性,當然關于記憶體測試,在這裡我們需要引入幾個概念:空閑狀态、中等規格、滿規格。
空閑狀态:指打開應用後,點選home鍵讓應用背景運作,此時應用處于的狀态叫做空閑。
中等規格和滿規格:指的是對應用的操作時間的間隔長短不一,中等規格時間較長,滿規格時間較短。
接下來我們說說在記憶體測試中,存在很多測試子項,如下清單所示:
①空閑狀态下的應用記憶體消耗情況
②中等規格狀态下的應用記憶體消耗情況
③滿規格狀态下的應用記憶體消耗情況
④應用記憶體峰值情況
⑤應用記憶體洩露情況
⑥應用是否常駐記憶體
⑦壓力測試後的記憶體使用情況
2)關于Android記憶體測試方法分類
①使用Android本身提供的ActivityManager.MemoryInfo()方法獲得(此方法請百度或google)此類第三方工具有如網易的Emmagee、安測試、騰訊的GT等。
②使用Android提供的對應内容,來擷取。
③使用Android提供的procrank。這裡我們詳解一下procrank方法(批處理)。
首先,去google擷取procrank、procmem、libpagemap.so三個檔案;然後push檔案,執行;最後,剩下的就是整理測試資料了。
3)關于記憶體洩露方面的測試
可以通過幾個方面來測試:
①通過monkey壓力測試記錄記憶體使用情況,分析資料曲線圖及日志情況;
②通過eclipse上的mat+heap來分析存在記憶體洩露方面的節點。
3、CPU方面的測試
1)子項清單
CPU跟記憶體一樣,存在一些測試子項,如下清單所示:
①空閑狀态下的應用CPU消耗情況
②中等規格狀态下的應用CPU消耗情況
③滿規格狀态下的應用CPU消耗情況
④應用CPU峰值情況
2)CPU的測試方法
1.使用Android提供的
2.使用top指令
3.第三方軟體
例如:3Dmax、安兔兔等。
3)GPU的測試方法
自從CPU及記憶體後,GPU這個詞對于PC性能測試者也不陌生了。3Dmax、安兔兔等之類的第三方軟體,讓GPU在移動端性能測試領域都知曉。但對于應用的GPU該如何來測試呢?我們先引入幾個名詞:過度繪制、幀率、幀方差。
過度繪制:是指界面顯示的activity套接了多層而導緻;
幀率:是指螢幕重新整理率;
幀方差:是指螢幕重新整理幀間隔方差。
對于GPU的測試主要包括以下幾個測試子項:界面過度繪制、螢幕滑動幀速率、螢幕滑動平滑度。
①過度測繪
它主要通過人工進行測試。打開開發者選項中的顯示GPU過度繪制來進行測試(PS:隻有Android4.2及以上的版本才具備此功能)。驗收的标準為:
a、不允許出現黑色像素
b、不允許存在4x過度繪制
c、不允許存在面積超過螢幕1/4區域的3x過度繪制(淡紅色區域)
②螢幕滑動幀速率的2種主要方法
軟體測試方法
a、手機端需打開開發者選項中的啟用跟蹤後勾選Graphics和View
b、啟動SDK工具Systrace插件,勾選被測應用,點選Systrace插件,在彈出的對話框中設定持續抓取時間,在tracetaps下面勾選gfx及view選項,
c、人滑動界面可以通過節拍來進行滑動或者掃動,幀率資料會儲存到預設路徑下,預設名稱為trace.html
d、将trace.html檔案拷貝到linux系統下通過指令進行轉換,生成trace.csv檔案:
e、用excel打開檔案計算得到幀率
硬體方法
這裡需要引入高速相機,打開高速相機,開啟攝像模式,錄制人滑動或者掃動被測應用的視訊,再通過人工或者程式數幀的方法對結果進行計算得到幀率。
③螢幕滑動平滑度測試
方法如同幀率測試,唯一的差異就是最後的結果計算公式的差異。GPU的測試目前業界使用的均為硬體來進行,軟體測試的資料相較硬體差異較大,對于幀率及幀方差的測試标準而言,需對待不同機型設定不同的标準。
4、功耗測試
1)功耗測試類别
功耗測試主要從以下幾個方面入手進行測試:
a、測試手機安裝目标APK前後待機功耗無明顯差異。
b、常見使用場景中能夠正常進入待機,待機電流在正常範圍内。
c、長時間連續使用應用無異常耗電現象。
2)測試方法
①軟體測試
A、第三方工具:如金山電池管家之類的;
B、自寫工具:這裡一般會使用3種方法:
第一種,基于Android提供的PowerManager.WakeLock來進行;
第二種,比較複雜一點,功耗的計算=CPU消耗+Wakelock消耗+資料傳輸消耗+GPS消耗+Wi-Fi連接配接消耗;
第三種,通過adbshelldumpsysbattery來擷取。
②硬體測試
在這裡,我們一般使用萬用表或者功耗儀進行測試。使用功耗儀測試的時候,需要制作假電池來進行的,有些不能拔插電池的手機,還需要焊接才能進行功耗測試。
5、流量測試
性能測試的——流量,當然我所指的性能測試是針對大部分應用而言的,可能還有部分應用會關注網速、弱網之類的測試。
1)流量測試,同樣需要引入幾個名詞:中等負荷、高負荷。
中等負荷:應用正常操作
高負荷:應用極限操作
2)測試項包括:
a、應用首次啟動流量提示;
b、應用背景連續運作2小時的流量值;
c、應用高負荷運作的流量峰值;
d、應用中等負荷運作時的流量均值;
3)流量測試一般都是用軟體來進行的,這裡我們一般分為2類:
a、采用市場提供的第三方工具來進行測試,如流量寶之類的;
b、自研工具進行測試。
好了就說這麼多,希望上述内容對大家有用~想了解更多性能測試方法,可持續關注公衆号“織雀聊測試”内容,也可微信搜尋小程式“織雀雲學院”,更多免費軟體測試視訊課程供您選擇!