當前位置: 華文世界 > 科技

從零開始學起!全方位解析App壓力測試的關鍵要點!

2024-03-28科技

簡介

  • Monkey 是 Google 提供的一個用於穩定性與壓力測試的命令列工具
  • 可以執行在模擬器或者實際器材中
  • 它向系統發送偽隨機的使用者事件對軟件進行穩定性與壓力測試
  • 為什麽要用 Monkey

  • Monkey 就是像猴子一樣上躥下跳地亂點
  • 為了測試軟件的穩定性,健壯性
  • 隨機點選比順序點選更容易發現問題
  • Monkey 基本用法

    1. 在命令提示字元中輸入 adb devices 檢視有無連線的器材
    2. 確認有器材連線
    3. 獲取 app 的包名
    4. adb shell monkey [參數] {隨機發送事件數}
    5. 最簡單的 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 日誌分析

    1. 程式無響應,ANR 問題:在日誌中搜尋 「ANR」
    2. 崩潰問題:在日誌中搜尋 「CRASH」
    3. 其他問題:在日誌中搜尋 「Exception」

    總結

  • Monkey 簡介
  • Monkey 基本用法
  • Monkey 事件選項
  • 免費領取:測試資料+效能測試+介面測試+自動化測試+測試開發+測試用例+簡歷樣版+測試文件 - 公眾號 - 測試人社區