Monkey测试

4.2. Money 介绍
顾名思义, Monkey 就是猴子, Monkey 测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么
都不懂, 只知道乱敲
通过 Monkey 程序模拟用户触摸屏幕、滑动 Trackball 、 按键等操作来对设备上的程序进行压力测试,检测程
序多久的时间会发生异常         
4.3. Monkey 用来做什么
Monkey 主要用于 Android 的稳定性测试,自动的一个压力测试小工具, 主要目的就是为了测试 app 是否会
Crash (崩溃) .
4.4. Monkey 程序介绍
1 Monkey 程序由 Android 系统自带,使用 Java 语言写成,在 Android 文件系统中的存放路径是:
/system/framework/monkey.jar
2 Monkey.jar 程序是由一个名为 “monkey” Shell 脚本来启动执行, shell 脚本在 Android 文件系统
中 的存放路径是: /system/bin/monkey
3 Monkey 命令启动方式:
a )可以通过 PC CMD 窗口中执行 : adb shell monkey + 命令参数}来进行 Monkey 测试
b )在 PC adb shell 进入 Android 系统,通过执行 monkey {+ 命令参数 } 来进行 Monkey 测试
c ) Android 机或者模拟器上直接执行 monkey 命令,可以在 Android 机上安装 Android 终端模拟器
4.5 Monkey 命令 基本参数介绍
4.5.1 :使用 monkey 测试手机所有程序
adb shell monkey 100 执行 monkey 测试 100 次 针对 rom 测试或者

 4.5.2-p <允许的包名列表>

adb shell monkey -p 包名 100

4.5.3:显示日志详细程度

用亍指定反馈信息级别(信息级别就是日志的详细程度),总共分 3 个级别,分别对应的参数如下 表所示:
Level 0 adb shell monkey -p 包名 -v 30 // 缺省值,仅提供启动提示、测试完成和最终结果等
少量信息

Level 1 adb shell monkey -p 包名 -v -v 30 // 提供较为详细的日志,包括每个发
送到 Activity 的事件信息

Level 2 adb shell monkey -p 包名 -v -v -v 30 // 最详细的日志,包括了测试中选中 /
未选中的 Activity 信息

4.5.4 :将 log 信息写到本地
adb shell monkey 100 > 路径

-s 随机数种子

用亍指定伪随机数生成器的 seed 值,如果 seed 相同,则两次 Monkey 测试所产生的事件序列也相同的。 示
例:
monkey 测试 1 : adb shell monkey –s 10 100
monkey 测试 2 : adb shell monkey –s 10 100

4.5.6 --throttle <毫秒>

4.5.7 --pct-touch 触摸事件
--pct-motion
调整触摸事件的百分比。(触摸事件是指在屏幕中的一个 down-up 事件,即在屏幕某处按下并抬起的操作)
–pct-touch :触摸事件。即在某一位置的 Down-Up (手指的放下和抬起)事件。 Down
ACTION_DOWN )和
Up
ACTION_UP )的坐标临近,但并非相同。
如: adb shell monkey --pct-touch 67 -v 10
表示执行 10 个伪随机用户事件流,并调整其中触摸事件的百分比为 67%
注:此参数设置要适应当前被测应用程序的操作,比如一个应用 80% 的操作都是触摸,那就可以将此参数的百
分比设置成相应较高的百分比。

 --pct-motion

调整手势事件 motion 事件百分比。( motion 事件是由屏幕上某处一个 down 事件、一系列伪随机的移动事件和
一个 up 事件组成)
–pct-motion :动作事件。以 Down
ACTION_DOWN )开始, Up
ACTION_UP )结尾,中间至少有一次 Move
ACTION_MOVE )。
如: adb shell monkey --pct-motion 67 -v 10
表示执行 10 个伪随机用户事件流,并调整其中动作事件的百分比为 67%
注:这里的移动是直线滑动

 

 4.5.8 --ignore-crashes

作用:通常,应用发生崩溃或异常时 Monkey 会停止运行。如果设置此项, Monkey 将继续发送事件给系统,直
到事件计数完成。
正常操作,不忽略异常

4.5.9--ignore-timeoutsANR

作用:通常,应用程序发生任何超时错误(如 “Application Not responding” 对话框) Monkey 将停止运
行,设置此项, Monkey 将继续发送事件给系统,直到事件计数完成。
adb shell monkey --ignore-timeouts –v 10
同上
4.5.6 Monkey 实例
monkey 命令 对登录 apk 进行 性能测试

 补充:--pct-touch 50:指定具体的某个事务的占比

