一身转战三千里,一剑曾当百万师。这篇文章主要讲述Android monkey相关的知识,希望能为你提供帮助。
Monkey 是android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。
Monkey会发送伪随机的用户事件流,适合对app做稳定性的测试
【Android monkey】查看手机安装的应用程序:adb shell pm list packages
1.安装Android SDK
并配置环境变量
2.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终端模拟器
3.monkey指令参数介绍:
-p <
允许的包名列表>
用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果丌指定包, monkey将允许系统启动设备中的所有app。
指定一个包:adb shell monkey -p
com.shjt.map 100
指定多个包:adb shell monkey -p fishjoy.control.menu
–p
com.shjt.map
100
-v
用亍指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下 表所示:
Level 0
:
adb shell monkey -p com.shjt.map -v 100
// 缺省值,仅提供启动提示、测试完成和最终结果等少量信息
Level 1
:
adb shell monkey -p
com.shjt.map -v
-v 100
// 提供较为详细的日志,包括每个发送到Activity的事件信息
Level 2
:
adb shell monkey -p
com.shjt.map -v
-v
-v 100
// 最详细的日志,包括了测试中选中/未选中的Activity信息
-s(随机数种子)
用亍指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
示例:
monkey测试1:adb shell monkey -p
com.shjt.map –s 10 100
monkey测试2:adb shell monkey -p
com.shjt.map –s 10 100
--throttle <
毫秒>
用亍指定用户操作(即事件)间的时延,单位是毫秒;如果丌指定这个参数,monkey会尽可能快的 生成和发送消息。 示
例:adb shell monkey -p
com.shjt.map --throttle 3000 100
4.monkey日志分析:
正常情况,
如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成\
异常情况
Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)
1. 程序无响应的问题: 在日志中搜索 “ANR”
2. 崩溃问题:在日志中搜索 “Exception”
(如果出现空指针, NullPointerException)
肯定是有bug
Monkey 执行中断, 在log最后也能看到当前执行次数
5.举个例子(用monkey 命令 对走秀网 app进行测试):
adb shell monkey -p com.xiu.app --throttle 100 --pct-touch 50 --pct-motion 50 -v -v 1000 >
D:\monkeylog.txt
推荐阅读
- android7.0关于TelephonyManager.getDeviceId()返回null的问题
- 申请 Apple ID 的操作方法
- Skype for Business 2015全新部署_09.Office Web App服务器安装
- 02 Django框架基础(APP的创建访问)
- Android源码学习 Handler
- Android快速开发常用知识点系列目录
- 手机APP ~ MUI——创建页面方法
- appium-andriod自动化实现注意项
- jpush-react-native 推送功能(Android 篇)