從零開始學起!全方位解析App壓力測試的關鍵要點!
2024-03-28科技
簡介
Monkey 是 Google 提供的一個用於穩定性與壓力測試的命令列工具
可以執行在模擬器或者實際裝置中
它向系統發送偽隨機的使用者事件對軟體進行穩定性與壓力測試
為什麽要用 Monkey
Monkey 就是像猴子一樣上躥下跳地亂點
為了測試軟體的穩定性,健壯性
隨機點選比順序點選更容易發現問題
Monkey 基本用法
-
在命令提示字元中輸入 adb devices 檢視有無連線的裝置
-
確認有裝置連線
-
獲取 app 的包名
-
adb shell monkey [參數] {隨機發送事件數}
-
最簡單的 monkey 命令:adb shell monkey 100
Monkey 常用選項
-v :用於指定反饋資訊級別,總共分 3 個級別
adb shell monkey -v -v -v 10
-s <seednumber>:用於指定偽隨機數生成器的 seed(種子)值
adb shell monkey -s 123 10
--throttle <milliseconds>:每個事件結束後的間隔時間
adb shell monkey --throttle 300 10
-p:用於約束限制,用此參數指定一個或多個包
adb shell monkey -p com.android.browser 10
--ignore-crashes:忽略崩潰
--ignore-timeouts:忽略超時
--ignore-security-exceptions:忽略安全異常
--ignore-native-crashes:忽略本地程式碼導致的崩潰異常
--monitor-native-crashes:跟蹤本地方法的崩潰問題
Monkey 事件選項
--pct-touch:觸摸事件
--pct-motion:滑動事件
--pct-appswitch:activity 之間的切換
--pct-pinchzoom:縮放事件
--pct-rotation:螢幕旋轉事件
--pct-flip:鍵盤事件
--pct-anyevent:任意事件
註意:所有型別內容比例加起來不能超過 100
雪球 app 壓力測試實戰
確定測試 app 的包名:
adb shell dumpsys activity | grep mFocusedActivity
執行 8 小時:
需要跑的時間/命令之間的時間間隔=要執行的次數 8*60*60*1000/300 = 96000
日誌級別:3 個 v
確定雪球中常用的操作型別和比例:滑動、觸摸、鍵盤、系統按鍵、activity切換
確定 seed 值:-s 12345
確定偵錯選項:
--ignore-crashes --ignore-timeouts --ignore-security-exceptions
重新導向日誌到檔中 >
雪球 App 壓力測試指令碼範例
adb shell monkey -p com.xueqiu.android --pct-touch 30 --pct-motion 30 \--pct-syskeys 10 --pct-appswitch 20 --pct-flip 5 --pct-anyevent 5 \-s 12345 --throttle 300 --ignore-crashes --ignore-timeouts \--ignore-security-exceptions -v -v -v 200 > monkey_log.txt
Monkey 日誌分析
-
程式無響應,ANR 問題:在日誌中搜尋 「ANR」
-
崩潰問題:在日誌中搜尋 「CRASH」
-
其他問題:在日誌中搜尋 「Exception」
總結
Monkey 簡介
Monkey 基本用法
Monkey 事件選項
免費領取:測試資料+效能測試+介面測試+自動化測試+測試開發+測試用例+簡歷樣版+測試文件 - 公眾號 - 測試人社群