一、如何在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()
代码中包含注释“# 我”,代码执行失败,如下图所示:
去掉注释即可正常。