adb shell monkey
参数
1、-p
指定一个包或多个包:adb shell monkey -p your.package.name 100
2、-v
指定反馈信息级别:adb shell monkey -p your.package.name –v -v –v 100
3、-s
指定伪随机数的seek值,可以重现之前的操作:adb shell monkey -p your.package.name -s 10 100
4、--throttle<毫秒>
操作事件间的延迟:adb shell monkey -p your.package.name --throttle 5000 100
5、--ignore-crashes
忽略事件中的崩溃继续执行脚本:adb shell monkey -p your.package.name --ignore-crashes 1000
6、--ignore-timeouts
忽略事件中的ANR继续执行脚本:adb shell monkey -p your.package.name --ignore-timeouts 1000
7、--ignore-security-exceptions
忽略事件中的许可错误继续执行脚本(网络许可、证书许可):adb shell monkey -p your.package.name --ignore-security-exception 1000
8、--kill-process-after-error
程序发生错误时继续执行脚本:adb shell monkey -p your.package.name --kill-process-after-error 1000
9、--monitor-native-crashes
用于程序是否监视并报告发生崩溃的代码:adb shell monkey -p your.package.name --monitor-native-crashes 1000
10、打印日志:adb shell monkey -p 包名 -v 300 >e:\text.txt
11、终止运行,执行adb shell
再执行ps | grep monkey
,返回的第一个数字是Monkey的进程号,kill pid 进程号
杀掉进程即可
12、--pct-rotation
用于横竖屏切换
13、黑名单白名单
设置txt黑名单,不让其执行Android设置的应用
com.android.setting
......
把黑名单push到手机
adb push d:\blacklist.txt /data/local/tmp/
执行黑名单
adb shell monkey -- pkg-whitelist-file /data/local/tmp/blacklist.txt --throttle 200 300
结果分析
1、 ANR问题:在日志中搜索“ANR”
2、崩溃问题:在日志中搜索“Exception” Force Close
3、查看出问题是在哪个activity,手动去复现
实例
#!/usr/bin/env python
# coding=utf-8
import os
import time
import random
#apks = [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1] == '.apk']
print '执行Monkey脚本'
output = os.popen('adb shell monkey -p your.package.name -v-v-v --throttle 500 500' ).read() # 请手动替换-p参数后面的apk包名
dt = time.strftime('%Y-%m-%d-%H-%M-%S')
logfilename = "log_" + 'anyshare' + "_" + dt
input = open('/Users/yaoyaoli/Documents/monkey_test/bugreport_out/' + logfilename + '.log', 'w')
input.write('执行monkey时发生的日志:')
input.writelines(output)
input.close()
print 'monkey测试日志已打印'
print '测试完成'
#os.popen('adb uninstall xxx.xxxxxx.xxxxxxx') # 请手动替换后面的apk包名
网友评论