Android自動化測試架構開發(二)Monkey、MonkeyRunner介紹和分析

來源:互聯網
上載者:User

標籤:

本篇介紹兩個Android內建的測試架構:Monkey和MonkeyRunner

1.Monkey

Monkey是android內建的測試架構,通過向手機發送隨機事件(手勢,點擊,輸入)進行應用程式壓力測試(可指定應用程式套件組合名,也可以說是穩定性測試),測試應用程式的穩定性和健壯性;
使用步驟:
(1)進入adb shell
(2)cd /system/bin
然後執行monkey命令即可;
常用的monkey命令(網上借的圖):

分析:
Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效方法。
(1)測試的對象僅為應用程式套件組合,有一定的局限性。
(2)Monkey測試使用的事件流資料流是隨機的,不能進行自訂。
(3)Monkey測試主要是根據像素點隨機進行事件的觸發,無法進行錄製回放
(4)僅能作為輔助測試,還需其它架構進行應用程式的整體系統性測試

2.MonkeyRunner

指令碼語言:Python
為什麼使用Python語言編寫指令碼,參考
http://blog.csdn.net/robinzhou/article/details/6790098

在測試指令碼中,要先取到device執行個體:device = MonkeyRunner.waitForConnection()

事件類型API:拖拽,輸入和點擊

(1)拖拽:device.drag(tuple start,tuple end,float duration,integer steps)

start:起始位置,為tuple類型的(x,y)座標點
end:終點位置,為tuple類型的(x,y)座標點
duration:拖拽手勢期間,預設1.0s
steps:步數,預設為10

(2)輸入:device.touch(x,y,DOWN_AND_UP)
device.type(“xxxx”)
device.press(“KEYCODE_ENTER”,”DOWN_AND_UP”)

(3)點擊:device.touch(x,y,DOWN_AND_UP)

必備API:等待裝置,啟動應用,設定等待,安裝、卸載應用

(1)等待裝置: device = MonkeyRunner.waitForConnection(),裝置串連是一切操作的前提,串連失敗將不會繼續後續操作

(2)安裝、卸載應用:
安裝:device.installPackage(String path)
卸載:device.removePackage(String package)

(3)啟動應用:device.startActivity(package+”/”+activity)

(4)設定等待:MonkeyRunner.sleep(float seconds)

系統按鍵API:發送索引值事件

device.press(String name,dictionary type)
String name:keycode名
dictionary type:key event類型(如DOWM,UP..)
例:device.press(“KEYCODE_MENU”,”DOWN_AND_UP”),彈出menu菜單

如何?長按操作:device.drag((300,500),(300,500),3,10), 長按(300,500)三秒鐘

影像處理API:截屏,映像儲存,映像截取,對比

截屏:picture = device.takeSnapshot();

儲存:device.writeToFile(String path,String format)

映像截取:
picture = device.takeSnapshot();
subpic = picture.getSubImage((x,y,w,h))

映像對比:
picture1 = device.takeSnapshot();
picture2 = device.takeSnapshot();
compare = picture1.sameAs(picture2,0.9)

0.9為匹配百分比,範圍為0.0~1.0,預設為1.0,即必須全部匹配
compare返回ture/false,true則兩張圖片一致,false,不一致

分析:
MonkeyRunner相對於Monkey有了很大的進步:
(1)API調用更加明了,支援裝置的喚醒,重啟,支援應用程式的安裝,卸載,啟動;
(2)對三種基本事件類型處理API更簡單
(3)特色是可以進行截屏,對進行映像對比,判斷程式是否異常
(4)支援錄製回放
(5)缺點是,一切事件類型都是基於像素點,穩定性太低,指令碼維護性太低,與Monkey類似,只能作為輔助測試架構使用

本篇文章對Monkey和MonkeyRunner進行了使用說明和優缺點分析,下篇文章將重點介紹Instrumentation測試架構。

Android自動化測試架構開發(二)Monkey、MonkeyRunner介紹和分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.