个人经过几个礼拜的学习monkeyrunner测试,得到以下感悟:
1、monkeyrunner自动化测试有局限:当遇到不同分辨率的屏幕后,脚本需要修改,才能适应不同的测试环境。因为分辨率不同,之前写的常量的X、Y值会发生变化。再次使用touch()方法时,会出错;
2、monkeyrunner回归测试步骤,出错无法捕获;
3、monkeyrunner适合回归测试,验证新修改的内容是否影响了老的功能点,检查老功能点的任务;
4、monkeyrunner的脚本主要使用就是:MonkeyRunner、MonkeyDevice、MonkeyImage三大类(至于三大类的方法详见 http://developer.android.com/tools/help/MonkeyRunner.html 说明);
5、废话少说,上例子:
#coding=utf-8
import time
#import os
#引入模块
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
#创建连接,初始化模拟器
device = MonkeyRunner.waitForConnection(61)
device.startActivity(action="android.intent.action.MAIN",component = "包名/启动的activity")
time.sleep(10)
y1=400
y2=100
integer=0
#循环下拉列表
while integer<=10:
device.drag((230,y1),(230,y2))
y1=y1+50
y2=y2+50
integer=integer+1
#time.sleep(5)
device.touch(120,300,MonkeyDevice.DOWN_AND_UP)
time.sleep(5)
device.press("KEYCODE_BACK",MonkeyDevice.DOWN_AND_UP)
time.sleep(5)
device.touch(10,30,MonkeyDevice.DOWN_AND_UP)
#循环向后翻页
while integer<=111:
device.touch(17,379,MonkeyDevice.DOWN_AND_UP)
integer=integer+1
time.sleep(5)
time.sleep(5)
device.press("KEYCODE_BACK",MonkeyDevice.DOWN_AND_UP)
time.sleep(5)
device.touch(118,315,MonkeyDevice.DOWN_AND_UP)