1、基本的測(cè)試checklist和手段

image.png
2、專項(xiàng)測(cè)試(用戶維度)
- 崩潰(Crash,弱網(wǎng))
- 卡頓(掉幀、gc、cpu)
- 響應(yīng)慢(啟動(dòng)時(shí)間、交互響應(yīng)、H5加載)
- 發(fā)熱(cpu,mem、io、network、gps等硬件使用)
- 掉電快(硬件占用)
- 兼容性問題(機(jī)型覆蓋、回歸)
3、專項(xiàng)測(cè)試(技術(shù)維度)
- 崩潰
- 自動(dòng)遍歷、monkey測(cè)試、橫豎屏切換、快速進(jìn)退
- 卡頓(掉幀、gc、cpu)
- 卡頓測(cè)試、內(nèi)存泄漏測(cè)試、method profile
- 響應(yīng)慢(啟動(dòng)時(shí)間、交互響應(yīng)、H5加載)
- 冷熱啟動(dòng)、界面切換、h5性能測(cè)試
- 發(fā)熱(cpu,mem、io、network、gps等硬件使用)
- method profile、gc統(tǒng)計(jì)、io統(tǒng)計(jì)、流量統(tǒng)計(jì)、硬件使用統(tǒng)計(jì)、耗電量分析
- 兼容性問題(機(jī)型覆蓋、回歸)
- 兼容性測(cè)試、自動(dòng)化測(cè)試、自動(dòng)遍歷、monkey測(cè)試
4、App性能
Activity啟動(dòng)流程

image.png
主要流程
- Application OnCreate
- 加載第三方的sdk
- Activity OnCreate
- 加載自身的邏輯
- 發(fā)送遠(yuǎn)程數(shù)據(jù)請(qǐng)求xxx.json
- 渲染界面List
App啟動(dòng)性能指標(biāo)
- 冷啟動(dòng):在進(jìn)程中已被kill掉,或者剛安裝好的app。不包括other stuff的時(shí)間。(最重要)
- 暖啟動(dòng):App在后臺(tái)運(yùn)行久了,內(nèi)存系統(tǒng)將其kill掉,此時(shí)進(jìn)行重啟App,會(huì)保存App的一些初始化設(shè)置。不包括other stuff的時(shí)間。
- 熱啟動(dòng):App在后臺(tái)運(yùn)行。不包括other stuff的時(shí)間。
- 首屏啟動(dòng):加上other stuff的時(shí)間,比如動(dòng)圖加載等。
建議時(shí)間
- Cold startup takes 5 seconds or longer.
- Warm startup takes 2 seconds or longer.
- Hot startup takes 1.5 seconds or longer.
5、主要工具及流程
- adb logcat
- 錄屏+視頻拆幀
- uiautomator等自動(dòng)化工具200ms巡檢界面變化
- traceview
- 硬埋點(diǎn)
使用adb logcat
package=com.xueqiu.android- 清理緩存數(shù)據(jù):
adb shell pm clear $package - 停止進(jìn)程:
adb shell am force-stop $package - 啟動(dòng)app:
adb shell am start -S -W $package/.view.WelcomeActivity Alias-
-S在啟動(dòng)之前停止app,起保險(xiǎn)作用 -
-W等待Activity啟動(dòng)完成
-
- 獲取數(shù)據(jù):
adb logcat lgrep -i displayed
adb logcat結(jié)果
- startTime:記錄剛準(zhǔn)備調(diào)用
startActivity AndWait()的時(shí)間點(diǎn); - endTime:記錄
startActivityAndWait()函數(shù)調(diào)用返回的時(shí)間點(diǎn) - WaitTime:
startActivity AndWait()調(diào)用耗時(shí)- WaitTime = endTime - startTime
實(shí)戰(zhàn)

image.png

image.png
6、使用ffmpeg拆針
- 下載地址:https://ffmpeg.en.softonic.com/
- 安裝完成后配置到環(huán)境變量
- 具體用法參照:http://www.itdecent.cn/p/3c8c4a892f3c
adb shell am force-stop $package #停止app
adb shell screenrecord --bugreport --time-limit 30 /data/local/tmp/xueqiu.mp4 & #進(jìn)行錄屏并保存視頻到手機(jī)路徑
adb shell am start -S -W $package/.view.WelcomeActivityAlias
wait
adb pull /data/local/tmp/xueqiu.mp4 . #將視頻推到本地
ffmpeg -i xueqiu.mp4 xueqiu.gif #將視頻合成動(dòng)圖
ffmpeg -i xueqiu.mp4 -r 10 frames_%03d.jpg #1秒拆成10針
-
實(shí)戰(zhàn)
image.png
image.png-
圖片拆分結(jié)果:
image.png
-
下一節(jié):接口性能分析,包括DNS、HTTP/HTTPS的接口性能分析。


