monkeyrunner

2018-10-09  本文已影响18人  顾顾314

最近一段时间在学习自动化测试,先是使用了monkey,monkeyscript,再接着是现在的monkeyrunner。学习monkeyrunner先是花了大量时间做了准备工作,因为使用monkeyrunner需要用到Python这门语言,所以自己花了大半个月的时间去学习了Python的一些基本语法。

使用monkeyrunner之前需要配置好Android开发环境,这一步应该都好,毕竟做Android开发的很多,网上资料很多,再不行就请教公司里的开发人员帮忙配置。

以下进入正题,第一次写这种东西,有不对之处还请勿喷(写给喷子看),有错误之处还请不吝赐教,共同进步。

一、准备工作

利用monkeyrunner启动应用之前,必须要先知道该应用的package和Activity,如何获取呢?网上大多给的是Android自带的aapt进行获取,在这里给出另一种方法,使用命令行直接获取(前提是手机要连接电脑,并且已经安装了应用,手机处于主页位置):

1、先确认手机已经连接到电脑,并且可以调试:

adb devices

执行这个命令后,终端就会出现对应手机的id,出现id就代表我们可以进行下一步操作,而且这个id我们还有可能会用到。

image

2、打开terminal,输入命令行:adb logcat | grep START。出来一串结果,如图:

image

此时点击需要测试的App,又出来一串类似的结果:

image

补充:这里的前提是我们的手机上已经安装了需要测试的App,但是如果App还在持续开发中,发布频率不是很高,难道每次都要找开发人员安装App,听起来是不是很烦?在这里介绍一个方法,只需要开发人员提供apk,咱们就可以自己安装到手机上,命令行如下:

adb install apk的路径。如图:

image

二、启动monkeyrunner

很多人都在这里耗费比较长时间,总是起不来monkeyrunner。在刚才的基础上重起(command+N)一个terminal窗口,直接执行命令行:

monkeyrunner

就可以启动了,进入了交互模式。然后在交互模式状态导入monkeyrunner需要的类(一共三个类,这里不是全部用到,但是我一并导入):

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

回车,又进入交互模式,连接设备(不连接设备,monkeyrunner也是无能为力啊,哈哈):

device = MonkeyRunner.waitForConnection(3.0,'2babc241')

函数后面的括号里的参数可以不填写,如果只链接一部手机。如果电脑同时链接多部手机则需要填写了。解释:参数一,3.0.表示链接手机等待的时间,在这个时间仍未连接成功则抛出异常,参数二,2babc241。表示手机的id。

本节内容最重要的一步,启动应用,输入命令行:

device.startActivity(component='com.zywulian.smartlife/com.zywulian.smartlife.ui.splash.RootActivity')。

这样就会把应用启动了,接着就可以进行其他操作了。

解释:device.startActivity(component='package name/Activity name')。

当然了,这只是最简单的,我们最终还是需要在编辑器里进行编写Python脚本,从而运行脚本。因为我还不会使用简书把脚本内嵌进来,所以暂时先不讲了,有需要的可以联系我,我们共同学习。

是不是很简单,祝你学习愉快。

注意:如果使用 monkeyrunner 不能直接运行,可以进入到 monkeyrunner 所在的目录下进行操作,想要获取电脑上 monkeyrunner 的位置,使用命令:
which adb
如图:

82D1117B-96EA-4325-9941-74E737EBE91D.png

monkeyrunner 就在 Android sdk 的 tools 目录里,我的位置:

/Users/yonghuming/Library/Android/sdk/tools/bin

如图:

image

可以直接双击 monkeyrunner,也可以使用命令行在终端启动:“./monkeyrunner”(双引号“”中间的部分是命令行)。运行成功即进入交互模式,如图:

image
上一篇下一篇

猜你喜欢

热点阅读