日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android自带Monkey测试

發布時間:2023/12/10 Android 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android自带Monkey测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Monkey是在模擬器上或設備上運行的一個小程序,它能夠產生為隨機的用戶事件流,例如點擊(click),觸摸(touch),揮手(gestures),還有一系列的系統級事件。可以使用Monkey來給正在開發的程序做隨機的,可重復的壓力測試 。

Monkey基本用法

可以通過開發機器上的命令行或腳本來啟動Monkey。由于Monkey運行在模擬器/設備環境中,所以必須用其環境中的shell來進行啟動。可以通過在每條命令前加上adb shell來達到目的,也可以進入Shell后直接輸入Monkey命令。基本語法如下:

$ adb shell monkey[options]

如果不指定options,Monkey將以無反饋模式啟動,并把事件任意發送到安裝在目標環境中的全部包。下面是一個更為典型的命令行示例,它啟動指定的應用程序,并向其發送500個偽隨機事件:

$ adb shell monkey-p your.package.name -v 500

類別

?

選項

?

說明

?

常規

?

--help

?

列出簡單的用法。

?

-v

?

命令行的每一個-v將增加反饋信息的級別。Level 0(缺省值)除啟動提示、測試完成和最終結果之外,提供較少信息。Level 1提供較為詳細的測試信息,如逐個發送到Activity的事件。Level 2提供更加詳細的設置信息,如測試中被選中的或未被選中的Activity。

?

事件

?

-s <seed>

?

偽隨機數生成器的seed值。如果用相同的seed值再次運行Monkey,它將生成相同的事件序列。

?

--throttle <milliseconds>

?

在事件之間插入固定延遲。通過這個選項可以減緩Monkey的執行速度。如果不指定該選項,Monkey將不會被延遲,事件將盡可能快地被產成。

?

--pct-touch <percent>

?

調整觸摸事件的百分比(觸摸事件是一個down-up事件,它發生在屏幕上的某單一位置)。

?

--pct-motion <percent>

?

調整動作事件的百分比(動作事件由屏幕上某處的一個down事件、一系列的偽隨機事件和一個up事件組成)。

?

--pct-trackball <percent>

?

調整軌跡事件的百分比(軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊)。

?

--pct-nav <percent>

?

調整“基本”導航事件的百分比(導航事件由來自方向輸入設備的up/down/left/right組成)。

?

--pct-majornav <percent>

?

調整“主要”導航事件的百分比(這些導航事件通常引發圖形界面中的動作,如:5-way鍵盤的中間按鍵、回退按鍵、菜單按鍵)

?

--pct-syskeys <percent>

?

調整“系統”按鍵事件的百分比(這些按鍵通常被保留,由系統使用,如Home、Back、Start Call、End Call及音量控制鍵)。

?

--pct-appswitch <percent>

?

調整啟動Activity的百分比。在隨機間隔里,Monkey將執行一個startActivity()調用,作為最大程度覆蓋包中全部Activity的一種方法。

?

--pct-anyevent <percent>

?

調整其它類型事件的百分比。它包羅了所有其它類型的事件,如:按鍵、其它不常用的設備按鈕、等等。

?

約束限制

?

-p <allowed-package-name>

?

如果用此參數指定了一個或幾個包,Monkey將只允許系統啟動這些包里的Activity。如果你的應用程序還需要訪問其它包里的Activity(如選擇取一個聯系人),那些包也需要在此同時指定。如果不指定任何包,Monkey將允許系統啟動全部包里的Activity。要指定多個包,需要使用多個-p選項,每個-p選項只能用于一個包。

?

-c <main-category>

?

如果用此參數指定了一個或幾個類別,Monkey將只允許系統啟動被這些類別中的某個類別列出的Activity。如果不指定任何類別,Monkey將選擇下列類別中列出的Activity: Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多個類別,需要使用多個-c選項,每個-c選項只能用于一個類別。

?

調試

?

--dbg-no-events

?

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

?

--hprof

?

設置此選項,將在Monkey事件序列之前和之后立即生成profiling報告。這將會在data/misc中生成大文件(~5Mb),所以要小心使用它。

?

--ignore-crashes

?

通常,當應用程序崩潰或發生任何失控異常時,Monkey將停止運行。如果設置此選項,Monkey將繼續向系統發送事件,直到計數完成。

?

--ignore-timeouts

?

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

?

--ignore-security-exceptions

?

通常,當應用程序發生許可錯誤(如啟動一個需要某些許可的Activity)時,Monkey將停止運行。如果設置了此選項,Monkey將繼續向系統發送事件,直到計數完成。

?

--kill-process-after-error

?

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

?

--monitor-native-crashes

?

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

?

--wait-dbg

?

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

?

??

1.Android中的應用包名(可與開發確認)

? com.android.browser

?com.android.launcher

?com.android.settings

?com.android.calculator2

?com.android.contacts

?com.android.calendar

?com.android.alarmclock

?com.android.music

2.monkey 應用:

? (1)測試系統:

adb shell?monkey –v 10000

(2)測試應用如Browser:

? adb shell?monkey –pcom.android.browser –v 10000

(3)提取測試結果:

? 1)先把結果存入模擬器或者設備的sdcard中:

??? adb shell?monkey –pcom.android.browser –v 10000 > /sdcard/browser1.log?exit

?? 2)用adb 命令把log文件考到本地:

??? adb pull/sdcard/browser1.log ?D:\log\

?? 3)用Editplus 打開.即使可看到測試結果.

3.關于-p 與-v的說明:

? -p:指定應用包.一個-p只能指定一個應用包,可用多個-p指定多個應用包.?

? -v:

零個-v,得到的結果信息非常少(我測的時候,什么結果也沒有)

一個-v:得到的信息稍多一些.

兩個-v:得到的信息非常多.

關于-v的更具體的信息,請看上面的表格.

4.關于-s:

? s-------seed :種子的意思.看下面的例子:

?adb shell?monkey –p com.android.browser–s 1 –v 1000

?以上命令會得到一系列事件的模擬,如果你還想把剛剛模擬的事件原模原樣地重復一遍,那么就用同樣的seed 值,如果不想重復剛剛模擬的隨機事件,就換一個-s 值.如果你輸入下面的命令:

monkey –p com.android.browser –s 2 –v 1000

你的隨機事件就發生變化了.不再是原來的隨機事件.缺省-s的模擬事件與上一次的相同,所以建議加上-s,以確保對隨機模擬事件的控制.

5.關于--throttle

?這是事件延遲參數

?1)如果不加這個參數,兩個事件之間不存在延遲,這樣對系統的壓力會比較大.

?2)加上延遲,其后面接的單位是毫秒.如:

? adb shell? monkey -pcom.android.browser -s 1 --throttle 300 -v 1000

? 執行以上命令之后,monkey 的兩個隨機事件之間要有300毫秒的延遲.至于何時用這個參數,要根據性能測試的需要.

6.關于查看結果:

? 1)如果一切正常.不會存在memeinfo以及 CUP 占用信息.

? 2)如果應用有問題,在未加其他相關參數的情況下,會在有問題的事件/應用處停止,如果涉及到mem 以及 CPU信息,則會列出此信息.在停止的位置會顯示出錯的事件/應用的名字.查看時應留意.(關于如何查看,仍然在調查中)

7.關于其他參數.正在調查中.?


參考文章:

Android自帶了很多方便的測試工具和方法,包括我們常用的單元測試、Robotium測試、Monkey測試、MonkeyRunner測試、senevent模擬等。這些方法對于我們編寫高質量的APP十分有用。也可以提前暴露我們程序的隱藏問題。今天給大家講一下Monkey測試,Monkey測試可以說是我上面提到過的測試方法里面最簡單的。??

1、Monkey測試簡介

  Monkey主要應用在壓力和可靠性測試上,運行該命令可以隨機地向目標程序發送各種模擬鍵盤事件流,并且可以自己定義發送的次數,以此觀察被測應用程序的穩定性和可靠性,應用起來也比較簡單,記住那幾個命令就行了。

  • Monkey程序由Android系統自帶,使用Java語言寫成,在Android文件系統中的存放路徑是:/system/framework/monkey.jar
  • Monkey.jar程序是由一個名為“monkey”的Shell腳本來啟動執行,shell腳本在Android文件系統中的存放路徑是:/system/bin/monkey

?

2、Monkey的基本用法

$ adb shell monkey [options]

  如果不指定options,Monkey將以無反饋模式啟動,并把事件任意發送到安裝在目標環境中的全部包。下面是一個常見用法的示例,它啟動指定的應用程序,并向其發送100個偽隨機事件:

$ adb shell monkey -p package_name -v 100

?

3、Monkey測試例子

  上面就是一個使用Monkey測試Launcher的例子,因為對某個APP進行測試的時候,需要指定APP的包名,我們可以先進入data\data目錄下面,看看有哪些APP包。

?

4、Monkey測試停止條件

Monkey Test執行過程中在下列三種情況下會自動停止:

  • 如果限定了Monkey運行在一個或幾個特定的包上,那么它會監測試圖轉到其它包的操作,并對其進行阻止。
  • 如果應用程序崩潰或接收到任何失控異常,Monkey將停止并報錯。
  • 如果應用程序產生了應用程序不響應(application not responding)的錯誤,Monkey將會停止并報錯。

?

?

5、Monkey詳細參數

  下面是Monkey的詳細參數表,圖片是從CSDN一位開發者的博客上截取的。


6、結語

  Monkey測試是Android自動化測試里面使用比較簡單的方法,可以很大程度檢驗我們的程序是否穩定,能否經得起壓力測試,可以根據實際情況調整測試的強度和測試重點。這個也是我在開發APP的時候最常用的方法,基本上每個版本發布之前,我都會進行比較高強度的Monkey測試,就像我每次發布Launcher之前都會進行1W次Monkey測試。系統集成后,再進行整體的壓力測試。

  最后說一句,Monkey測試只是一個模擬測試,很多時候跟實際情況時有差別的。所以這個只能是其中一個輔助測試,后面有空再講解其他的自動化測試方法。?


參考網址:http://developer.android.com/tools/help/monkey.html

轉載于:https://www.cnblogs.com/aikongmeng/p/3697329.html

總結

以上是生活随笔為你收集整理的Android自带Monkey测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。