1. 程式人生 > >Android自動化測試之Monkey使用

Android自動化測試之Monkey使用

      Mokey是Android中的一個命令列工具,可以執行在模擬器裡或實際裝置中。它向系統傳送偽隨機的使用者事件流(如按鍵輸入、觸控式螢幕輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試。Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效的方法。當應用程式崩潰(CRUSH)或產生了程式不響應(ANR)的錯誤時,Monkey將會停止並報錯。Monkey 測試的物件僅為應用程式包,測試使用的事件流資料流是隨機的,不能進行自定義,但可對測試物件進行事件型別,數量,頻率進行設定。

Monkey 基本語法:

adb shell monkey [options] <event-count>
options:配置monkey的設定,例如:指定啟動哪個包,不指定將會隨機啟動所有程式。

event-count :讓monkey傳送事件的次數。

Monkey 引數

1. monkey 傳送隨機事件簡單指令

例如:啟動指定的應用程 序,並向其傳送100個偽隨機事件

adb shell monkey -p your.package.name  -vvv 100 > monkeytest.txt

-v 是資訊級別即日誌的詳細程度,3個v就是輸出等級1至3的所有事件



注:獲取app包名:

adb shell 進入monkey命令列

logcat | grep START   再點選要測試的app,然後檢視cmp= xx.xx.xx/可得到包名

通過ls data/data 可檢視Android 裝置的所有應用包

2. --throttle <millseconds>

   後面跟每次執行事件間隔時間(毫秒)

3. seed引數

       seed的作用,就是建立一個flag,確保每次monkey 命令執行所跑的事件順序一致,這樣若出現問題可以復現。

Monkey的隨機操作是基於一個seed 值產生,每一個seed值都會產生唯一的操作序列,只要每次seed值一樣,

操作的隨機序列也一樣。

測試1:adb shell monkey -p com.android.calculator2 -s 100 20
測試2:adb shell monkey -p com.android.calculator2 -s 100 20
兩次操作的結果一樣。

4. 觸控事件引數--pct-touch

monkey 設定觸控事件百分比

adb shell monkey --pct-touch <percent> <event-count>

0代表touch事件。


不指定點選事件的百分比



5.動作事件 --pct-motion

adb shell monkey --pct-touch <percent> <event-count>


6.忽略崩潰異常、超時、許可錯誤事件

adb shell monkey --ignore-crashes <event-count>
adb shell monkey --ignore-timeouts <event-count>
adb shell monkey --ignore-security-exceptions <event-count>

Monkey Script

通過指令碼來實現可重複的固定事件操作

adb shell monkey -f <scriptfile> <event-count>

Monkey Script 常用API 介紹:

LaunchActivity(pkg_name, cl_name): 啟動應用的Activity。引數:包名和啟動的Activity,Activity名前用. 連線包名。

DispatchPointer(downtime,eventTime,action,x,y,xpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags)  點選事件。主要是action(0按下,1彈起),x,y (點選控制元件的座標)3個引數

Tap(x, y, tapDuration): 模擬一次手指單擊事件。引數:x,y為控制元件座標,tapDuration為點選的持續時間,此引數可省略。

DispatchPress(keycode) :按下鍵值,如66回車鍵

DispatchTrackball: 模擬傳送軌跡球事件

DispatchFlip(true/false): 開啟或者關閉軟鍵盤。

DispatchString(input):  輸入字串。

UsrWait(sleepTime): 等待時間

ProfileWait():等待5s

LongPress():  長按2秒。

PressAndHold(x, y, pressDuration):  模擬長按事件

編寫一個點選瀏覽器搜尋框輸入字串搜尋的指令碼

type=user
count=10
speed=1.0
start data>>
LaunchActivity(com.Android.browser,com.android.browser.BrowserActivity)//啟動APP
UserWait(2000)
Tap(100,100) //點選搜尋輸入框
DispatchString(test) //輸入搜尋字串
UserWait(1000)
DispatchPress(66) //點選回車鍵搜尋
ProfileWait()     //等待5s
Tap(100,100)      //點選搜尋輸入框
DispatchPress(112) //點選刪除清空輸入框
UserWait(1000)
DispatchPress(KEYCODE_HOME)//退出APP回到主頁

儲存後push到手機中利用shell monkey 執行指令碼

adb push D:\test.script /data/local/tmp/
adb monkey shell -f /data/local/tmp/test.script -v 5

相關推薦

Android自動化測試Monkey使用

      Mokey是Android中的一個命令列工具,可以執行在模擬器裡或實際裝置中。它向系統傳送偽隨機的使用者事件流(如按鍵輸入、觸控式螢幕輸入、手勢輸入等),實現對正在開發的應用程式進行壓力

Android自動化測試Monkeyrunner從零開始

控制 麻煩 關於 人員 bsp android開發 直接 記錄 自動 最近由於公司在組織一個Free CoDE的項目,也就是由大家自己選擇研究方向來做一些自己感興趣的研究。由於之前我學過一點點關於android的東西,並且目前android開發方興未艾如火如荼,但自動化測試

Android自動化測試——MonkeyRunner(1)

一、MonkeyRunner是什麼 MonkeyRunner是使用Jython(使用Java程式語言實現的Python)寫出來的,它提供了多個API,通過monkeyrunner API 可以寫一個Python的程式來模擬操作控制Android裝置app,測試其穩定性並通過截圖可以方便地記錄出現的問題。

Android自動化測試——MonkeyRunner(2)

一、MonkeyRunner API MonkeyRunner API包含了三個模組在com.android.monkeyruner包中: 1、MonkeyRunner 一類用於MonkeyRunner程式的實用方法。該類提供了一種將MonkeyRunner連線到裝置或模擬器的方法。它還提供了為monk

Android自動化測試——MonkeyRunner(3)

本文主要介紹MonkeyDevice的方法。 上文中,使用MonkeyRunner方法連線裝置並返回一個MonkeyDevice物件,使用該物件呼叫MonkeyDevice方法可實現對裝置的操作。主要包括:點選、拖拽、截圖、按鍵、輸入內容 一、常量 MonkeyDevice的touch()、press(

Android自動化測試Monkeyrunner 指令碼編寫

# File:   Test1.py# Vision: V1.0# Author: Findyou# 引入本程式所用到的模組from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage# 連線手機裝置device = 

Android-自動化測試MonkeyRunner教程(詳細)

# File:   Test1.py# Vision: V1.0# Author: Findyou# 引入本程式所用到的模組from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage# 連線手機裝置device

Android自動化測試Monkeyrunner使用方法及例項

目前android SDK裡自帶的現成的測試工具有monkey 和 monkeyrunner兩個。大家別看這倆兄弟名字相像,但其實是完完全全不同的兩個工具,應用在不同的測試領域。總的來說,monkey主要應用在壓力和可靠性測試上,執行該命令可以隨機地向目標程式傳送各種模擬鍵

android自動化測試單元測試例項 .

這樣,在啟動程式的時候就會先啟動一個Application,然後在此Application執行過程中根據情況載入相應的 Activity,而Activity是需要一個介面的。但是Instrumentation並不是這樣的。你可以將Instrumentation理解為一種沒有圖形介面的,具有啟動能力的,用於監控

Android自動化測試Monkeyrunner解決ID重複問題

原文: 時光過得太快了,一晃離上一篇monkeyrunner系列的部落格已經一年多了。這一年多時間經歷了太多改變,一直沒時間好好去總結和分享。直到今天在微博上和朋友聊到monkeyrunner,才想起趁這個機會再總結一下之前所積累的一些經驗和技巧,在這裡再次和大家分享下

android自動化測試MonkeyRunner使用例項(三)

一、使用CMD命令開啟模擬器 執行monkeyrunner之前必須先執行相應的模擬器或連上裝置,不然monkeyrunner無法連線裝置。 1.1  用Elipse開啟Android模擬器或在CMD中用Android命令開啟模擬器。 1.2  這裡重點講一下在CMD

android 自動化測試Robotium 測試apk時遇到的問題

1.執行測試工程時提示:         Test run failed: Permission Denial: starting instrumentation ComponentInfo{com.example.androidcalculator.test/andro

Android自動測試Monkey工具

其實我原本還是打算先把monkey的運用或者引數等等都寫的詳細點的。但是我個人覺得測試員還是要養成自己去看SDK doc的習慣。所以我決定還是不寫。更何況這類文章google ,百度一大把。沒有意義。 ok,我還是先來簡單介紹一下monkey這樣一個工具是什麼用途。其是一種android壓力測試,

Android自動化測試手段Monkey(adb shell monkey)

android monkey原始碼下載見:http://fanfq.iteye.com/blog/781694 Monkeyrunner在這裡:http://www.51testing.com/html/59/n-242759.html ================

android 自動化測試案例 MonkeyScript

時間 運行 nbsp speed sources patch html 搜索功能 net #文件名 MonkeyScript.mks #功能: 使用monkey script測試app,此案例是測試搜索功能(輸入關鍵字,然後點擊搜索按鈕)#參考: http://blog.

Appium+Python 自動化測試二:啟動APP(Android篇)

android版本 inf 環境 哪些 aapt code div port ons 前一篇寫了環境安裝,這篇記錄是記錄如何啟動APP以及啟動APP之前要做哪些事。 Appium 啟動APP至少需要5個參數,分別是‘platformName‘,‘platformVersio

5.2Appium移動端自動化測試連線Android模擬器

這裡大家先去下載一個夜神模擬器 1.aapt 環境變數配置  D:\androidsdk\android-sdk-windows\build-tools\24.0.0 目錄下找到aapt.exe,將這個路徑設定環境變數,新增到 path 下 --- 開啟 cmd。輸入 aapt

行為觸發Android自動化測試instrumentation(一)

由於對測試並沒有太多的概念,一不小心搜尋到各種字首:Instrumentation、InstrumentationTestCase、InstrumentationTestSuite、InstrumentationTestRunner 傻了眼,但仔細一看把字首去掉後大致就分類為了這三類:TestCase、T

Android UI 自動化測試UiObject

UiObject 類介紹 代表一個元件物件,物件有許多模擬實際操作手機的方法與屬性 點選與長按物件 (1)元件區域位置關係 (2)點選長按相關 api public void testClick() throws UiObjectN

Android自動化測試--monkey的使用

一、Monkey定義 探索軟體測試工具有哪些,本文主要介紹Monkey工具。Monkey測試是Android平臺自動化測試的一種手段,通過Monkey程式模擬使用者觸控式螢幕幕、滑動、按鍵等操作來對裝置上的程式進行壓力測試,檢測程式多久的時間會發生異常。每次操