App性能測試
目前App測試招聘的越來越多,各種應用、游戲都逐步從pc端向App端遷移,薪水也是與日俱增,未來App應用的市場占有量將遠遠超越pc應用,可見這是一個很好的發展方向。廢話不多說,下面直奔主題。App性能測試分客戶端和服務端,服務端的性能可以通過接口或者web網頁模擬用戶輸入進行測試,和普通的PC端性能測試方法一樣;客戶端性能需要借助一些專門的工具來測試,App性能的關注點主要有耗電量、耗流量、啟動退出耗時、響應時延、流暢度、crash率、卡頓、cpu內存等,下面介紹下網上搜集的一些App測試工具:
Android
痛點 |
工具名 |
推薦原因 |
工具類別 |
落地優先級 |
落地成本 |
卡頓 |
Chrome for android開源性能測試工具(surface_stats.py) |
里面已經涵蓋了FPS和janky采集的方法,用python寫的命令行,簡單直接地跟自動化測試結合。 |
發現 |
P0 |
低 |
卡上報(AnimationPerfMon.java) |
在空間落地卡上報,跟處理crash一樣,通過堆棧快速定位解決問題, 補充ANR的缺失 |
發現+定位 |
P0 |
中 |
|
聽雲/OneAPM |
基於UIThread/主線程的監控,都有不錯的卡頓的發現能力。但是因為沒有獲取堆棧,而只有簡單的方法名和activity,所以對於復雜的軟件定位稍微困難。 |
發現+定位(弱) |
P1 |
低 |
|
Fresco |
通過內存緩存的優化達到流暢的圖片及列表展示性能 |
解決 |
P1 |
低 |
|
Realm |
通過更優秀的I/O性能,降低APP對持久化數據讀寫的損耗,從而提升交互性能。可替代sqlite。 |
解決 |
P1 |
中 |
|
閃退 |
LeakCanary |
高效率發現大部分內存泄漏導致的OOM。 |
發現+定位 |
P0 |
低 |
Bugly/聽雲/OneAPM/Testin |
CRASH監控的能力大同小異,都能對數據上報的統計分析,清晰現網情況,用戶痛點。但我會推薦騰訊的BUGLY, 因為ANR, CRASH都能提供比較足夠的信息定位問題,另外,因為是騰訊的。 |
發現+定位+反饋上報 |
P0 |
低 |
|
Testin |
兼容性/穩定性測試利器,關鍵是機器的量夠! |
發現+定位 |
P0 |
低 |
|
待機時間短 |
Chkbugreport |
從用戶手機中提取BUGREPORT。通過這個工具是可以分析簡單的耗電問題,如sensor或攝像頭沒有關閉,wakelock的問題。 |
發現+定位 |
P0 |
中 |
痛點指標 |
工具名 |
推薦原因 |
工具類別 |
落地優先級 |
落地成本 |
卡頓 |
FastImage |
通過節省decode的耗時等方法,提升圖片及圖片列表的展示性能 |
解決 |
P1 |
低 |
Realm |
通過更優秀的I/O性能,降低APP對持久化數據讀寫的損耗,從而提升交互性能。可替代coredata,userdefault,sqlite。 |
解決 |
P1 |
中 |
|
MGWatchdog |
實現類似ANR的機制,主要是要跟上報結合 |
發現+定位 |
P0 |
低 |
|
閃退 |
Infer |
解決因內存泄漏導致的內存耗盡導致的閃退。能掃描簡單的循環引用導致的內存泄漏。 |
發現+定位 |
P0 |
低 |
Bugly/聽雲/OneAPM/Testin |
CRASH監控的能力大同小異,都能對數據上報的統計分析,清晰現網情況,用戶痛點。但我會推薦騰訊的BUGLY, 因為ANR, CRASH都能提供比較足夠的信息定位問題,另外,因為是騰訊的。 |
發現+定位+反饋上報 |
P0 |
低 |
|
待機時間短 |
iOSDiagnostics |
可以獲取一些耗電的模塊的信息,如果可以融合到數據上報中的話就更好了。 |
發現+定位 |
P0 |
中 |
痛點指標 |
工具名 |
推薦原因 |
工具類別 |
落地優先級 |
落地成本 |
流量大/速度慢 |
BPG(android,類似webp) BPG(ios) |
BPG是H265幀內壓縮做圖片壓縮,webp是利用VP8幀內壓縮做圖片壓縮。圖片壓縮對於圖片應用來說,除了能提升用戶下載顯示圖片的速度,還能為企業節約帶寬成本。 |
解決 |
P1 |
中 |
Pngquant |
利用PNG8壓縮PNG圖片,顏色單一的圖片,效果會非常明顯。 |
解決 |
P0 |
低 |
|
Wireshark |
實用的流量分析工具,包括export http object, I/O graph等等 |
發現+定位 |
P1 |
中 |
|
Emmagee |
Android的性能測試組件,里面涵蓋很多性能數據獲取的方法,可參考使用。 |
發現 |
P1 |
低 |
|
HAR + PageSpeed |
利用tcpdump在手機上獲取的PCAP, 利用HAR轉換PCAP,然后給pagespeed組件分析。 |
定位 |
P1 |
低 |
|
弱網兼容性差(ios通用) |
ATC |
Facebook弱網絡模擬工具。好處是模擬丟包,抖動的時候比較穩定,而且還有HTTP API可以調用, 方便和自動化配合。 |
發現 |
P0 |
中 |
SPDY/QUIC |
特別是QUIC, 就是為了網絡抖動而設計的。 |
解決 |
P2 |
中 |
|
OKHTTP |
推薦的HTTP組件。性能好,弱網兼容也不錯。 |
解決 |
P1 |
低 |