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集合 測試的目的分為 解決問題的測試 忽略異常的測試 和驗收測試 不忽略異常的測試 二.應用...