adb shell monkey -p com.example.login --ignore-crashes --ignore-timeouts --
throttle 100 --pct-touch 50 --pct-motion 50 -v -v 1000 >c:\log
4.5.7 Monkey 异常分析
般我们可以一次发送 5 万次随机事件的请求,每个请求之间的间隔为 150 毫秒,测试大约会进行 40min ,完成以
后就可以查看日志。
日志中可能的错误:
1. 程序奔溃, crash ctrl+f 搜索)
2. 程序无响应, ApplicationNo Response ctrl+f 搜索 ‘ANR ’ ,加空格是为了屏蔽掉一些无效信息 )
3. 其他问题 : 在日志中搜索 ”Exception”
Monkey 执行中断, 在 log 最后也能看到当前执行次数
五:手机兼容性测试
Android App 兼容性测试,是一个比较重要的 App 评价内容,
说到测试阶段,兼容性测试主要是对 App 在各类机型上的兼容、适配等情况进行测试。搞清楚这一阶段的测试
重点后,因此, Android App 在进行兼容性测试前,一定要做好其前序测试内容,否则兼容性测试效果将会较
差。
5.1. 机型配置问题
Android 兼容测试一定要做到宽范围覆盖,如果做不到这个,那么就违背了兼容性测试的目标 —— 测试 App 在各
类机型、系统上的运行是否兼容、适配。
因此,兼容性测试必须要在各个机型、系统上对 App 进行运行、测试,查看相关 UI 是否适配、功能是否正常。
所以,必须要为兼容性测试配备尽可能多的机型。这是不是意味着,你的公司要去购置各类机型设备?当然不
是。对于一般的公司或者开发者,这将会是一大笔开销,为了节约资金而造成进行覆盖率较低的话,则失去了
兼容性测试的意义。另外,这也是没必要的,因为往往你就一个或两三个 App ,为了这少量 App 测试,而去购置
如此大量的设备,无疑是一种资源浪费。除此,还有一个原因,将在兼容性测试如何展开里去说。除此,机型
量的多少也是一个权衡的过程,目前,通用的兼容性测试一般覆盖 Top100-300 的机型,对于实在是小量机型
或者老旧机型,用户量非常小,在一定程度上,是否需要覆盖则需要权衡,总的来说, Top 排名的手机基本足
够。
5.2. 兼容性如何展开?
这是一个经验性的过程,可以去借鉴大型互联网公司的成熟 App 的测试方法。目前,无论是国际知名 App ,还是
国内知名 App ,谷歌、 Facebook BAT 等,他们都有大量的 App 对外推出,对于 App 兼容性要求非常高,因
此,他们的做法是非常值得借鉴的。这些公司的兼容性测试,都有一个相同的解决方案,那就是自动化测试框
架与平台的实现。通过浏览上述公司在各种大会公布的内容,或者通过论坛知识分享,都能看到,他们不仅有
自己的测试实验室,拥有大量的手机,除此,还有一整套的自动化测试平台,来完成兼容性测试。
5.3. 有哪些好用的 App 云测试平台?
目前对移动 App 的测试主要指的是下面几部分:
兼容性测试 ——App 对不同手机、操作系统版本的兼容性测试,包括安装、启动、卸载等。
功能测试 —— 遍历应用的每一个角落,查看应用的功能、逻辑是否正常,完整。
性能测试 —— 应用的性能怎样,如启动时间、反应时间、 CPU 占用率,内存占用率等。
稳定性测试 —— 在一定时间内对 App 进行持续地测试,测试 App 运行的稳定性。
网络场景测试 —— 测试不同网络环境中 App 的运行状况,如 2G&3G ,弱网络等
以下是国内几家主要的云测试平台:
Testin Testin 云测 | 全球领先的 App 及手游测试平台
Testin 是国内较早涉足云测试领域的公司之一。 Testin 在云端部署了 300 多款 1000 多部测试终端,终端种类
及数量都比较全面。支持 Android iOS 系统。但目前仅少部分服务为免费,绝大多数服务为收费项目,故而
使用成本较高,具体收费情况请查看官网的介绍。
腾讯优测:优测网 - 让测试更简单
腾讯优测是腾讯旗下的云测试服务平台,拥有超过 1000 款测试终端,机型数量庞大。但仅支持 Android ,暂不
支持 iOS 系统。提供兼容性测试服务,不提供性能测试、功能测试及稳定性测试服务。另外,腾讯优测还提供
云手机 服务,开发者可以远程控制测试终端,实时查看 App 安装、运行效果。优测目前的功能为收费(新注
册的用户可获得官方赠送的礼包),每天限制提交 2 次测试。
移动测试学习端口: https://wetest.qq.com/guide/learn-source
贯众云测试:贯众云测试
贯众云测试是中国移动旗下的云测试服务平台,目前拥有超过 100 款市面主流终端,支持 Android iOS
统。提供兼容性测试、功能测试、性能测试,稳定性测试( 12 小时)及网络场景测试服务( 2G&3G&4G )。支
Appium 脚本。缺点是终端数量较少,优点是功能较为全面,且基本功能都是免费,使用成本还是蛮低的。
百度 MTC :百度移动云测试中心
百度 MTC 是百度开放平台旗下的移动云测试中心。提供超过 500 款热门机型,目前只支持 Android 系统,暂不
支持 iOS 系统。提供的测试服务种类有兼容性测试、性能测试、功能测试。并且提供了脚本录制工具,类似
Testin 。但脚本录制工具更新速度较慢。百度 MTC 的服务目前为收费服务,具体收费情况请查看官网的介绍。
阿里 MQC MQC 阿里移动质量中心
阿里 MQC 是阿里巴巴旗下的移动测试平台。提供上百款测试终端,支持 Android iOS 系统。提供兼容性测
试、功能测试、性能测试以及稳定性测试( 1 小时)。测试脚本需使用 Robotium Appium 测试框架编写,难
度较高。 MQC 也提供了远程的真机调试,功能和腾讯优测类似,看来腾讯和阿里还真是一对儿冤家啊。

 

 

 

 

 

 

 

六:真机测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值