网络知识 娱乐 一篇文章学懂ADB命令和Monkey命令

一篇文章学懂ADB命令和Monkey命令

一篇文章学懂ADB命令和Monkey命令

  • 1.adb命令
    • 1.1 查看连接设备
    • 1.2 查看adb版本
    • 1.3 查看手机当前启动App的应用名和包名
    • 1.4 使用aapt使用aapt 查看app的包名和启动名 查看app的包名和启动名
    • 1.5 查看所有系统应用
    • 1.6 查看所有第三方应用
    • 1.7 列出手机装的所有app的包名
    • 1.8 安装软件
    • 1.9 卸载软件
    • 1.10 将电脑文件传输到移动端,将移动端文件传输到电脑
    • 1.11 截取当前屏幕信息
    • 1.12 查看手机CPU情况
    • 1.13 查看应用内存使用情况
    • 1.14 显示磁盘使用信息
    • 1.15 清除应用缓存信息
    • 1.16 查看电池状态和查看电池信息
    • 1.17 导出log文件到本地
  • 2. monkey命令
    • 2.1 随机对手机进行操作,包括点击,拖动,滑动,输入等操作,并打印日志
    • 2.2 随机种子数
    • 2.3 解析日志
    • 2.4 事件调整
    • 2.5 等待时间的参数 --throttle毫秒
    • 2.6 日志查看

1.adb命令

1.1 查看连接设备

adb devices

在这里插入图片描述

1.2 查看adb版本

adb version

1.3 查看手机当前启动App的应用名和包名

adb shell dumpsys window w |findstr / |findstr name=

在这里插入图片描述

1.4 使用aapt使用aapt 查看app的包名和启动名 查看app的包名和启动名

aapt即Android Asset Packing Tool ,在android SDK 的build-tools 目录下。这个工具可以查看apk的包名启动名
我的appt在 D:AndroidSDKandroid-sdk-windowsbuild-tools25.0.3这个路径下面
把这个路径添加到path环境变量,这样就可以直接在cmd中使用appt了

aapt dump badging D:testxxx.apk(APK的全名)

在这里插入图片描述

1.5 查看所有系统应用

adb shell pm list packages –s #

在这里插入图片描述

1.6 查看所有第三方应用

adb shell pm list packages -3

在这里插入图片描述

1.7 列出手机装的所有app的包名

adb shell pm list packages

在这里插入图片描述

1.8 安装软件

adb install 软件名

在这里插入图片描述

1.9 卸载软件

adb uninstall 软件包名

在这里插入图片描述

1.10 将电脑文件传输到移动端,将移动端文件传输到电脑

adb push 电脑路径 移动端路径
adb pull 移动端路径 电脑路径
在这里插入图片描述
在这里插入图片描述

1.11 截取当前屏幕信息

adb shell screencap -p 截图文件路径

在这里插入图片描述

1.12 查看手机CPU情况

adb shell dumpsys cpuinfo

在这里插入图片描述

1.13 查看应用内存使用情况

adb shell dumpsys meminfo + 包名

在这里插入图片描述

1.14 显示磁盘使用信息

adb shell dumpsys diskstats

在这里插入图片描述

1.15 清除应用缓存信息

adb shell pm clear [包名]

在这里插入图片描述

1.16 查看电池状态和查看电池信息

adb shell dumpsys battery

adb shell dumpsys batteryproperties
在这里插入图片描述

1.17 导出log文件到本地

adb logcat >D:logs1.txt
在这里插入图片描述
adb logcat -v time >D:logs1.txt

使用adb logcat -v time 命令, 可以啥看日志的输出时间

adb logcat *:W # 将Warning日志输出

adb logcat *:E # 将Error日志输出

2. monkey命令

2.1 随机对手机进行操作,包括点击,拖动,滑动,输入等操作,并打印日志

adb shell monkey -p 要测试的包 -v -v -v 要操作的次数

在这里插入图片描述

  • 日志解读

在这里插入图片描述
在这里插入图片描述

2.2 随机种子数

adb shell monkey -p 要测试的包 -v -v -v -s 种子数 要操作的次数

随机种子数:其中-s表示随机种子数,用于控制我们操作的顺序,种子数一样,表示所有的操作顺序一样

  • 没有-s参数时,系统随机生成的种子数,每次的操作顺序不一样

    • 第一次运行在这里插入图片描述在这里插入图片描述
    • 第二次运行
      在这里插入图片描述
      在这里插入图片描述
  • 添加种子数后运行

    • 第一次运行
      在这里插入图片描述
      在这里插入图片描述
  • 第二次运行
    在这里插入图片描述
    在这里插入图片描述

2.3 解析日志

第一部分:基本信息,要操作的次数和哪个app
在这里插入图片描述
第二部分:操作事件的比率
在这里插入图片描述
第三部分:详细的操作日志
在这里插入图片描述

第四部分:总共运行了多久
在这里插入图片描述

2.4 事件调整

  • 常用随机事件

请添加图片描述

请添加图片描述
在这里插入图片描述
app做健壮性测试,200次,然后要求点击事件必须要达到80%
在这里插入图片描述
在这里插入图片描述
对app,要求点击事件50%,滑动事件50%,操作20次。

在这里插入图片描述
在这里插入图片描述

2.5 等待时间的参数 --throttle毫秒

adb shell monkey –p 包 –v –v –v –throttle 1000 次数

解释:这个每个随机事件之间的间隔(排除无效的间隔时间)

设置每个事件的间隔为1s那么,里面要运行60次,我们可以运行240次(排除一些无效的时间)*4倍

在这里插入图片描述
在这里插入图片描述

2.6 日志查看

运行app500次,然后把日志保存在d:123mlog.txt文件下,并分析有没有问题

在这里插入图片描述
常见的日志错误
在这里插入图片描述

adb基本命令总结

'''起始'''
adb kill-server			# 关闭服务	
adb start-server		# 开启服务
adb devices				# 查看连接的设备
adb version				# 查看adb版本
adb get-state			# 设备状态	
#device:设备连接正常;offline:连接设备出现异常,设备无响应;unknown:没有连接设备

'''安装apk'''
adb install apk路径	   # 覆盖安装软件(本地路径,不是手机路径)
adb install -r (APK路径)		 # 覆盖安装(-r 代表如果apk已安装,重新安装apk并保留数据和缓存文件。)
adb install -s (APK路径)		 # -s 安装在SD卡内,而不是设备内部存储
adb uninstall 包名		#卸载apk

'''启动apk'''
adb shell am start –n 启动应用程序的界面activity的名称	#启动应用程序
adb shell am force-stop 包名		#关闭应用程序

'''系统命令'''
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:logs1.txt			# 导出log文件到本地
adb logcat -v time >D:logs1.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