monkey自動化測試入門

2022-05-01 22:12:12 字數 3150 閱讀 2810

monkey是傳送偽隨機使用者事件的工具流(如按鍵輸入、觸控螢幕輸入、手勢輸入等),通過它來實現對正在開發的應用程式進行壓力測試

每一台android手機裡面都有monkey工具,但是我們是看不到的,因為它不是乙個視覺化的工具。它不像wechat是視覺化的,能開啟,能執行使用者操作,有圖形介面,monkey沒有。

借助adb(android debug bridge),安卓除錯橋

3、  安裝後好,配置環境變數,在系統設定高階設定中,增加android_home,並新增android-sdk目錄下的tools和platform_tools。android_home為android-sdk路徑。

4、  測試adb是否安裝成功

手機開啟開發者模式,開啟允許除錯開關,用usb連線電腦。電腦開啟cmd命令視窗,輸入adb devices。如圖所示表示adb安裝成功,且裝置處於可除錯狀態。

1、  找出待測應用的包名,通過adb shell pm list packages命令檢視待測應用包名

截圖可見,monkey正常執行,接下來就是要通過monkey命令實現更為具體的操作。

1、-p後面接著的對應的包名,如果是整機測試,就不需要 –p package_name

2、當測試人員發現了問題,怎麼進行復現。monkey所謂的隨機操作,是基於seed產生的。每乙個seed值都會產生唯一的乙個操作序列。只要兩次操作的seed值是一樣的,那麼這兩次的操作序列也是一樣的,這樣我們就能用monkey來復現隨機發生的bug了。

3、--ignore-crashes --ignore-timeouts 這裡是在monkey測試的過程中遇到crash或者timeout的情況時忽略掉,一般不設定時,出現crash或者timeout時,monkey測試會終止。這裡是防止monkey測試終止。

4、10000 這裡是指點擊的次數

5、e:\work\log\monkey0710.txt指輸出日誌到對應檔案

6、2>&1 固定的寫法,代表的意思是中間忽略的東東的日誌一併輸入到指定的檔案中。

7、最後單獨的乙個"&" 是一旦monkey測試開始了,之後可以拔掉資料線,不會影響monkey測試。

8、--throttle 《毫秒》

指定使用者操作(即事件)間的時延,單位是毫秒;如果不指定這個引數,monkey會盡可能快的生成和傳送訊息。

9、-v 日誌詳細程度

level 0 : adb shell monkey -p fishjoy.control.menu -v 100 最簡單(預設),除了啟動、測試完成和最終結果外只提供較少的資訊。

level 1 : adb shell monkey -p fishjoy.control.menu -v -v 100 提供了較為詳細的測試資訊,如逐個傳送到activity的事件資訊

level 2 : adb shell monkey -p fishjoy.control.menu -v -v -v 100 提供了更多的設定資訊,如測試中選中或未選中的activity資訊

比較常用的是-v -v -v,一般會儲存到指定檔案中供開發人員查詢bug原因時使用。

1、  通過ctrl+c停止電腦上正在執行的monkey命令,但手機上依然會繼續執行

2、  通過命令

adb shell "ps | grep monkey"檢視monkey程序,返回的第乙個數字為程序號

3、  通過命令adb shell kill 程序號

4、  再次檢視monkey程序發現沒有程序,手機上monkey停止執行。

1、  常用方法

(1)啟動應用activity

launchactivity(pkg_name, cl_name): 啟動應用的activity。引數:包名和啟動的activity。

(2)點選操作

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

longpress():  長按2秒。

pressandhold(x, y, pressduration):  模擬長按事件。

dispatchpointer(downtime,eventtime,action,x,y,pressure,size,metastate,xprecision,yprecision,device,edgeflags):dispatchpointer命令用於向乙個指定的座標位置,傳送點選操作。

主要關注action、x、y三個引數。action:事件是按下還是抬起,0表示按下,1表示抬起。x、y:表示當前事件觸發的x軸和y軸的座標。兩個dispatchpointer命令加在一塊,乙個按下乙個抬起,表示一次點選操作,其餘引數預設設定為0即可。downtime,eventtime表示持續時間,用毫秒表示。

(3)拖拽操作

drag(xstart, ystart, xend, yend, stepcount):  用於模擬乙個拖拽操作。

pinchzoom(x1start, y1start, x1end, y1end, x2start, y2start, x2end, y2end, stepcount): 模擬縮放手勢。

(4)等待操作

userwait(sleeptime): 等待一段時間,sleeptime表示的等待時間,單位為毫秒。

devicewakeup(): 喚醒螢幕。

profilewait: 等待5秒。

(5)其他操作

dispatchstring(input):  輸入字串。

rotatescreen(rotationdegree, persist): 旋轉螢幕。 引數:rotationdegree為旋轉角度, e.g. 1代表90度;persist表示旋轉之後是否固定,0表示旋轉後恢復,非0則表示固定不變。

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

2、  指令碼例項

#標頭檔案、控制monkey傳送訊息的引數

type=raw events

count=10

speed=1.0

#以下為monkey命令

start data >>

launchactivity(pkg_name,activity)

tap(x,y,durtion)

前三行是指令碼頭,count為指令碼中包含的指令數目,speed為執行速度。start data >>後面是執行的命令。

執行後,monkey可以在指定模組中執行。

android自動化測試 monkey簡介(1)

什麼是monkey?monkey 是android sdk 自帶的自動化測試工具,可以執行在模擬器裡或實際裝置中,它向系統傳送隨機的使用者事件流,如按鍵輸入 觸控螢幕輸入 手勢輸入 sensor 事件等,實現對正在開發的應用程式進行壓力測試。在android sdk 根目錄下的tools 目錄下可以...

自動化測試工具monkey

monkey是android中的乙個命令列工具,可以執行在模擬器裡或實際裝置中。它向系統傳送偽隨機的使用者事件流 如按鍵輸入 觸控螢幕輸入 手勢輸入等 實現對正在開發的應用程式進行壓力測試。monkey測試是一種為了測試軟體的穩定性 健壯性的快速有效的方法。a 測試的物件僅為應用程式包,有一定的侷限...

android自動化測試 monkey(2)

monkey的測試策略 一.分類 monkey測試針對不同的物件和不同的目的採用不同的測試方案,首先測試的物件 目的及型別如下 測試的型別分為 應用程式的穩定性測試和壓力測試 測試物件分為 單一apk和apk集合 測試的目的分為 解決問題的測試 忽略異常的測試 和驗收測試 不忽略異常的測試 二.應用...