最近在學習monkeyrunner,有一點心得,總結出來,純屬個人分析,如果有不準確的地方還請指正
關於monkeyrunner的簡介,E文好的盆友可以到官方網站看看介紹,看E文頭疼的盆友就請參見譯言的中文介紹了,翻譯的很準確
http://article.yeeyan.org/view/37503/164523
本文想要分析一下monkeyrunner和python之間的關係
對於測試者來說,最先接觸的就是python指令碼,所以第一印象是monkeyrunner是一個python寫的工具,其實不然,monkeyrunner是一個徹頭徹尾的java工具。我們從monkeryrunner的開機檔案ANDROID_SDK_PATH\tools\monkeyrunner.bat中我們可以看出
call %java_exe% -Xmx512m -Djava.ext.dirs=%frameworkdir%;%swt_path% -Dcom.android.monkeyrunner.bindir=..\framework -jar %jarpath% %*
其最終調用的是monkeyrunner.jar。
那為什麼不用java直接寫class來測試而要用python指令碼寫測試case呢?
個人觀點----這是我認為非常好的地方,寫class和python指令碼對於測試工程師來說,很明顯python指令碼更容易上手,門檻也低。容易推廣,而且python豐富的第三方庫,也有很好的擴充性。但是目前帶來的問題是debug的問題。因為其執行的順序是monkeyrunner.jar->jython->python script。所以在eclips中,無論我們指定monkeyrunner.jar,還是jython.jar作為指令碼的解譯器,都是無法進行debug調試的。我們只有在jython的解譯器控制台中,逐條的輸入命令來調試,很麻煩,我上一篇文章中列出了外國專家給出的一種設定方法,經證實只在ubuntu上生效,有人說在windows上也可以,但是我在windows
7上一直都不行。
對於簡單的指令碼我們可以這麼調試,但是指令碼複雜後, 這樣調試的確還是很不方便,期待android 4.0推出之後能有一個大的進步