專項測試checklist
性能測試
耗電量測試
batteryhistory
instruments
卡頓測試
blockcanary
h5性能測試
devtool
headless
chrome
場景測試
兼容性測試
mqc mtc testln
appium grid stf
健壯性測試
monkey
弱網測試
facebok atc
proxy定制
安全測試
wvs
burpsuite
專項測試(技術維度)
崩潰
自動遍歷
monkey測試
橫豎屏切換、快速進退
卡頓(掉幀、gc、cpu)
卡頓測試
內存泄漏測試
method profile
響應慢(啟動時間、交互響應、H5)
冷熱啟動
界面切換
h5性能測試
發熱(cpu、mem、io、network、gps等硬件使用)
method profile
gc統計
io統計
流量統計
硬件使用統計
耗電量分析
兼容性問題(機型覆蓋、回歸)
兼容性測試
自動化測試
自動遍歷
monkey測試
Activity啟動流程
含義:在app中,每一個頁面就是一個Activity
啟動過程
啟動app:創建一個空白的窗口,啟動app的進程
啟動application onCreate:創建一個對象
啟動MainTread主線程
activity init:頁面進程的創建,init都是進程創建
Activity onCreate:創建activity對象,渲染整個頁面,創建好后,替換空白的頁面,就是整個==displayed time==結束的時候
other stuff:動態加載頁面的過程,比如加載js、php等動態資源
主要流程
application onCreate
加載第三方的sdk:加載第三方的服務
登錄使用第三方qq登錄
把內容分享到微信
使用支付寶等支付手段
Activity onCreate(占用時間最長)
加載自身的邏輯
發送遠程數據請求 xxx.json
渲染界面list
app啟動性能指標
冷啟動(最重要)
時間:從application onCreate到displayed time之間
通俗含義:app沒有啟動或app進程被殺
暖啟動
app已經啟動了,但是很久沒有使用,手機內存把app進程殺掉,但對象還在保留
熱啟動
app進程在后臺,沒有被內存殺掉,進入app時只是把后臺帶到前臺給用戶展示
首屏啟動(好像沒有這個)
百度了很久好像都沒這個東西,估計是指打開之后有一個廣告的展示?
建議時間(不是特別標準,了解即可)
冷啟動5秒
暖啟動2秒
熱啟動1.5秒
app啟動時間測試方法以及工具
adb logcat(時間不太準確)
原因:空白頁、廣告時間,動態加載其實adb logcat都無法記錄,只有一個主“頁面”或者進入其他頁面之后的時間
錄屏+視頻拆幀(最準確)
uiautomator等自動化工具200ms
traceview
硬埋點(不同硬件之間,一個統一測試啟動時間的方法)
adb logcat
操作步驟
清理緩存數據:adb shell pm clear package
停止進程:adb shell am force-stop package
啟動app:adb shell am start -S -W package/activty
獲取數據:adb logcat | grep -i displayed
結果
startTime:記錄剛準備調用stratActivityAndWait()的時間點
endTime:記錄stratActivityAndWait()函數調用返回的時間點
WaitTime:stratActivityAndWait()的調用耗時
WaitTime=endTime-startTime
實戰
記錄雪球的啟動時間
C:\Users\user>adb shell pm clear com.xueqiu.android
Success
C:\Users\user>adb shell am force-stop com.xueqiu.android
-W: wait for launch to complete
-S: force stop the target app before starting the activity
C:\Users\user>adb shell am start -S -W com.xueqiu.android/.view.WelcomeActivityAlias
Stopping: com.xueqiu.android
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xueqiu.android/.view.WelcomeActivityAlias }
Status: ok
Activity: com.xueqiu.android/.view.WelcomeActivityAlias
ThisTime: 1063
TotalTime: 1063
WaitTime: 1111
Complete
C:\Users\user>adb logcat | grep -i displayed
05-03 05:06:19.698 951 986 I ActivityManager: Displayed com.xueqiu.trade.android/com.xueqiu.android.base.h5.H5Activity: +490ms
05-03 05:08:00.489 951 986 I ActivityManager: Displayed com.xueqiu.android/.common.search.USearchActivity: +214ms
05-03 05:10:00.307 951 986 I ActivityManager: Displayed com.xueqiu.android/.view.WelcomeActivityAlias: +1s63ms
05-03 05:10:02.058 951 986 I ActivityManager: Displayed com.xueqiu.android/.common.MainActivity: +590ms
05-03 05:10:06.771 951 986 I ActivityManager: Displayed com.xueqiu.android/.common.UpdateDialogActivity: +105ms
05-03 05:11:19.856 951 986 I ActivityManager: Displayed com.xueqiu.android/.view.WelcomeActivityAlias: +728ms
05-03 05:11:21.266 951 986 I ActivityManager: Displayed com.xueqiu.android/.common.MainActivity: +955ms
使用ffmpeg拆針
操作步驟
要先吧ffmpeg的程序下載了,然后配置環境變量,請在官網下載windows的版本吧,環境配置特別簡單
清除app的緩存:adb shell pm clear package
強制停止app的進程,處于冷啟動的狀態adb shell am force-stop package
錄制一個時間為30秒的視頻,并保存在sdcard中:adb shell screenrecord --bugreport --time-limit 30 /sdcard/1.mp4 &
啟動app:adb shell am start -S -W package/activity
把文件pull到當前文件夾:adb pull /sdcard/1.mp4 .
把錄制的視頻轉化成gif,感覺沒卵用:ffmpeg -i 1.mp4 xueqiu.gif
ffmpeg -i 1.mp4 -r 10 frames_%03d.jpg
-i后面跟要處理的視頻文件
-r表示一秒要拆多少幀,如果是30秒的視頻,就會拆成300張圖片
%03d表示文件從001開始,到最后的300
把1.mp4的視頻拆成300張圖片,一張圖片的時間為0.1秒
==注意:使用方法7時,盡量把視頻放在一個文件夾里面==
實操
C:\Users\user>adb shell pm clear com.xueqiu.android
Success
C:\Users\user>adb shell am force-stop com.xueqiu.android
C:\Users\user>adb shell am start -S -W com.xueqiu.android/.view.WelcomeActivityAlias
Stopping: com.xueqiu.android
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xueqiu.android/.view.WelcomeActivityAlias }
Status: ok
Activity: com.xueqiu.android/.view.WelcomeActivityAlias
ThisTime: 1063
TotalTime: 1063
WaitTime: 1111
Complete
C:\Users\user>adb pull /sdcard/1.mp4 .
C:\Users\user>ffmpeg -i 1.mp4 -r 10 frames_%03d.jpg
(文章來源于霍格沃茲測試學院) 更多技術文章可點擊http://qrcode.testing-studio.com/f?from=jianshu&url=https://ceshiren.com/t/topic/3822