美文网首页编程技术类
Monkeyrunner 小白入门示例文章

Monkeyrunner 小白入门示例文章

作者: FrancescoT | 来源:发表于2015-12-10 11:01 被阅读2812次

    很详细的Monkeyrunner入门示例,原文来自anikikun的分享;大家可以跟着练手,新技能Get!:

    准备工作

    1、安装Android SDK

    2、熟悉MonkeyRunner的API(http://article.yeeyan.org/view/37503/164523)

    3、一部Android手机或模拟器(手机与电脑连接,可以使用adb devices验证手机是否与电脑连接成功)

    4、手机打开“指针位置”功能,可以方便我们定位坐标,打开方法:

    SDK的安装过程我就不赘述了,直接开始一个简单的MonkeyRunner交互

    1、 打开cmd,输入

    monkeyrunner

    ,回车,出现如图情况,则进入了MonkeyRunner的交互对话环境

    2、 输入

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

    ,回车,导入MonkeyRunner运行所需要的模块,没有报错则成功

    3、 输入

    device=MonkeyRunner.waitForConnection()

    回车,使MonkeyRunner与设备进入连接状态,没有报错则成功

    4、输入

    device.installPackage(‘e:/hjclass.apk’)

    ,回车,安装放在e盘下的hjclass.apk文件到手机中,这个apk文件是我提前准备好的应用,若返回True则安装成功

    5、 输入

    device.startActivity(‘com.xx.xxx/.activity.xxxActivity’)

    回车后可以直接看手机,如果APP被启动,则表示成功;

    启动一个应用,其中(‘com.xx.xxx/.activity.xxxActivity’) 是APP的包名和启动Activity,这两个参数相当于Appium中需要用到的app-activity,可以问开发获取。也可以参考乙醇大大提供的方法:http://www.cnblogs.com/nbkhic/p/3806951.html

    ===分割线 以下均以我测试的应用为准,仅供大家参考 ====

    6、 在启动APP后,我们可以看到第一个界面,我们获取当前界面“创建”按钮的坐标,如图,按住手机上的该按钮,可以在手机顶部看到该按钮的坐标为(454,702):

    7、 回到cmd,我们输入

    device.touch(454,702,’DOWN_AND_UP’)

    回车后,就手机上就执行了点击的动作,我们可以看到手机上按钮被点击了。

    8、 进入到了欢迎页,这时候我们需要进行滑动操作,就要获取滑动前的坐标、滑动后的坐标,以同样的方法,我们获取到滑动的初始坐标为(670,700),结束坐标为(200,700),因此我们在cmd中输入

    device.drag((670,700),(200,700),3)

    回车后观察手机,发现滑动成功。总共有三个欢迎页,所以该命令执行2次。

    9、 到欢迎页最后一页,照旧,获得按钮的坐标,(400,1000),输入

    device.touch(400,1000,’DOWN_AND_UP’)

    进入到登录界面

    10、 获取用户名栏上的坐标,坐标获取为(400,550),输入

    device.touch(400,550,’DOWN_AND_UP’)

    回车

    11、 光标定位到用户名输入栏后,我们需要输入用户名,则在cmd中输入如下命令,

    device.type(‘username’)

    回车,type即输入文字

    12、 用户名输入完,此时我们需要把光标定位到密码栏,获取到密码栏的坐标(430,430),输入

    device.touch(430,430,’DOWN_AND_UP’)

    13、 输入密码

    device.type(‘password’)

    回车

    14、 照旧,获取登录按钮的坐标,并点击

    到此为止,一个应用的安装、打开、滑动、输入、登录的操作全部操作完了。

    我们回顾一遍,其实刚刚我们从交互开始,全部代码整合一遍,整合成一个Python文件,是可以一次性执行完的。

    整理完后:

    fromcom.android.monkeyrunnerimportMonkeyRunner,MonkeyDevice,MonkeyImage

    device=MonkeyRunner.waitForConnection()

    device.installPackage('e:/hjclass.apk')

    device.startActivity(‘com.xx.xxx/.activity.xxxActivity’)

    device.touch(454,702,'DOWN_AND_UP')

    device.drag((670,700),(200,700),3)

    device.drag((670,700),(200,700),3)

    device.touch(400,1000,'DOWN_AND_UP')

    device.touch(400,550,'DOWN_AND_UP')

    device.type('username')

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

    device.type('password')

    device.touch(400,800,'DOWN_AND_UP')

    打开一个编辑器,并将你刚刚交互中所写的代码写到里面去,然后保存成一个Python文件,比如保存名字为monkeyrunner.py,放的e盘根目录。

    执行文件的方法:

    1、 打开cmd

    2、 输入e: ,然后回车

    3、 输入monkeyrunner e:/monkeyrunner.py ,回车后代码就开始执行了

    上面就代码就是一个简单的用例了,但是如果直接上面这段代码的话,会出现一些问题,因为上面的代码中没有等待时间,也许点击确定后,还没等手机反应过来,就已经执行了下一句代码了,导致用例执行失败。

    所以我们要对这个代码进行修改,在操作当中插入等待时间:

    fromcom.android.monkeyrunnerimportMonkeyRunner,MonkeyDevice,MonkeyImage

    device=MonkeyRunner.waitForConnection()

    device.installPackage('e:/hjclass.apk')

    #启动应用,然后等待6秒钟

    device.startActivity('com.hujiang.hjclass/.activity.SplashActivity')

    MonkeyRunner.sleep(6)

    #点击创建,然后等待2秒钟

    device.touch(454,702,'DOWN_AND_UP')

    MonkeyRunner.sleep(2)

    #滑动欢迎页2次,滑动一次后等待2秒钟

    device.drag((670,700),(200,700),3)

    MonkeyRunner.sleep(2)

    device.drag((670,700),(200,700),3)

    MonkeyRunner.sleep(2)

    #点击开始学习按钮,然后等待3两秒钟

    device.touch(400,1000,'DOWN_AND_UP')

    MonkeyRunner.sleep(3)

    #点击用户名输入栏,等待1秒钟

    device.touch(400,550,'DOWN_AND_UP')

    MonkeyRunner.sleep(1)

    #输入用户名,等待1秒钟

    device.type('username')

    MonkeyRunner.sleep(1)

    #点击密码栏,等待1秒钟

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

    MonkeyRunner.sleep(1)

    #输入密码,等待1秒钟

    device.type('password')

    MonkeyRunner.sleep(1)

    #点击登录按钮

    device.touch(400,800,'DOWN_AND_UP')、

    「软件测试的自我修养」每日精选推送,包括且不限于测试方法、技术、工具分享以及测试求职、笔试、面试心得微信搜索公众号“软件测试的自我修养”或直接扫描下方二维码关注,Uncle C为你答疑解惑,随着时间的积累,相信同学们能和公众号一起茁壮成长,追上那个曾经被寄予厚望的自己

    相关文章

      网友评论

      • 郑钱钱的小笔记: device.installPackage('C:\zx-download\APP\app-release.apk_yun.apk')请问我用这个代码安装,安装不上呢,提示返回false

      • 冰川孤辰js: :sweat: 代码格式可以再整理一下...
        另外,type的时候,会触发输入法, 输入的内容应该跟输入法是直接相关的, 我看博主代码中没有说明输入法模式,都可以正常输入吗? 比如九宫格中文模式下,我 type('234') , 然后回车,有可能输入的是"bei" ,请问博主代码运行没问题吗? 有解决方案吗?

      本文标题:Monkeyrunner 小白入门示例文章

      本文链接:https://www.haomeiwen.com/subject/gmcyhttx.html