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

android创建覆盖文件 apk覆盖安装命令_触摸事件

adb shell monkey -p 包名 --throttle 2000 --ignore-crashes --ignore-timeouts -v -v -v>100000>/data/local/tmp/log.txt

  1. -p后面接着的对应的包名,对具体某个app测试

  2. –ignore-crashes --ignore-timeouts 这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设置时,出现carash或者timeout时,Monkey测试会终止。这里是防止Monkey测试终止。
  3. -v 指的是Monkey测试时打印log级别。
  4. 100000 这里是指点击的次数,根据她们测试的经验,对于单个应用程序这个次数设置在100000次就可以了;如果是真机,一般设置在500000次。
  5. –throttle-时间 ,设置事务之间的延迟等待时间,单位是毫秒
  6. 路径,设置日志存储路径

Monkey的异常分析
在我们做随机事件的请求时,不可避免的会出现各类异常、BUG,所以我们会在导出的log文件中进行过滤异常来定向查看bug。

  • 程序崩溃:crash
  • 程序无响应: ApplicationNo Response(log文件中搜索‘ANR ’,加空格是为了屏蔽掉一些无效信息)
  • 其他问题:Exception
    当Monkey执行事件中断时,在log文件中最后也可以看到当前执行的次数。