App性能測試java
目前App測試招聘的愈來愈多,各類應用、遊戲都逐步從pc端向App端遷移,薪水也是與日俱增,將來App應用的市場佔有量將遠遠超越pc應用,可見這是一個很好的發展方向。廢話很少說,下面直奔主題。App性能測試分客戶端和服務端,服務端的性能能夠經過接口或者web網頁模擬用戶輸入進行測試,和普通的PC端性能測試方法同樣;客戶端性能須要藉助一些專門的工具來測試,App性能的關注點主要有耗電量、耗流量、啓動退出耗時、響應時延、流暢度、crash率、卡頓、cpu內存等,下面介紹下網上搜集的一些App測試工具:python
Androidandroid
痛點ios |
工具名web |
推薦緣由sql |
工具類別緩存 |
落地優先級網絡 |
落地成本tcp |
卡頓工具 |
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 |
低 |