adb基本命令
'''起始'''
adb kill-server # 关闭服务
adb start-server # 开启服务
adb devices # 查看连接的设备
adb version # 查看adb版本
'''安装apk'''
adb install apk路径 # 覆盖安装软件(本地路径,不是手机路径)
adb install -r (APK路径) # 覆盖安装(-r 代表如果apk已安装,重新安装apk并保留数据和缓存文件。)
adb install -s (APK路径) # -s 安装在SD卡内,而不是设备内部存储
'''系统命令'''
adb shell # 进入手机
exit; # 退出手机
adb shell pm list packages –s # 查看所有系统应用
adb shell pm list packages -3 # 查看所有第三方应用
adb shell pm list packages # 列出手机装的所有app的包名
adb uninstall 软件名 # 卸载软件
adb push 电脑路径 移动端路径 # 将电脑文件传输到移动端
adb pull 移动端路径 电脑路径 # 将移动端文件传输到电脑
adb help # 查看adb命令帮助信息
adb shell screencap -p 截图文件路径 # 截屏
adb shell dumpsys cpuinfo # 查看手机CPU情况
adb shell dumpsys meminfo + 包名 # 查看应用内存使用情况
adb shell dumpsys diskstats # 显示磁盘使用信息
adb shell pm clear [包名] # 清除应用缓存信息
adb shell dumpsys battery # 查看电池状态
adb shell dumpsys batteryproperties # 查看电池信息
'''日志'''
adb logcat >D:\logs\1.txt # 导出log文件到本地
adb logcat -v time >D:\logs\1.txt # 使用adb logcat -v time 命令, 可以啥看日志的输出时间
adb logcat -t 5 输出最近5行的数据
# 过滤指定等级日志:按某级别过滤日志则会将该级别及以上的日志输出。将 Warning、Error、Fatal 和 Silent 日志输出。
# V —— Verbose(最低,输出得最多)
# D —— Debug
# I —— Info
# W —— Warning
# E —— Error
# F —— Fatal
# S —— Silent(最高)
adb logcat *:W # 将Warning日志输出
adb logcat *:E # 将Error日志输出
Monkey测试命令
adb shell monkey 100 # 在app端执行monkey随机测试100次,
adb shell monkey -p 包名 100 # 指定app进行monkey随机测试100次(-p 包名)
'''日志'''
adb shell monkey -p 包名 -v 30 # 显示日志详细程度,总共分3个级别逐个加 -v ,30是事件,做多少次。
adb shell monkey -p 包名 -v -v 30
adb shell monkey -p 包名 -v -v -v 30
adb shell monkey 100 >路径 # 将log信息写到文档中,路径是本地路径,不是手机路径
'''--throttle(延时毫秒)'''
adb shell monkey -p 包名 --throttle 300 100
# 表示执行100个伪随机用户事件流,事件间隔为300毫秒。注:一般设置为300毫秒,原因是实际用户操作的最快300毫秒左右一个动作事件。
'''--ignore-crashes(不忽略异常)'''
# 通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
adb shell monkey --ignore-crashes -v 30
'''--ignore-timeouts(ANR)'''
# 通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
adb shell monkey --ignore-timeouts –v 10
'''-pct-touch 占比率(设置触摸事件占比)'''
# 调整触摸事件的百分比。(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的操作)
adb shell monkey --pct-touch 67 -v 10 # 表示执行10个伪随机用户事件流,并调整其中触摸事件的百分比为67%。
'''--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%。
'''设置其他占比率命令'''
# 二指缩放百分比,即智能机上的放大缩小手势操作
1. --pct-pinchzoom//pinch
# 轨迹球事件百分比(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)
2. --pct-trackball//trackball
# 屏幕旋转百分比,横屏竖屏
3. --pct-rotation//screen
# 基本导航事件。即来自于方向输入设备的上下左右操作。
4. --pct-nav//nav
# ”主要”导航事件百分比(这些导航事件通常会引发UI的事件,例如5-way pad的中间键、回退键、菜单键)
5. --pct-majornav//major
# ”系统”按钮事件百分比(这些按钮一般专供系统使用,如Home, Back, Start Call, End Call,音量控制)
6. --pct-syskeys//system(key)
# 启动activity事件百分比。在随机的间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部
7. --pct-appswitch//app
# 键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回
8. --pct-flip//keyboard
# 其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等。(该事件可能包含其他上述事件。)
9. --pct-anyevent//anyevents
Monkey 实例
一个完整的monkey命令的case
adb shell monkey -p 包名 --throttle 2000 --ignore-crashes --ignore-timeouts -v -v -v>100000>/data/local/tmp/log.txt
- -p后面接着的对应的包名,对具体某个app测试
- –ignore-crashes --ignore-timeouts 这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设置时,出现carash或者timeout时,Monkey测试会终止。这里是防止Monkey测试终止。
- -v 指的是Monkey测试时打印log级别。
- 100000 这里是指点击的次数,根据她们测试的经验,对于单个应用程序这个次数设置在100000次就可以了;如果是真机,一般设置在500000次。
- –throttle-时间 ,设置事务之间的延迟等待时间,单位是毫秒
- 路径,设置日志存储路径
Monkey的异常分析
在我们做随机事件的请求时,不可避免的会出现各类异常、BUG,所以我们会在导出的log文件中进行过滤异常来定向查看bug。
- 程序崩溃:crash
- 程序无响应: ApplicationNo Response(log文件中搜索‘ANR ’,加空格是为了屏蔽掉一些无效信息)
- 其他问题:Exception
当Monkey执行事件中断时,在log文件中最后也可以看到当前执行的次数。