android 获取monkey日志_monkey操作,获取包名,参数,日志,百分比
monkey的基本语法都是:adb shell monkey -p 包名 执行的数字monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中,他向系统发送伪随机的用户时间流(如:按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性、健壮性的快速有效方法。首先要测试一款APP,需要先知道APP对应的包名是...
monkey的基本语法都是:
adb shell monkey -p 包名 执行的数字
monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中,他向系统发送伪随机的用户时间流(如:按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
monkey测试是一种为了测试软件的稳定性、健壮性的快速有效方法。
首先要测试一款APP,需要先知道APP对应的包名是什么,除了可以向开发人家直接获取,还可以自己获取。
在安装SDK的目录下面找到build-tools,具体路径E:\android-sdk-windows\build-tools\28.0.3,在输入框中输入cmd进入DOS命令
夜神模拟器:
第一种,获取自己已经有apk的包名:
aapt dump badging +apk存放路径
aapt dump badging E:\soft\longteng\appium\apk\touchaction.apk
第二种:查看手机上所有APP的包名
输入adb shell,进入命令后进入目录data/data
1)adb shell
2)进入手机的 cd data/data
3) ls (需要root)
查看手机或者第三方应用的包名:
adb shell pm list packages -3
真机:
打开开发者选项(小米手机在MUIU中连续点击)-之后在手机“设置”-“更多设置”中有一个“开发者选项”打开调试的功能
然后win+r,输入adb devices
如下情况表示连接成功
获得包名以后就可以操作了:
查看所有参数:
adb shell monkey
1. -p : 指定包名
1) 指定包名对应进行的点击数操作
adb shell monkey -p 包名 次数
2)指定多个包
adb shell monkey -p 包名1 -p 包名2 次数
2. -v:打印日志
用于指定反馈信息级别(信息级别就是日志的详细程度),总共有三个:
1)level0:缺省值,仅提供启动提示、测试完成和最终结果等少量信息
adb shell monkey -p 包名 -v 500
2) level1:提供较为详细的日志,包括每个发送到activity的信息
adb shell monkey -p 包名 -v -v 500
3) level2:最详细的日志,包括测试中选中/未选中的activity信息
adb shell monkey -p 包名 -v -v -v 500
3. -s 随机数
打印日志的时候包含了seed参数:
这个参数是发送请求的时候自动生成的伪随机数,用于产生相同序列的执行流,比如有bug了,开发可以去模拟当时一模一样的场景:v
我们可以自己指定相应的随机数seed:
adb shell monkey -s 12345 -p com.taobao.taobao -v 500
4. throttle : 毫秒
用于指定用户操作即事件间的时延,单位是毫秒;如果不指定这个参数,monkey会尽可能快的生成和发送消息300毫秒
指定500次的点击事件,每次之间间隔300毫秒:
adb shell monkey -p com.taobao.taobao --throttle 300 500
5.点击次数的设置
500 这里指点击的次数,根据经验,单个应用程序设置在100000次就ok;如果是整机,设置在500000次
6、--ignore-crashes
应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成
adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-crashes 500
7、--ignore-timeouts
应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-timeouts 500
8. --ignore-security-exception
当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-timeouts --ignore-security-exception 500
9.--kill-process-after-error
当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。设置此项,将会通知系统停止发生错误的进程。注意,正常(成功)的结束,并没有停止启动的进程,设备只是在结束事件之后简单的保持在最后的状态
10、--monitor-native-crashes
监视并报告Andorid系统中本地代码的崩溃事件。如果设置--kill-process-after-error,系统将停止运行。
11. --wait-dbg
停止执行中的Monkey,直到有调试器和它相连接。
12. -c
如果你指定一个或多个类别,Monkey将只允许系统启动这些指定类别中列出的Activity。如果你不指定任何类别,Monkey将选择谢列类 别中列出的Activity,Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY。指定多个类别使用多个-c,每个-c指定一个类别。
13. --dbg-no-events
设置此选项,Monkey将执行初始启动,进入一个测试Activity,并不会在进一步生成事件。为了得到最佳结果,结合参数-v,一个或多个包的约束,以及一个保持Monkey运行30秒或更长时间的非零值,从而提供了一个可以监视应用程序所调用的包之间转换的环境。
14. --hprof
设置此选项,将在Monkey生成事件序列前后生成profilling报告。在data/misc路径下生成大文件(~5Mb),所以要小心使用。
monkey事件百分比:event percentages
由上图可以看出
0:触摸事件百分比,即参数--pct-touch
1:滑动事件百分比,即参数--pct-motion
2:缩放事件百分比,即参数--pct-pinchzoom
3:轨迹球事件百分比,即参数--pct-trackball
4:屏幕旋转事件百分比,即参数 --pct-rotation
5:基本导航事件百分比,即参数--pct-nav
6:主要导航事件百分比,即参数--pct-majornav
7:系统事件百分比,即参数--pct-syskeys
8:Activity启动事件百分比,即参数--pct-appswitch
9:键盘翻转事件百分比,即参数--pct-flip
10:其他事件百分比,即参数--pct-anyevent
例如: 设置触摸事件需要占百分之60,(例如游戏的APP,触摸就会显得比较重要)
0--10这11中事件的总共百分比=100%,不能超过100%.
设置序列号为12345,包名是com.taobao.taobao,打印简单日志,点击事件500次,触摸事件百分比占60%:
adb shell monkey -s 12345 -p com.taobao.taobao -v --pct-touch 60 500
monkey日志的导出:
指定电脑某个位置:
adb shell monkey -p com.taobao.taobao -v 500 > e:\test.txt
log分析:
日志最开始都会显示Monkey执行的seed值、执行次数、测试的包名
查看日志里是否出现了ANR或者异常
ANR:日志里搜索“ANR ”(此处有空格)
崩溃问题:日志里搜索“Exception”,快速定位到关键事件信息,然后查看Monkey里面出错前的一些时间动作,手动执行该动作,找到重现步骤,给你开发
成功日志和报错日志:
成功日志会显示monkey finish ,events injected :100 # 执行完成,点击事件100次
错误的话会有闪退或者卡死,明显的error字眼:
会有CRASH字眼,后面跟上包名,闪退
ANR异常,无响应的:原因比如代码设计不合理,网络搜索事件太长
需要提供给开发的内容:
1) 被测试手机的详细信息;
2)monkey测试日志: 在cmd中输入命令后的内容
3)手机运行截图;
4)monkey运行时手机日志:可以定位到某一位置 adb logcat >d:\test
更多推荐
所有评论(0)