使用monkey测试工具前,需先安装adb命令
MAC下ADB安装下载:https://www.androiddevtools.cn/index.html#sdk-tools
1、下载SDK Tools:
24.4.1版本,Mac OS X,android-sdk_r24.4.macosx.zip,解压
2、下载SDK Platform-Tools:
这是 adb, fastboot 等工具包。把解压出来的 platform-tools 文件夹放在 上一步解压出的根目录下
3、设置环境变量
并把 adb所在的目录添加到系统 PATH 路径里,即可在命令行里直接访问了 adb, fastboot 等工具。
vim ~/.bash_profile,在文件内容的末尾加入以下内容:
export PATH=PATH:/Users/xxx/Library/Android/sdk/platform−toolsexportPATH={PATH}:/Users/xxx/Library/Android/sdk/platform-tools
export PATH=PATH:/Users/xxx/Library/Android/sdk/platform−toolsexportPATH={PATH}:/Users/xxx/Library/Android/sdk/tools
这里面的xxx根据自己实际的用户名称进行修改
然后点击 esc ,输入 :wq 回车(保存并退出文本)。
添加完成后输入: source ~/.bash_profile 应用该变更。
4、测试
输入: adb version
输入:adb devices
到这里说明android adb命令已经可以正常使用了。
1、android手机与电脑进行USB连接,并打开手机,设置-开发者选项-选中USB调试
![]
2、在cmd命令行输入adb devices查看已连接的设备
3、查看设备日志:adb logcat
4、查看当前手机上安装的APP,明确需要测试的APP包名
输入:adb logcat | grep START
启动APP,查看日志:
在打印出的信息可以看到包名为 com.mcsoft.zmjx
5、对APP进行monkey测试
输入: adb shell monkey -p com.mcsoft.zmjx 500
表示对该APP执行500次随机事件
输入: adb shell monkey -p com.mcsoft.zmjx --throttle 300 -v -v -v 1000 1>/Users/macbook/Documents/apptest/log.txt
含义为:adb shell monkey -p +包名 --throttle 300 -v -v -v 1000(点击1000次) 1>log日志的输出路径
输入:adb shell monkey -p com.mcsoft.zmjx --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes -v -v -v 10000 1>/Users/macbook/Documents/apptest/log.txt
其中–ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes 就是为了防止crash 和ANR出现终止暴力测试的
可以看到Android手机上进行monkey随机测试,日志写入log.txt
6、打开log日志,在结尾会发现finished为正常monkey测试完成
在日志文件中可以搜索ANR Exception和Crash关键字来查找bug
-p
指定一个包或者多个包
指定一个包:adb shell monkey –p PackageName 100
指定多个包:adb shell monkey –p PackageName1 –p PackageName2 100
不指定包:adb shell monkey 100
-v
反馈日志信息级别详细程序
-v
日志级别 Level0
adb shell monkey -p PackageName –v 100
说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息
-v -v
日志级别 Level 1
adb shell monkey -p PackageName –v -v 100
说明 提供较为详细的日志,包括每个发送到Activity的事件信息
–v -v –v
日志级别 Level 2
adb shell monkey -p PackageName –v -v –v 100
说明 最详细的日志,包括了测试中选中/未选中的Activity信息
-s
相同的seed值再次运行monkey,生成相同的时间
adb shell monkey -p PackageName –s 10 100
–throttle
在事件之间插入固定的时间(毫秒)延迟,一般为300毫秒
adb shell monkey -p PackageName –-throttle 5000 100
–ignore-crashes
应用发生crash或者异常的时候不会停止运行,直到事件计数完成为止
adb shell monkey -p PackageName --ignore-crashes 1000
–ignore-timeouts
应用发生了ANR(application no responding)错误时,monkey不会停止运行
adb shell monkey –p PackageName --ignore-timeouts 1000
–ignore-security-exceptions
应用发生许可错误(如证书许可、网络许可)时,monkey不会停止运行
adb shell monkey -p PackageName --ignore-security-exception 1000
–kill-process-after-error
应用发生错误时,monkey不会停止运行
adb shell monkey -p PackageName --kill-process-after-error 1000
–monitor-native-crashes
监视并报告应用发生崩溃的本地代码
adb shell monkey -p PackageName --monitor-native-crashes 1000
1、在log.txt中查找异常日志:
程序无响应的问题: 在日志中搜索 “ANR”
崩溃问题:在日志中搜索 “Exception” (如果出现空指针, NullPointerException) 肯定是有bug
monkey日志分析解读参考:https://blog.csdn.net/qq_32639315/article/details/80876587
2、如果集成bugly等质量跟踪平台,在后台看Monkey测出来的崩溃,及时更正
作者:super敏