android界面自动化测试工具monkeyrunner

monkeyrunner是利用Python编写执行脚本进行UI自动化测试,模拟用户的操作:

1, 新建脚本文件monkey.py

android界面自动化测试工具monkeyrunner

2,执行脚本:monkeyrunner monkey.py (将monkey.py放到sdk的tools目录下执行)


3,记录自己的操作,然后导出脚本:

执行:D:\SDK\android-sdk_r08-windows\android-sdk-windows\tools>monkeyrunner monkey_recorder.py

会弹出界面:

android界面自动化测试工具monkeyrunner

4,导出脚本之后,执行monkeyrunner monkey_playback.py 导出的脚本文件名.mr,之后设备就会按照之前的操作再做一次。



列出常用的代码:

1. #导入模块;
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

2. #连接当前设备,并返回一个MonkeyDevice对象;

#第一个参数为等待连接设备时间
#第二个参数为具体连接的设备
device = mr.waitForConnection(1.0,'emulator-5554')
if not device:
print "Please connect a device to start!"
else:
print "Start "

3. #安装Android包,注意,此方法返回的返回值为boolean,由此可以判断安装过程是否正常 ;
device.installPackage('myproject/bin/MyApplication.apk')

device.removePackage ('com.example.android.notepad')
print ('卸载成功')
device.installPackage('ApiDemos.apk')
print ('安装成功')

4. #启动一个Activity;
device.startActivity

(component='com.android.htccontacts/com.android.htccontacts.ContactsTabActivity')

5. #截图;
result = device.takeSnapshot()
result.writeToFile('C:\\Users\\Martin\\Desktop\\test.png','png')

6. #时延(秒);
MonkeyRunner.sleep(3)

7. #滑动屏幕;
for i in range(1,70):

device.drag((250,850),(250,110),0.1,10)

//开始,结束,持续时间,步骤

for i in range(1,70):
device.drag((250,110),(250,850),0.1,10)
MonkeyRunner.sleep(1)

8. #触击屏幕;
device.touch(507,72,"DOWN_AND_UP") ,也可以用这个模拟坐标点的点击事件

9. #执行adb shell命令;
device.shell("input text goup01")

按下HOME键 device.press('KEYCODE_HOME','DOWN_AND_UP')
按下BACK键 device.press('KEYCODE_BACK','DOWN_AND_UP')
按下下导航键 device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')
按下上导航键 device.press('KEYCODE_DPAD_UP','DOWN_AND_UP')
按下OK键

device.press('KEYCODE_DPAD_CENTER','DOWN_AND_UP')


相应的按键对应的名称如下:

home键:KEYCODE_HOME
back键:KEYCODE_BACK
send键:KEYCODE_CALL
end键:KEYCODE_ENDCALL
上导航键:KEYCODE_DPAD_UP
下导航键:KEYCODE_DPAD_DOWN
左导航:KEYCODE_DPAD_LEFT
右导航键:KEYCODE_DPAD_RIGHT
ok键:KEYCODE_DPAD_CENTER
上音量键:KEYCODE_VOLUME_UP
下音量键:KEYCODE_VOLUME_DOWN
power键:KEYCODE_POWER
camera键:KEYCODE_CAMERA
menu键:KEYCODE_MENU