日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

全网最全移动端App性能测试方法,值得收藏!

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全网最全移动端App性能测试方法,值得收藏! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關注上方“測試開發技術”,選擇星標,

干貨技術,第一時間送達!

普遍的apk性能測試,主要是以下七類

1、響應

2、內存

3、cpu

4、FPS (app使用的流暢度)

5、GPU過度渲染

6、耗電

7、耗流

(app除了這些性能測試,還有:手機版本號兼容性,屏幕分辨率兼容性,穩定性測試,安全測試等,后續會持續更新… 流量測試同這些一起更新,這里就不在說明了 )


一、響應

軟件的響應時間和響應速度直接影響到用戶的體驗度,如果一個軟件,遲遲加載不出來,會直接影響到軟件的日活、留存。因此對于一個軟件,對響應速度測試是必不可少的。

主要測試點:

1、冷啟動:首次啟動app的時間間隔(只是啟動時間,不包括頁面加載)

2、熱啟動:非首次啟動app的時間間隔(只是啟動時間,不包括頁面加載)

3、完全啟動:從啟動到首頁完全加載出來的時間間隔

4、有網啟動:從發起跳轉,到頁面完全加載出來的時間間隔

5、無網啟動:從發起跳轉,到頁面完全加載出來的時間間隔

(在項目中,主要測試關注點是冷啟動,熱啟動)

測試方法:

1、使用adb命令

1) 冷啟動

adb shell am start -W packageName/ActivityName(絕對路徑,首個Activity)

含義:

ThisTime: 該Activity的啟動耗時;

TotalTime: 應用自身啟動耗時, ThisTime+應用application等資源啟動時間;

WaitTime: 系統啟動應用耗時, TotalTime+系統資源啟動時間

2)熱啟動:按back按鍵后再啟動adb命令

測試標準:冷啟動時間不超過1.5s, 熱啟動不超過1s.

3)完全啟動,無網啟動,有網啟動都可以通過charles抓包來獲取啟動的時間

charles是一個很強大的抓包工具,除了截取請求還能進行單接口壓測,修改請求參數并發出請求,以及模擬無網,弱網,2G,3G,4G等。能解決app的很多專項測試。

限制網絡情況需要用到charles的一個功能:Throttle Setting

通過設置網速和抓包,可以獲取啟動時間,但是有一定的誤差。在項目中,一般只需要測試冷啟動,熱啟動便可。

2、使用AndroidStudio的Android Monitor,查看手機日志系統輸出

Android Monitor總共有5大模塊:logcat, memory, cpu, network,GPU

我們可以通過logcat獲取應用的響應時間(如何使用,內存中有介紹)

3、代碼日志輸入查看

直接源碼打日志,輸入各個位置的耗時操作最為有效,需要源碼。

4、借用工具,高速相機,但是成本較高。(如下圖:目前項目團隊使用的測試工具)

原理:通過壓力感應來自動識別起始點,回放圖片判斷結束點,(一般默認手機界面靜止不動為結束點), 鍵盤按S鍵為起始點,按F鍵為結束點。

這里便不介紹用法了。

二、內存

在Android系統中,每個APP進程除了同其他進程共享內存(shared dirty)外,還獨用私有內存(private dirty),通常我們使用PSS(私有內存+比例分配共享內存)來衡量一個APP的內存開銷。由于一個移動設備的內存是固定的,如果內存消耗過大就會造成應用卡頓或者閃退,需要對內存進行測試。正常情況下,應用不應占用過多的內存資源,且能夠及時釋放內存,保證整個應用內的穩定性和流暢性。

測試點:

1、空閑狀態:切換至后臺或者啟動后不做任何操作,消耗內存最少。

2、中強度狀態:時間偏長的操作應用。

3、高強度狀態:高強度使用應用,可以跑monkey來測試(通常用來測試內存泄漏)。

內存泄漏:指應用里的內存一直沒有釋放,內存一直增加 ,系統內存一直減少?

測試方法:

1、使用adb命令:adb shell dumpsys meminfo packageName

