使用MonkeyRunner工具运行一个简单的python脚本

使用monkeyrunner工具,编写一个简单的python脚本,对一个APP进行自动化测试

monkeyrunner自动化测试,主要通过运行结果截屏与期望结果截屏相比较。

 

Monkeyrunner API主要包括三个模块

1、MonkeyRunner:这个类提供了用于连接monkeyrunner和设备或模拟器的方法,它还提供了用于创建用户界面显示提供了方法。

2、MonkeyDevice:代表一个设备或模拟器。这个类为安装和卸载包、开启Activity、发送按键和触摸事件、运行测试包等提供了方法。

3、MonkeyImage:这个类提供了捕捉屏幕的方法。这个类为截图、将位图转换成各种格式、对比两个MonkeyImage对象、将image保存到文件等提供了方法。


1.手机启动开发者模式,并用数据线连接到电脑上,使用:adb devices 命令可查看是否连接成功

2.新建一个文件夹F:\test1,存放需要测试的APP安装包与脚本

3.确定sdk\tools\bin目录下存在monkeyrunner.bat文件

4.编写脚本

# coding=UTF-8

#导入这个程序使用的monkeyrunner模块
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

#连接到当前设备,返回一个Device对象
device = MonkeyRunner.waitForConnection()

#安装APP包
#看看安装是否成功
device.installPackage('F:/test1/biugo.apk')

#启动APP(包名/activity名)
device.startActivity(component='com.yy.biu/.biz.main.MainActivity')

#按下菜单按钮
device.press('KEYCODE_MENU','DOWN_AND_UP')

#截屏
result = device.takeSnapshot()

#将屏幕截图写入文件
result.writeToFile('F:/test1/shot1.png','png')

5.打开cmd,并切换到sdk\tools\bin目录下:cd /d C:\Users\Administrator\AppData\Local\Android\Sdk\tools\bin

6.运行脚本:monkeyrunner F:\test1\monkeyDemo1.py

7.查看截图


其他操作的一些代码:

1.卸载APP:

device.removePackage('com.yy.biu')

2.暂停目前正在运行的程序指定的秒数:

MonkeyRunner.sleep(5)

3.字符串发送到键盘:

device.type('love')

4.锁屏后,屏幕关闭,可以用下命令唤醒:

device.wake()

5.重启手机:

device.reboot()

6.模拟滑动(参数:开始坐标;结束坐标;持续时间/秒,默认1秒;插值点时要采取的步骤,默认值是10):

device.drag((100,1053),(520,1053),1.5,10)

7.在指定位置发送触摸事件

device.touch(520,520,'DOWN_AND_UP')

8.发送指定类型指定键码的事件

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


KeyCode: 

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

 

 第二个例子:

# coding=UTF-8
#实现模拟随机3次点击

from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
import random  # 随机数模块
#import time  #  时间模块
#import sys  # 系统模块

device = MonkeyRunner.waitForConnection()  # 连接当前设备
if device is None:  
    print("Please connect a device to start!")  
else:  
    print("start test")   
n = 3
num = 0	  # 计数器  
while (num < n):  
# x,y 为屏幕坐标 范围为设备分辨率
    try:
        x = random.randint(0,720)    # 参数: 手机分辨率高,从0~720随机取一个值作为x
        y = random.randint(0,1280)    #参数: 手机分辨率宽,从0~1280随机取一个值作为y
    except IndexError:
        print ("parameter error")  # cmd中文提示乱码 先简单做个英文提示
    device.touch(x,y,“DOWN_AND_UP”) # 设备点击事件
    print(num)
    print(x)  
    print(y)  
    MonkeyRunner.sleep(5)  
    num += 1 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值