為了支持黑盒自動(dòng)化測試的場景,Android SDK提供了monkey和monkeyrunner兩個(gè)測試工具反璃,這兩個(gè)測試工具除了名字類似外昵慌,還都可以向待測應(yīng)用發(fā)送按鍵等消息,往往容易產(chǎn)生混淆淮蜈,以下是他倆的不同之處斋攀。
1.monkey運(yùn)行在設(shè)備或者模擬器上邊,可以脫離PC運(yùn)行梧田,其運(yùn)行時(shí)如下圖所示淳蔼。
而monkeyrunner運(yùn)行在PC上,需要通過服務(wù)器/客戶端的的模式向設(shè)備或者模擬器上的android應(yīng)用發(fā)送指令來執(zhí)行測試裁眯,其運(yùn)行時(shí)如下圖所示肖方。
2.普遍的做法是將monkey作為一個(gè)向待測應(yīng)用發(fā)送隨機(jī)按鍵消息的測試工具,驗(yàn)證待測應(yīng)用在這些隨機(jī)性的輸入面前是否會(huì)有閃退或者崩潰未状。而monkeyrunner則接受一個(gè)明確的測試腳本(使用python語言編寫的)俯画。
3.雖然monkey也可以根據(jù)一個(gè)指定的命令腳本發(fā)送按鍵消息,但其不支持條件判斷司草,也不支持讀取界面的信息來執(zhí)行驗(yàn)證操作艰垂。而monkeyrunner的測試腳本中有明確 的條件判斷等語句泡仗,可用來做功能測試。
?總結(jié):
實(shí)際操作中猜憎,monkey由于缺少必要的條件判斷等命令娩怎,難以在功能測試上有所作為,只能作為生成一些隨機(jī)事件的工具胰柑,測試應(yīng)用程序的健壯程度截亦,待測應(yīng)用崩潰后可以根據(jù)monkey打印的日志,再用monkey創(chuàng)建一個(gè)重現(xiàn)步驟柬讨,供開發(fā)調(diào)試崩瓤。monkey服務(wù)器模式更適合用于黑盒測試,不建議用于自動(dòng)化測試踩官。
而Monkeyrunner雖然有Python和Java類庫的強(qiáng)大支持却桶,但其自身提供的API有限,還得需要插件擴(kuò)展其功能蔗牡。