天天看點

android crash沒有日志_Android 測試工具——Monkey參數

參數分類

  • 正常類參數
  • 事件類參數
  • 限制類參數
  • 調試類參數

正常類參數

正常類參數包括幫助參數和日志資訊參數。幫助參數用于輸出Monkey指令使用指導;日志資訊參數将日志分為三個級别,級别越高,日志的資訊越詳細。

1.幫助類參數

monkey -h
           

2.日志級别

shell
           

-v:列印出日志資訊,每個-v将增加回報資訊的級别。-v越多日志資訊越詳細,不過目前最多支援3個-v,即:

android crash沒有日志_Android 測試工具——Monkey參數
android crash沒有日志_Android 測試工具——Monkey參數

事件類參數

事件類參數的作用是對随機事件進行調控,進而使其遵照設定運作,如設定各種事件的百分比、設定事件生成所使用的種子值等。頻率參數主要限制事件執行的時間間隔。

1.執行指定腳本

shell
           

2.僞随機數生成種子值

使用 -s指令可以重複執行之前的僞随機操作。本身每次執行僞随機事件操作也會預設生成一個seed值

shell monkey -s 
           

3.設定間隔 如果你希望在每一個指令之間加上固定的間隔時間,可以用--throttle(注意,前面是--)指令。

shell
           

--throttle:後面接時間,機關為ms(),表示事件之間的固定延遲(即執行每一個指令間隔的時間),若不接該選項,monkey将不會延遲。

4.調整觸摸事件百分比

如果你希望調整觸摸事件的百分比,記住使用--pct-touch。

shell
           

--pct-touch:後面接觸摸事件百分比

注意:觸摸事件不單單是按鍵,它泛指發生在某一位置的一個down-up事件。

5.調整手勢事件百分比

shell
           

6.調整應用啟動事件的百分比

如果你希望調整應用啟動事件的百分比,記住使用--pct-app-switch。

shell
           

--pct-appswitch:後面接應用啟動事件百分比。

應用啟動事件(即activity launches)俗稱打開應用,通過調用startActivity()方法最大限度地開啟該package下的所有應用。

7.調整螢幕旋轉事件百分比

shell
           

--pct-rotation 後面接螢幕旋轉事件的比例值。

8.其他參數

android crash沒有日志_Android 測試工具——Monkey參數

限制類參數

1.包限制

-p:後面接一個或多個包名(),如果應用需要通路其他包裡的Activity,那相關的包也需要在此同時指定。如果不指定任何包,monkey将允許系統啟動全部包裡的Activity。

p 
           

2.activity類限制

如果你希望将monkey限制在一個或幾個類别中,使用如下指令:

shell monkey -
           

以下指令表示運作Intent.CATEGORY_LAUNCHER類别的Activity并發送1000個随機事件。

shell
           
android crash沒有日志_Android 測試工具——Monkey參數

調試類參數

1.應用程式崩潰後繼續發送事件

如果你希望monkey在應用程式崩潰後繼續發送事件,則需要用到--ignore-crashes指令

shell
           

在設定此選項後,當應用程式崩潰或發生失控異常時,monkey将繼續運作直到計數完成。如果不設定此選項,monkey遇到上述崩潰或異常将停止運作。

2.逾時錯誤繼續發送事件

如果你希望monkey在任何逾時錯誤發生後繼續發送事件,則需要用到--ignore-timeouts指令。

shell
           

--ignore-timeouts:在設定此選項後,當應用程式發生任何逾時錯誤(如ANR,即Application Not Responding)時,monkey将繼續運作直到計數完成。如果不設定此選項,monkey遇到此類逾時對話框将停止運作。

3.應用程式權限錯誤發生後繼續發送事件

如果你希望monkey在應用程式權限錯誤發生後繼續發送事件,則需要用到--ignore-security-exceptions指令。

shell
           

--ignore-security-exceptions:在設定此選項後,當應用程式發生任何權限錯誤(如啟動一個需要某些權限的Activity)時,monkey将繼續運作直到計數完成。如果不設定此選項,monkey遇到此類權限錯誤将停止運作。

4.其他

android crash沒有日志_Android 測試工具——Monkey參數

Monkey參數應用綜合案例

測試場景

測試考研幫app Android版。測試希望通過Monkey來模拟使用者的随機操作,檢查被測應用是否會出現異常(應用崩潰或者無響應)。

需求分析

1、測試是指定應用,是以需要使用-p指定被測app包名:com.tal.kaoyan

2、這個測試的目的是希望模拟使用者操作,是以需要讓Monkey執行的事件盡可能地接近使用者的正常操作,這樣才可以最大限度地發現使用者使用過程中可能出現的問題。是以需要對Monkey執行的事件百分比做一些調整:

觸摸事件和手勢事件是使用者最常見的操作,是以通過--pct-touch和--pct-motion将這兩個事件的占比調整到40%與25%;目标應用包含了多個Activity,為了能覆寫大部分的Activity,是以通過--pct-appswitch将Activity切換的事件占比調整到10%;被測應用在測試中出現過不少橫豎屏之間切換的問題,這個場景也必須關注,是以通過--pct-rotation把橫豎屏切換事件調整到10%。

3、使用-s參數來指定指令執行的seed值 Monkey會根據seed值來生成對應事件流,同一個seed生成的事件流是完全相同的。這裡指定了seed值,是為了測試發現問題時,便于進行問題複現。

4、使用--throttle參數來控制Monkey每個操作之間的時間間隔 指定操作之間的時間間隔,一方面是希望能更接近使用者的操作場景,正常使用者操作都會有一定的時間間隔;另一方面也是不希望因為過于頻繁的操作而導緻系統崩潰,尤其是在比較低端的手機上執行測試時。是以通過--throttle設定Monkey每個操作固定延遲0.4秒。

5、使用--ignore-crashs和--ignore-timeouts參數使Monkey遇到意外時能繼續執行 在執行Monkey測試時,會因為應用的崩潰或沒有響應而意外終止,是以需要在指令中增加限制參數--ignore-crash和--ignore-timeouts,讓Monkey在遇到崩潰或沒有響應的時候,能在日志中記錄相關資訊,并繼續執行後續的測試。

6、使用-v指定log的詳細級别 Monkey的日志輸出有3個級别:日志的級别越高,其詳細程度也越高。為了友善問題的定位,這裡将日志設為 -v -v.

測試指令
adb shell monkey -p com.tal.kaoyan
--pct-touch 40 --pct-motion 25 
--pct-appswitch 10
--pct-rotation 5
-s 1666 --throttle 400
--ignore-crashes
--ignore-timeouts
-v -v  200
           

更多幹貨

  • Android 測試工具——Monkey事件與日志
  • Android 測試工具——Monkey簡介
  • ATX2 遠端裝置管理平台入門進階應用
  • ATX2 iOS裝置管理平台搭建
  • Android&iOS App元素定位利器——Macaca Inspector
  • Appium連續滑動操作——九宮格滑動
  • Appium Android Toast元素識别
  • Android H5元素定位
  • Mac 環境Appium自動化測試環境搭建
  • 衆裡尋他千百度—Appium Android 元素定位方式
  • Android自動化測試裝置彈窗處理
  • Ubuntu+Docker+STF環境搭建
  • Mac OS環境搭建STF
  • Python自動化日志收集

繼續閱讀