最全的MonkeyRunner自动化测试从入门到精通(9)
最基本脚本功能开始编写
(1)Monkeyrunner和Monkey的区别
1)Monkeyrunner工具在工作站上通过API定义的特定命令和事件控制设备或模拟器(可控)
2)精确控制事件之间的事件
3)可以进行:点触屏、拖拽、长按、键盘事件
4)可以智能截图对比和判断
5)回溯出详细具体的BUG路径
(2)Monkeyrunner优缺点:
1) 能完全模拟人工所有操作
2) 有详细的API文档参考
3) 可以写出智能图像对比脚本
4) 支持java和Python两种语言脚本
5) 脚本移植性差
(3)Monkeyrunner的脚本编写
1) 终端USB调成开发者模式
2)电脑安装手机驱动
(4)实现一个简单的运行的实例(通过命令行的方式进行实现,同时)
步骤一:打开cmd,输入monkeyrunner,如图所示:
步骤二:进入shell命令交互模式后,首要一件事就是导入monkeyrunner所要使用的模块。直接在shell命令下输入命令:
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
再回车,这步完成我们就可以利用monkeyrunner进行测试工作了。
步骤三:模拟器的链接,下面我们就要Monkeyrunner连接上模拟器,进行一系列操作了。输入命令:
device=MonkeyRunner.waitForConnection()
其中,device=MonkeyRunner.waitForConnection(6,’emulator-5554′)
参数1:超时时间,单位秒,浮点数,默认是无限期地等待。
参数2:指定的设备名称device_id,默认为当前设备(手机优先,其次为模拟器)
输入命令后,页面上没有错误信息返回,即成功连接设备。
步骤四:app安装并启动。 模拟器启动成功后,我们安装自己想要的apk,这里我们选择qq音乐安装。
输入命令:device.installPackage(‘F:\QQyinle_439.apk’),其中,参数是APK的相对路径。
安装成功返回true,此时查看模拟器我们可以在IDLE界面上看到安装的APK的图标了。
步骤五:进行启动
app安装成功后,现在启动该app,命令为:
device.startActivity(component=”package名/.activity”)
首先,我们有必要说一下,如何获取一个app的package名和activity。这里,我们只描述一种获取方式。
使用aapt,其中aapt是sdk自带的一个工具,在sdk\builds-tools\目录下:
以存储在F盘的qq音乐为例,运行cmd,命令行中切换到aapt.exe目录,
方法一:
执行命令:aapt dump badging F:\QQyinle_439.apk ,注意,apk路径中一定不能有空格。
由上图可知:package name:com.tencent.qqmusic
activity:.activity.AppStarterActivity
方法一由于日志较多,寻找起来比较费劲,所以我们引出方法二。
方法二(推荐):
把日志存储在特定的文件中,在文件中通过搜索关键字,得到包名及活动名,这里我把结果输出到F盘的log.txt中:
aapt dump badging F:\QQyinle_439.apk > F:\log.txt
到此,已经获取了app的package名和activity。下面,我们真正的启动app。在原有cmd运行窗口,输入命令:
device.startActivity(component=” com.tencent.qqmusic/.activity.AppStarterActivity “)
命令执行后,模拟器上的app被启动。这表示命令启动app成功。这里的关键是app的package name和activity对应获取正确,否则启动不了特定app。
(5)在eclipse中进行使用,编写脚本语言。在eclipse中进行创建项目。
步骤一:在File中,New一个Project,并选择PyDev Project。
步骤二: 根据需求,填写项目名称,并选择项目的类型为Jython,点击Finish。
步骤三: 项目新建完成后,单击选中项目,右键,New一个PyDev Module,新建完成后,就可以写python程序了。
步骤四: 现在,我们把Monkeyrunner中写的脚本,直接拷贝到eclipse中,新建的PyDev Module中,包括导包、连接设备、安装app、启动app:
1 #引入monkeyrunner需要的两个模块:
2 from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
3 #把模拟器和monkey绑定,绑定后在monkeyrunner的操作等同于在模拟器的操作:
4 device=MonkeyRunner.waitForConnection()
5 #安装一个apk应用包
7 device.installPackage('F:\\QQ_374.apk')
8 #启动特定的Activity
9 device.startActivity(component="com.tencent.mobileqq/.activity.SplashActivity")
(6)eclipse中的运行Monkeyrunner脚本配置
步骤一: 菜单栏中选择Run-External Tools-External Tools Configurations,
步骤二: 添加相关配置信息,如下图:
注:以上配置只针对test02.py,如果有新的PyDev Package,要同时更改Working Directory和Arguments的配置。
模拟器启动后,接下来就可以运行刚才新建的PyDev Module了
在模拟器上,我们可以看到app的自动安装和启动。这说明环境已经配置成功,之后就可以在eclipse中编辑monkeyrunner脚本,并运行。
最全的MonkeyRunner自动化测试从入门到精通(9)的更多相关文章
- 最全的MonkeyRunner自动化测试从入门到精通(10)
三.MonkeyRunner复杂的功能开始学习 (1)获取APK文件中ID的两种方式 Monkeyrunner的环境已经搭建完成,现在对Monkeyrunner做一个简介. Monkeyrunner工 ...
- 史上最全的MonkeyRunner自动化测试从入门到精通(3)
原文地址https://blog.csdn.net/liu_jing_hui/article/details/60956088 MonkeyRunner复杂的功能开始学习 (1)获取APK文件中ID的 ...
- 最全的MonkeyRunner自动化测试从入门到精通(8)
在eclipse中的一些剩余配置操作步骤一:pyhon的在eclipse配置,如图所示: 步骤二:jython的在eclipse中的配置, 在window-preference-PyDev-Jytho ...
- 最全的MonkeyRunner自动化测试从入门到精通(6)
eclipse中进行插入PyDev插件的使用步骤一:monkeyrunner环境变量的配置.在Android Sdk中的tools目录下,拷贝路径,进行配置环境变量.与上面的配置方法一样,在这里不做过 ...
- 最全的MonkeyRunner自动化测试从入门到精通(5)
夜神模拟器的安装与配置步骤一:我们为什么会选择使用夜神模拟器呢? 众所周知,Android studio的模拟器运行速度也很快,可以媲美真机.虽然其运行速度很快,可以满足我们测试的需求.但仍存在以下问 ...
- 史上最全的MonkeyRunner自动化测试从入门到精通(2)
原文地址https://blog.csdn.net/liu_jing_hui/article/details/60955696 最基本脚本功能开始编写 (1)Monkeyrunner和Monkey的区 ...
- 史上最全的MonkeyRunner自动化测试从入门到精通(1)
原文地址https://zhuanlan.zhihu.com/p/26043620 MonkeyRunner使用 #-*- coding:utf-8 –*- from com.android.monk ...
- 最全的MonkeyRunner自动化测试从入门到精通(7)
jython-installer-2.5.3.jar安装步骤步骤一:Jython的安装比较简单,Jython的安装程序本身就是一个Java应用程序,因此,在安装之前,你必须具备Java运行的环境. 步 ...
- 最全的MonkeyRunner自动化测试从入门到精通(4)
Android Sdk环境变量配置步骤一:我们进行再eclipse中下载sdk来进行使用. 在安装ADT插件完成之后,在eclipse的菜单界面会多一个ADT的管理器,如下图,点击进入到安卓API安装 ...
随机推荐
- unbuntu系统( PC机 )中安装360wifi步骤
少说废话,每一步都经过验证: 1. 首先查看一下当前使用的linux版本: gxjun@gxjun:~$ uname -r 4.8.0-59-generic 2. 将360wifi插入PC的USB中 ...
- 使用 GeoIP2 获取 IP 的地理位置
1. 准备工作 数据库 : 解析 IP 地理位置的的数据库来自 GeoLite2 开源数据库:https://dev.maxmind.com/geoip/geoip2/geolite2/ . C 语言 ...
- bzoj1030【JSOI2007】文本生成器
1030: [JSOI2007]文本生成器 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2891 Solved: 1193 [Submit][St ...
- 模拟真实点击click,专门对付clickoutside
var evmousedown = document.createEvent('HTMLEvents'); // evmousedown.clientX = 88 // evmousedown.cli ...
- james2.3 配置收件 之 MariaDB数据库配置
james我们公司一直都是使用的2.3这个稳定版本,现在已经有3.0了,不过无所谓,能用就行 基于2.3,来进行一些配置,主要是接受邮件,之前的博文如何安装的,这里不多做介绍了,链接参考:https: ...
- AWS免费套餐服务器部署NETCORE网站
之前的linode充了5美元,一个月就用完了,还是创建的最便宜的服务器的!!! 以前一直想用用aws的所谓的免费套餐服务器的,现在linode过期了,可以试着用用了 下面是我的操作流程,包含错误及解决 ...
- React Native 从入门到原理一
React Native 从入门到原理一 React Native 是最近非常火的一个话题,介绍如何利用 React Native 进行开发的文章和书籍多如牛毛,但面向入门水平并介绍它工作原理的文章却 ...
- docker save提示no space left on device错误
使用df -h看了看,硬盘的确是够用的,于是排除了是硬盘容量的问题. 再细看错误提示: 目录是/var/lib/docker/tmp/docker-export-xxxx/xxxxx,猜测是docke ...
- IndexedDB 教程
IndexedDB 教程 IndexedDB 是一个基于 JavaScript 的面向对象的事务型数据库.有了 LocalStorage 和 Cookies,为什么还要推出 indexedDB 呢?其 ...
- 面试杂谈之我的实习求职之路(7个offer)
现在是5月11号,刚从北京到家,总算也可以歇歇了,最近一段时间真是忙于奔命的感觉,也确实体会到了找工作的艰辛,总而言之,求职之路,如人饮水,冷暖自知. 我想把这段时间找工作的体验和经历分享出来告诉大家 ...