monkey操作,獲取包名,參數,日志,百分比


monkey的基本語法都是:

     adb  shell  monkey  -p  包名  執行的數字

monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中,他向系統發送偽隨機的用戶時間流(如:按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。

monkey測試是一種為了測試軟件的穩定性、健壯性的快速有效方法。

 

首先要測試一款APP,需要先知道APP對應的包名是什么,除了可以向開發人家直接獲取,還可以自己獲取。

在安裝SDK的目錄下面找到build-tools,具體路徑E:\android-sdk-windows\build-tools\28.0.3,在輸入框中輸入cmd進入DOS命令

夜神模擬器:

第一種,獲取自己已經有apk的包名

aapt dump badging +apk存放路徑

aapt dump badging  E:\soft\longteng\appium\apk\touchaction.apk

第二種:查看手機上所有APP的包名

輸入adb shell,進入命令后進入目錄data/data

1)adb shell

2)進入手機的  cd data/data

3) ls (需要root)

 

查看手機或者第三方應用的包名:

adb  shell  pm  list packages -3

真機:

 打開開發者選項(小米手機在MUIU中連續點擊)-之后在手機“設置”-“更多設置”中有一個“開發者選項”打開調試的功能

然后win+r,輸入adb devices

如下情況表示連接成功

 獲得包名以后就可以操作了:

查看所有參數:

adb shell monkey 

 

 

1.  -p  : 指定包名

    1) 指定包名對應進行的點擊數操作

         adb  shell monkey -p 包名 次數

    2)指定多個包

         adb shell monkey -p 包名1  -p 包名2  次數

2. -v :打印日志

用於指定反饋信息級別(信息級別就是日志的詳細程度),總共有三個:

       1)level0:缺省值,僅提供啟動提示、測試完成和最終結果等少量信息

               adb  shell monkey -p 包名 -v 500

       2)  level1:提供較為詳細的日志,包括每個發送到activity的信息

             adb shell monkey -p 包名 -v  -v  500

       3)  level2:最詳細的日志,包括測試中選中/未選中的activity信息

             adb shell monkey -p 包名 -v  -v  -v  500

 3.   -s 隨機數

打印日志的時候包含了seed參數:

這個參數是發送請求的時候自動生成的偽隨機數,用於產生相同序列的執行流,比如有bug了,開發可以去模擬當時一模一樣的場景:v

我們可以自己指定相應的隨機數seed:

  adb shell monkey -s 12345 -p com.taobao.taobao -v 500

4.   throttle  : 毫秒

  用於指定用戶操作即事件間的時延,單位是毫秒;如果不指定這個參數,monkey會盡可能快的生成和發送消息300毫秒

  指定500次的點擊事件,每次之間間隔300毫秒:

      adb shell monkey -p com.taobao.taobao --throttle 300 500

5.點擊次數的設置

  500  這里指點擊的次數,根據經驗,單個應用程序設置在100000次就ok;如果是整機,設置在500000次

6、--ignore-crashes

  應用發生崩潰或異常時Monkey會停止運行。如果設置此項,Monkey將繼續發送事件給系統,直到事件計數完成

  adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-crashes 500

7、--ignore-timeouts

  應用程序發生任何超時錯誤(如“Application Not responding”對話框)Monkey將停止運行,設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。

   adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-timeouts 500

8. --ignore-security-exception 

  當程序發生許可錯誤(例如啟動一些需要許可的Activity)導致的異常時,Monkey將停止運行。設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。

  adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-timeouts --ignore-security-exception 500

9.--kill-process-after-error

    當Monkey由於一個錯誤而停止時,出錯的應用程序將繼續處於運行狀態。設置此項,將會通知系統停止發生錯誤的進程。注意,正常(成功)的結束,並沒有停止啟動的進程,設備只是在結束事件之后簡單的保持在最后的狀態

10、--monitor-native-crashes

  監視並報告Andorid系統中本地代碼的崩潰事件。如果設置--kill-process-after-error,系統將停止運行。

11.  --wait-dbg

  停止執行中的Monkey,直到有調試器和它相連接。

12.  -c <main-category>

  如果你指定一個或多個類別,Monkey將只允許系統啟動這些指定類別中列出的Activity。如果你不指定任何類別,Monkey將選擇謝列類  別中列出的Activity,Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY。指定多個類別使用多個-c,每個-c指定一個類別。

13. --dbg-no-events

  設置此選項,Monkey將執行初始啟動,進入一個測試Activity,並不會在進一步生成事件。為了得到最佳結果,結合參數-v,一個或多個包的約束,以及一個保持Monkey運行30秒或更長時間的非零值,從而提供了一個可以監視應用程序所調用的包之間轉換的環境。

14.  --hprof

  設置此選項,將在Monkey生成事件序列前后生成profilling報告。在data/misc路徑下生成大文件(~5Mb),所以要小心使用。

 

monkey事件百分比:event percentages

由上圖可以看出

0:觸摸事件百分比,即參數--pct-touch          

1:滑動事件百分比,即參數--pct-motion

2:縮放事件百分比,即參數--pct-pinchzoom           

3:軌跡球事件百分比,即參數--pct-trackball

4:屏幕旋轉事件百分比,即參數 --pct-rotation               

5:基本導航事件百分比,即參數--pct-nav

6:主要導航事件百分比,即參數--pct-majornav                      

7:系統事件百分比,即參數--pct-syskeys

8:Activity啟動事件百分比,即參數--pct-appswitch                 

9:鍵盤翻轉事件百分比,即參數--pct-flip

10:其他事件百分比,即參數--pct-anyevent

例如: 設置觸摸事件需要占百分之60,(例如游戲的APP,觸摸就會顯得比較重要)

0--10這11中事件的總共百分比=100%,不能超過100%.

    設置序列號為12345,包名是com.taobao.taobao,打印簡單日志,點擊事件500次,觸摸事件百分比占60%:

    adb shell monkey -s 12345  -p  com.taobao.taobao -v --pct-touch 60 500 

 

monkey日志的導出

    指定電腦某個位置:

  adb shell monkey -p com.taobao.taobao -v  500 > e:\test.txt

log分析:

  日志最開始都會顯示Monkey執行的seed值、執行次數、測試的包名

  查看日志里是否出現了ANR或者異常

  ANR:日志里搜索“ANR ”(此處有空格)

  崩潰問題:日志里搜索“Exception”,快速定位到關鍵事件信息,然后查看Monkey里面出錯前的一些時間動作,手動執行該動作,找到重現步驟,給你開發 

成功日志和報錯日志:

成功日志會顯示monkey finish ,events injected :100   # 執行完成,點擊事件100次

錯誤的話會有閃退或者卡死,明顯的error字眼:

會有CRASH字眼,后面跟上包名,閃退

ANR異常,無響應的:原因比如代碼設計不合理,網絡搜索事件太長

 

 需要提供給開發的內容:

  1) 被測試手機的詳細信息;

  2)monkey測試日志: 在cmd中輸入命令后的內容

  3)手機運行截圖;

  4)monkey運行時手機日志:可以定位到某一位置 adb logcat  >d:\test

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM