1. 程式人生 > >學習android及自動化測試中遇見的問題及解決辦法總彙

學習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()

程式碼中包含註釋“# 我”,程式碼執行失敗,如下圖所示:

去掉註釋即可正常。

三、monkeyrunner中touch引數座標的獲取方法