獲取應用包名和Actively:

adb shell dumpsys window | findstr mCurrentFocus

測試關注點:

1、Native heap alloc

2、Dalvik heap alloc

3、PSS

2、使用性能測試工具:Emmagee(只支持Android)

Emmagee是網易開發的一款測安卓應用性能的測試apk

1、安裝Emmagee.apk,打開。

2、選擇需要測試性能的應用啟動

3、被測應用界面會展示內存、CPU、電流、流量等數據

4、stop Test之后,在本地SD卡中保存一份性能測試數據,可以從里面獲取內存信息。

5、可以通過execl將數據轉化成圖表,更直觀的查看各性能指標的數據。

(保存地址:/sdcard/Emmagee/******* .csv文件)

生成的csv文件:

原理Emmagee是使用Android自身提供的ActivityManager.MemoryInfo()方法獲得

可查看:cpu 內存 流量 電量 FPS(流暢度)是一個相對比較好的選擇

但是只支持安卓6.0及以下的版本

除了Emmagee,還有騰訊提供的一個同樣測試性能的app, GT。使用與Emmagee大體一致,但是GT除了支持Android,同樣支持ios。GT相對于Emmagee功能也更強大:性能測試(CPU、內存、流量、電量、幀率/流暢度等等)、開發日志的查看、Crash日志查看、網絡數據包的抓取、APP內部參數的調試、真機代碼耗時統計。

3、使用AndroidStudio 自帶 CPU 和內存檢測功能 – Android Monitor

(首先要下載并安裝好Android Studio)

Android Monitor 可以檢測CPU 和內存,能夠繪制出變化圖,可以直觀明了的看出內存和cpu的變化曲線。

Android Monitor ,有5個模塊 :logcat、Memory、CPU、Network、GPU。

關注點:

1、退出某個頁面后,內存是否有回落。

如果沒有及時回落,且程序自動GC或者手動GC,那便可確認有問題。

2、進行某個操作后,內存是否增長過快。

如果增長過快,也有可能存在風險,需重復操作確認。

三、CPU

CPU測試,主要關注的是cpu的占用率。很多時候,我們玩手機時,會出現發熱發燙,那是因為CPU使用率過高,CPU過于繁忙,會使整個手機無法響應用戶,整體性能降低,用戶體驗就會很差,也容易引起ANR(application not responding, 主線程(UI線程)如果在規定時內沒有處理完相應工作,就會出現ANR)等等一系列問題。

測試點:

1).在空閑時間(切換至后臺)的消耗,基本沒大應用使用cpu

2).在運行一些應用的情況下,cpu已占50%的情況下,觀察應用程序占用cpu的情況

3).在高負荷的情況下看CPU的表現(cpu占用應是在80%以上)

具體場景:

1、應用空閑狀態運行監測CPU占用率

空閑狀態:應用按Home鍵退到后臺,不再占用系統的狀態(通常是滅屏半分鐘后)

CPU占用率=0%

2、應用中等規格運行監測CPU占用率

中等規格:模擬用戶最常見的使用場景

CPU占用率≤30%

3、應用滿規格長時間正常運行監測CPU占用率

Monkey測試

CPU占用率≤30%

4、應用正常運行期間監測CPU占用率峰值

應用正常運行:打開應用進行基本操作

CPU占用率≤50%

測試方法:

1、使用adb命令:

1) top -m -s cpu |grep packageName

top cpu 參數:

-m 顯示最大數

-s 按指定行排序

-t 顯示進程名稱

-n 在退出前刷新幾次

-d 刷新間隔

如果反復進行某個操作,cpu占用過高且一直無法釋放,那便可能存在風險。

2)dumpsys cpuinfo |grep packageName

2、使用第三方測試工具:Emmagee、GT等。

3、使用AndroidStudio自帶的檢測工具Android Monitor。

四、FPS(應用的使用流暢度)

FPS是圖像領域中的定義,是指畫面每秒傳輸幀數,通俗來講就是指動畫或視頻的畫面數。FPS是測量用于保存、顯示動態視頻的信息數量。每秒鐘幀數愈多,所顯示的動作就會愈流暢。

′一般來說,Android設備的屏幕刷新率為60幀/s,要保持畫面流暢不卡頓,要求每一幀的時間不超過1000/60=16.6ms,這就是16ms的黃金準則,如果中間的某些幀的渲染時間超過16ms,就會導致這段時間的畫面發生了跳幀,因此原本流暢的畫面變發生了卡頓。

測試方法:

1、adb命令

1)打開手機:開發者選項—>profile GPU rendering —> in adb shell dumpsys gfxinfo

2) 操作要測試的apk

3) cmd窗口輸入命令:adb shell dumpsys gfxinfo packageName

4) 得到一個矩陣數據,計算矩陣中幀率大于16的點所占比例,即為卡頓比

含義:

Draw: 表示在Java中創建顯示列表部分中,OnDraw()方法占用的時間。

Process:表示渲染引擎執行顯示列表所花的時間,view越多,時間就越長。

Execute:表示把一幀數據發送到屏幕上排版顯示實際花費的時間。

Draw + Process + Execute = 完整顯示一幀 ,這個時間要小于16ms才能保存每秒60幀。

5)通過execl進行表格處理可以直觀的查看軟件的流暢度

2、除了使用adb shell, 還可以直接使用開發者選項自帶的圖表

1)打開手機:開發者選項—>profile GPU rendering —> on screen as bars

2) 操作被測的軟件

3)界面會顯示如下的一個統計數據表

2、使用第三方測試工具:Emmagee、GT等。

3、使用AndroidStudio自帶的檢測工具Android Monitor。

五、GPU渲染

GPU渲染是指在一個像素點上繪制多次(超過一次):顯示一個什么都沒有做的activity界面算作畫了1層,給activity加一個背景是第2層,在上面放了一個Text View(有背景的Text View)是第3層,Text View顯示文本就是第4層僅僅只是為了顯示一個文本,卻在同一個像素點繪制了四次,這是一定要優化的。過度繪制對動畫性能的影響是極其嚴重的,如果你想要流暢的動畫效果,那么一定不能忽視過度繪制。

測試方法:

1、手機自動的Debug GPU overdraw

1)打開手機—>設置—>開發者選項—>Debug GPU overdraw—>show overdraw areas

2)打開被測的應用

GPU過渡渲染不同的顏色代表不同的繪制程度

1)、原色:無過渡繪制

2)、藍色:繪制一次 (理想狀態)

3)、綠色:繪制二次

4)、淺紅:繪制三次 (可以優化)

5)、深紅:繪制四次 (必須優化)

測試指標:

1、控制過渡繪制為2x

2、不允許存在4x過渡繪制

3、不允許存在面積超過屏幕1/4的3x過渡繪制

六、耗電量

測試應用對電量的消耗前需要對手機本身的電量消耗有個大概了解,測試前先看規定時間內手機正常待機下(重啟后待機)電量消耗為多少。然后再啟動待測試APP看看消耗的電量增加了多少取差值。

測試點:

  測試手機安裝目標APK前后待機功耗無明顯差異;

  常見使用場景中能夠正常進入待機,待機電流在正常范圍內;

  長時間連續使用應用無異常耗電現象。

測試方法:

(先關閉所有的應用,再打開被測app)

1、使用第三方測試工具:Emmagee、GT等,只需要測試的電流靜置一晚,待機電流在正常范圍內即可。一般是被測應用對比待機電流<=2mA。

2、使用adb命令

adb shell dumpsys batterystats |grep packageName

轉載自:

https://blog.csdn.net/xiaomaoxiao336368/article/details/83547318

推薦閱讀

測試技術的提升你只需要關注這個!年薪20W都不是夢!

測試經理 : 不想測就不測唄,擺什么臭架子!

測試干了5年,薪資不如剛入行1年的小白?月薪28k真的是看工作年限嗎?

總結

以上是生活随笔為你收集整理的全网最全移动端App性能测试方法,值得收藏!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。