移動app性能測試(待完善)


移動終端性能測試是測試手機終端是否符合特定性能指標的測試,包括有:內存、CPU、電量、流量、流暢度、時延等

測試准備:測試賬號、測試需求、測試用例、待測手機、待測應用包、測試工具、測試電腦

 

 

 

1.  時延篇

A.Android

工具:ffmpeg

 

測試方法:

1)待測試的手機安裝應用后打開應用執行測試用例

2)Step1的測試用例執行的過程用另外一台手機進行視頻錄制

3)錄制好的視頻保存到電腦上,用ffmpeg工具執行腳本(ffmpeg.exe -i D:\ab\IMG_0425.MOV -r 30 -s 640x480 D:\ab/%d.png)將視頻轉換成靜態圖

4)通過靜態圖分析測試執行的時延數據(間隔時間(秒)=(結束幀數-開始幀數)*1/30),這里開始幀數圖片建議是點擊到頁面的那一張,結束幀數圖片有兩種情況,一種是出現首個元素的圖片,一種是所有元素渲染完的那張圖片,根據實際情況需求去計算

 

B.iPhone同上

備注:ffmpeg網上下載即可

 

 

 

 

2.  內存篇

A.Android

工具:GT or DDMS

內存檢查方法:

方向:

1.邊界值檢測

2.功能增持檢測

3.極限檢測(適合有點內存潔癖的產品風格)

DDMS

Dalvik Debug Monitor Server,虛擬機調試監控服務,在Android官網(http://developer.android.com/sdk/index.html)下載SDK,下載SDK后,會發現下載的ADT套件中包括eclipse,sdk,DDMS,X86 Android虛擬機等等,打開其中的Eclipse后,就會看到右上方的DDMS tab頁

點擊就會進入DDMS。

DDMS從左至右分為三個部分,設備列表,文件詳情,資源詳情。

 

 

 

 

一、什么是內存泄露

    內存泄露是指程序中間動態分配了內存,但是在程序結束時沒有釋放這部分內存,從而造成那一部分內存不可用。導致系統運行變慢或應用程序崩潰。

二、如何檢測Android中的內存泄露

    Android tools中的DDMS帶有一個很不錯的內存監測工具Heap,可以檢測一個進程的內存變化,根據這個工具我們大致可以測試某個應用是否存在泄漏的可能。

三、具體操作

   1、打開eclipse,切換到DDMS,並確認Devices視圖、Heap視圖都是打開的;

   2、將手機通過USB鏈接至電腦,鏈接時,選擇 “USB調試”模式;

   3、鏈接成功后,在DDMS的Devices視圖中將會顯示手機設備的序列號,以及設備中正在運行的部分進程信息

   4、在Devices 中,點擊要監控的程序。

   5、點擊Devices視圖界面中最上方一排圖標中的“Update Heap”

   6、點擊Heap視圖

   7、點擊Heap視圖中的“Cause GC”按鈕;

   8、到此為止需檢測的進程就可以被監視。如下圖:

 

 

 

 

 

四、如何判斷內存泄露

   Heap視圖中部有一個Type叫做data object,即數據對象,也就是我們的程序中大量存在的類類型的對象。在data object一行中有一列是“Total Size”,其值就是當前進程中所有Java數據對象的內存總量,一般情況下,這個值的大小決定了是否會有內存泄漏。可以這樣判斷:

1.進入某應用,不斷的操作該應用,同時注意觀察data object的Total Size值

2.正常情況下Total Size值都會穩定在一個有限的范圍內.

3.反之如果代碼中存在沒有釋放對象引用的情況,則data object的Total Size值在每次GC后不會有明顯的回落,隨着操作次數的增多Total Size的值會越來越大,直到到達一個上限后導致進程被kill掉。

 

  在我們的程序中,要是出現某個進程出現了不斷增加的現象,可能該應用就存在泄漏的問題。如果某個進程在操作過程中出現程序崩潰,可能該應用程序已申請不到空間,可能存在內存泄露。

 

 

B.iPhone

前提:GT or Mac機裝有iTools和Instruments

1)內存檢查方法

  工具:Instruments Activity Monitor

   1)打開Instruments然后選擇Activity Monitor工具

 

   2)打開后界面如下,可以幫助我們通過進程Id或程序名稱監控每個程序的物理內存、虛擬內存的消耗:

 

   3)在Choose Target勾選iPhone&選擇被測程序

 

 

 

 

4)點擊Record后會顯示出當前手機上進程運行情況,這里我們只需要關注被測應用

 

2)內存泄露檢查方法

  工具:Instruments Leaks

1) 啟動QQ程序

2) 啟動Instruments Leaks工具,點擊Choose Target或attach到QQ,點擊Record開始檢測

3) 操作QQ,執行某個功能或某條測試用例

4) 功能執行完畢后再次點擊Record停止檢測,點擊中部的工具條,從Leaks視圖切換為Call Tree視圖,並在左側的面板中勾選“Invert Call Tree”及“Hide System Libraries”

5) Call Tree視圖中列出了檢測到的泄露點的函數調用位置,將這些泄露點提單處理

(如果用來測試的ipa包是本地編譯出來的,雙擊函數名可以跳轉到QQ源碼的泄露位置)

 

 

 

 

3.流暢度篇

A.Android

工具:GT、Python和Python腳本

 

測試方法:

1)安裝python2.7.X,http://www.python.org/getit/,並將python的安裝目錄設置到系統環境變量PATH中。注意,當前腳本僅支持2.6.X、2.7.X版本的python。請不要使用3.3.X版本。

2)下載並使用腳本:

http://files.cnblogs.com/files/daxiong2014/android%E4%B8%8BFPS%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7.rar

      *僅監控FPS,執行runFPSmonitor.bat

       *自動滑動並監控FPS,執行runScrolltest.bat

 

3)打開要測試FPS值的界面,准備測試場景,執行Scrolltest腳本,並等待腳本自動執行結束。

4)打開結果文件,計算平均FPS值。

備注:手機需要root權限,連接至腳本運行的電腦   

 

 

    

B.iPhone

工具:Instrument Core Animation

 

測試方法:

1)打開Instrument,選擇流暢度測試工具Core Animation

 

2)在Choose Target勾選iPhone&選擇被測程序

 

  3)點擊Record開始監測

  4)上下滑動待測手機上的應用程序頁面

  5)點擊stop停止監測,根據數據得到對應的流暢度曲線,分析數據,進行對比,得出結論。

 

 

 

 

1.  流量篇

A.Android

工具:GT & Fiddler

 

測試方法:

 

 

B.iPhone

工具:

 

測試方法:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM