關於Monkey的一切都在這裡

2022-05-04 11:18:09 字數 2147 閱讀 7104

monkey是android自身提供的,可以通過adb shell模擬使用者行為,傳送一些偽隨機使用者事件到目標裝置上。

monkey和它的直接意思一樣,可以像乙個猴子一樣,瘋狂的輸入各種隨機事件到裝置上,像是乙個猴子在瘋狂的點選裝置。

monkey主要是借助adb命令來讓pc與android裝置連線,adb是一種android除錯工具,在pc上配置好環境即可使用。

monkey使用起來非常的簡單,基本命令如下:

adb shell monkey

這樣直接在terminal中輸入,就會像裝置上傳送指定的事件數的事件。但是在terminal中不會有任何輸出,如果需要有輸出,可以加上-v引數。-v表示輸出的log級別,-v最低,-v -v -v最高。

adb shell monkey -v

上面的命令表示向裝置輸入100個隨機事件,如果正確輸出,可以在裝置上看到各種點選效果一閃而過。

adb shell monkey -p com.mipay.wallet -v

更多其他高階的命令,可以通過adb shell monkey -h進行檢視。

上面給出的例子,基本上100次點選會在瞬間被完成,肉眼可能可以感受到被點選,但是無法明顯的感覺到有那麼多次。所以設定每次事件的間隔時常,是有必要的。為monkey設定事件的間隔,使用--throttle引數。

adb shell monkey —throttle

monkey雖然是隨機點選的,但是我們主要是用它來做壓力測試。所以如果在碰到崩潰的時候,可以通過一種方式,重複之前的隨機事件,再來一次,看看崩潰的問題。monkey也提供了這樣的引數-s

adb shell monkey -s

可以看到,在每次執行完monkey之後,從輸出裡可以看到當前的seed值,只要通過-s引數指定相同的seed,就可以重複剛才的操作。

例如如果需要重複上面的操作,就需要在terminal中輸入:

adb shell monkey -s 1487572980979 -v 1000

正常來說,如果在monkey執行的階段,出現了崩潰,會立即停止接下去的執行。但是有時候,我們在執行monkey的時候,是在無人員干涉的情況下,例如想要它執行一夜,等等情況。那麼如果出現崩潰就停止執行,明顯不是我們需要的。在monkey中,可以通過—ignore-crashes來忽略掉異常崩潰。

adb shell monkey —ignore-crashes

如果用此引數忽略了崩潰,在發生崩潰的時候,會繼續指定,表現是又從新開始執行monkey了,而同時,用-s設定的seed值將不會生效。

anr是android的乙個錯誤,在頁面無法響應事件的時候會報出來。一般遇到這樣的情況,表示當前有耗時操作在ui執行緒指定,導致卡ui了。

在monkey中,如果遇上anr,同樣會停止繼續執行。如果想要忽略anr,讓其觸發的時候依然執行下去,可以使用—ignore-timeouts引數。

adb shell monkey —ignore-timeouts

同樣它也會導致-s失效。

在monkey中,雖然輸入的事件是隨機產生的,但是可以指定輸入事件型別的百分比,讓其控制在我們需要的範圍內。

在monkey中,可以設定的事件型別有:

預設情況下,如果不設定,會是--pct-anyevent為百分之百,也就是純隨機事件。如果通過其他的引數配置了之後,如果相加的百分比不為百分百,餘下的百分比部分也會生成隨機事件。

從monkey的輸出log中,可以看出指定事件的百分比。

例如這裡輸入觸控事件為百分百,event percentages的0表示的就是觸控事件,為100%。

到這裡基本上就介紹為monkey中一些主要的引數含義了,更多的可以通過-h檢視幫助文件。

基本上配置事件百分比,有一些事件已經隨著android發展被消失掉了,例如軌跡球,在現在主流的裝置上,已經基本上看不見軌跡球的影子了。

關於Weex,你想了解的一切都在這裡

自從南天在qcon2016宣布weex專案開源至今已經快兩個月了,weex也在6月的最後一天迎來了全面的開源。截止7月中旬,weex在github上收穫了4k star,一度成為github上的熱門專案。weex,作為無線研發領域新秀,其影響力正逐步從阿里的內部不斷向外部擴散,除了全力支援手淘和手貓...

你想知道的DevOps的一切都在這裡!

devops 作為一種工程模式,通過對開發 運維 測試,配管等角色職責的分工,實現工程效率最大化,進而滿足業務的需求。近幾年,越來越多公司在實踐devops的過程中積累了豐富的經驗。另一方面,一系列在開發 測試 部署 交付 維護以及監控分析等工作中能加快產品研發速度 提公升團隊效率的工具得到了廣泛應...

一切在這裡

我們播下種子,對天空祈求,滋潤植物,飲下雨水,再還給土壤,詛咒寒冷,朝著太陽跳舞,隨著微風起舞,由於經歷過的東西而流淚,在月亮的賠本下做夢。我們張開我們的雙手迎接另乙個可能充滿希望的季節,用祝福 石塊和老鷹的羽毛平衡壓力,帶著收穫回家。聽,鳥兒歡唱將地球喚醒。旋轉的宇宙突然開啟了種子爬往陽光的道路。...