學習android及自動化測試中遇見的問題及解決辦法總彙
一、如何在eclipse匯入ApiDemos程式呢?
網上關於android自動化測試中大部分涉及的例子為ApiDemos程式,所以也想執行一下ApiDemos看看效果。一開始都不知道ApiDemos在哪,經過百度才知道在sdk目錄下的sample目錄下,有了原始碼後,第二個問題是如何匯入到eclipse中,經過一翻研究,搞定。具體匯入步驟如下:
1、開啟eclipse
2、file->new-android project
3、在Project name下面有兩個單選按鈕,選下面一個 Create project from existing source 然後選擇ApiDemos目錄位置,這時Project Name將會自動命名為:ApiDemos。這裡要注意一個問題,如果你的eclipse安裝了兩個版本,比如我機器上安裝了android 2.3.3 和 android 4.0,如果你選擇的是android2.3.3版本,即android-10目錄下的ApiDemos,那麼此時你應該在“New Android Porject”視窗中,選擇最下面的“next”,而不要選擇“finish”。如下圖所示:
選擇Next,目的是選擇相對應的版本。如下圖所示:
如果你匯入的是android 2.3.3,系統預設是android 4.0(我這裡預設為android 4.0),這樣結果肯定出錯。
4、剩下的事件就由你去做了。比如我寫入到手機上,以monkeyrunner進行測試。
二、monkeyrunner xxx.py命令python檔案中註釋不能包括中文。
在CMD中通過命令monkeyrunner xx.py來執行xx.py的內容進行測試。注意:xx.py檔案裡不能包含中文。註釋中包含中文都不行。切記。
該問題已解決,解決方案:
在檔案開頭增加 # -*- coding: utf-8 -*- 或者 #coding:utf-8
如程式碼:
import sys from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage #我 def insertNote(d): d.startActivity(component='com.example.android.notepad/.NotesList') print 'insert a new note' MonkeyRunner.sleep(2) d.press('KEYCODE_MENU',MonkeyDevice.DOWN_AND_UP) MonkeyRunner.sleep(2) result=d.takeSnapshot() result.writeToFile('shot1.png','png') MonkeyRunner.sleep(2.0) d.touch(267,905,MonkeyDevice.DOWN_AND_UP) MonkeyRunner.sleep(5) d.type("hello") MonkeyRunner.sleep(1) d.press("KEYCODE_BACK",MonkeyDevice.DOWN_AND_UP) print 'wwwwwwwwwwwwwwwwww' MonkeyRunner.sleep(15) d.press("KEYCODE_HOME",MonkeyDevice.DOWN_AND_UP) print "insert Successfully" MonkeyRunner.sleep(5) def main(): print 'start' device=MonkeyRunner.waitForConnection() if not device: print 'couldn\'t get connection' sys.exit() print 'found device' insertNote(device) if __name__=='__main__': main()
程式碼中包含註釋“# 我”,程式碼執行失敗,如下圖所示:
去掉註釋即可正常。