android 自动化测试之monkeyrunner学习(三),android 自动化测试之MonkeyRunner学习(二)...

本文详细介绍了Android测试工具MonkeyRunner的使用,包括其三个核心类MonkeyRunner、MonkeyDevice和MonkeyImage的功能,如截图操作、坐标获取以及在真机和模拟器上的区别。通过实例代码演示了如何连接设备、启动活动、点击操作和截图比较,以及一个实用的坐标获取工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MonkeyRunner工具共有三个类:MonkeyRunner、MonkeyDevice、MonkeyImage。

一、MonkeyRunnner类:

这个类主要用于把MonkeyRunner连接至真机或者模拟器,另外有个显示提示信息的alert方法和一个选择方法比较常用。

二、MonkeyImage类:

这个类主要是测试过程中,用来保存测试截图,把图片保存成各种格式,并且可以比较两个MonkeyImage对象。

主要常用的有两个方法:(stringpath,stringformat),这个是保存截图的位置,和命名,可以把图片保存到sdcard里面,也可以保存到电脑里面;(other,floatpercent),这个用来比较两个截图是否相同,结果为boolean值。

三、MonkeyDevice类:

这个类的方法就多了一下,主要提供了安装和卸载程序包、启动一个活动及操作键盘等事件的方法。像里面的(stringuri,stringaction,stringdata,stringmimetype,iterablecategoriesdictionaryextras,componentcomponent,flags)启动一个应用,(stringname,dictionarytype)点击控件,(integerx,integery,integertype)点击控件(通过坐标定位),(tuplestart,tupleend,floatduration,integersteps)拖拉控件等等方法比较常用。

MonekeyRunner这个测试工具用起来不算太难,下面给出一段代码简单解释一下:

FetionTest.py

#coding=utf-8    Python程序的第一句,添加这句使注释支持中文

# 导入需要的MonkeyRunner的包,也可以是自己写的类,如果文件很多的话

from  com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage

#连接真机,里面要写正确自己的真机对应的名字,cmd下命令下,可以用adb devices看到

devices1=MonkeyRunner.waitForConnection(5,"1234567890ABCDEF")

#连接模拟器

devices2=MonkeyRunner.waitForConnection(5,"emulator-5554")

#启动飞信的主界面,这是我测的飞信程序,里面主要是配好飞信的包名和启动Activity

devices1.startActivity

(component = 'cn.com.fetion/.android.ui.activities.StartActivity')

devices2.startActivity

(component = 'cn.com.fetion/.android.ui.activities.StartActivity')

#休眠8秒,便于帐号的登录

MonkeyRunner.sleep(8.0)

#点击我的好友一栏,这里使用的是坐标方法

devices1.touch(202,258,"DOWN_AND_UP")

#选中好友

devices1.touch(222,326,"DOWN_AND_UP")

devices1.touch(442,325,"DOWN_AND_UP")

# 点击“加入黑名单”

devices1.touch(223,563,"DOWN_AND_UP")

# 下面是进行截图,和保存图片

result1 = device1.takeSnapshot()

result1.writeToFile('E:\slack01.png','png')

#点击返回键,可以找到模拟器上任何一个建对应的关键值,这个在官方文档里可以查到

device1.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP)

result2 = device1.takeSnapshot()

result2.writeToFile('E:\slack02.png','png')

这个程序就简单说这些,另外可以对自己的程序进行优化,可以把不同的测试case封装到一个方法里,也可以把一些配置设置成全局变量,然后在不同的类里进行调用。这些需要简单了解一下Python的编程知识。

下面说一个比较好用的获取坐标的工具。就是用来获取真机上坐标的工具,当我们点击真机上的空间时,能显示真机上的点击点的坐标。

这个是一个可以自己定义的python文件,只有几句话:

from com.android.monkeyrunner import MonkeyRunner as mr

from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder

# 里面添加你的真机的名字

device = mr.waitForConnection(5,"MSM8225QRD5")

recorder.start(device)

比如,我把它定义为monkey_recorder.py,然后放在G盘,在cmd下运行monkeyrunner monkey_recorder.py,就会出现如下界面:

当我们在这个工具上点击时,真机也会跟着执行,并且会显示每一步我们点击的位置的坐标,比如,我点击打开音乐播放器会记录如下:

这个工具的好只有处你用过几次才知道的,呵呵,反正有些应用程序里很小的图标只能通过坐标获取点击事件,这个工具的优势就显示出来了。另外,需要注意,这个是不能用来获取模拟器坐标的,模拟器上的坐标只有自己下个截图工具,来量取坐标了。这一点确实很蛋疼。

软件工具都是这样,没有绝对的便利。MonkeyRunner也不例外。呵呵,这一次就写这么多吧,这个工具简单的使用介绍的也差不多了,更多的还需要自己去摸索,熟能生巧嘛。希望大家能多多分享,多多交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值