一、app壓力測試
- monkey是谷歌提供的一款用於app穩定性和壓力測試的命令行工具
- monkey可以運行在模擬器或真機設備中
- monkey會向系統發送偽隨機的用戶事件,對app應用進行穩定性和壓力測試
monkey基本用法
- 連接設備
- 獲取被測包名
- 發送命令:adb shell monkey [參數] [隨機事件數]
adb shell monkey 100
三、monkey常用選項
- -v:用於指定反饋信息級別,總共分三個等級-v -v -v
- adb shell mokey -v -v -v 100
- -s:用於指定偽隨機數生成器的種子seed值
- adb shell monkey -s 123 100
- –throttle:每個事件結束的間隔時間
- adb shell monkey --throttle 500 100
- -p:用於約束限制,指定一個或多個包
- adb shell monkey -p com.android browser 100
- –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
五、壓力測試實戰
5.1、雪球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
- 重定向日志到文件中 >
5.2、壓力測試腳本
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 1000 >monkey_xueqiu.log
六、日志分析
- 程序無響應:在日志中搜索ANR
- 程序崩潰:在日志中搜索crash
- 其他問題:在日志中搜索Execption
霍格沃茲的測試管理班是專門面向測試與質量管理人員的一門課程,通過提升從業人員的團隊管理、項目管理、績效管理、溝通管理等方面的能力,使測試管理人員可以更好的帶領團隊、項目以及公司獲得更快的成長。提供 1v1 私教指導,BAT 級別的測試管理大咖量身打造職業規劃。
![](https://news.xinpengboligang.com/upload/keji/ecaf365ae4a2f3a4d0a206994f266250.jpeg)