常用的ADB指令

查询连接的设备:adb devices
开启adb服务:adb start-server
关闭adb服务:adb kill-server
卸载app:adb uninstall [packagename]
安装app:adb install apk的路径
查询包名:
	系统应用:adb shell pm list packages -s
	第三方应用:adb shell pm packages -3
查询当前应用程序的包名和启动项:
	adb shell dumpsys window w | findstr \/ | findstr name=
将移动端文件传输到pc端:adb pull 移动端路径 pc端路径
将pc端文件传输到移动端:adb push pc端路径 移动端路径
查看adb命令帮助信息:adb help
截屏:adb shell screencap -p 路径
获取系统版本:adb shell getprop ro.build.version.release
进入shell命令行:adb shell
app启动时间:adb shell am start -W 包名/启动名
pwd: 查看当前路径
退出:exit
性能测试:
	查看cpu信息:adb shell dumpsys cpuinfo
	查看内存信息:adb shell dumpsys meminfo
打印log日志:adb logcat *:E
打印log日志到PC上:adb logcat *:E >"PC路径"
日志级别:
	V —— Verbose(最低,输出得最多)
	D —— Debug
	I —— Info
	W —— Warning
	E —— Error
	F —— Fatal
	S —— Silent(最高,啥也不输出)
比如,命令:adb logcat *:W	将 Warning、Error、Fatal 和 Silent 日志输出,他只
会输出级别比自己设置打印级别高的。

monkey测试

对于手机测试,除了我们一些常规的功能测试,我们还会做压力测试,比如对于Android手机,我会使用adb指令进行一些相应的操作,比如通过adb查看设置,进入设备,抓取log,我们测试的时候,会使用adb logcat所抓出来的log日志存到电脑,发给开发,方便他们快速解决bug。
另外,我还会使用monkey对app进行测试,可以使用monkey对app做压力测试,主要就是测试操作app的时候,程序是否会崩溃。
我们使用adb  shell monkey 指定对应的app,执行要测试的次数,指定要触摸的比率,超时时间和忽略崩溃信息,就可以执行测试,将测试log存到某个位置,然后把测试出的bug 日志发送给开发。
因篇幅有限这里就简单说明一下测试的指令吧,比如我上边所说的逻辑,我们用 adb shell mokey -p 指定要测试的包名 --ignore-crashs 忽略崩溃 --ignore-timeout 忽略超时 --throttle 38指定延迟时间毫秒 -s 指定测试种子 指定测试次数,然后将文件 >输出到磁盘中。

Monkey测试的优点和缺点

优点:
	1:使用简单
	2:节省了重复操作的时间
	3:随机输入可能会发现一些平常意想不到的缺陷。
缺点
	4:可以对Monkey Test的对象,时间数量,类型,频率等进行设置缺点:
	1:测试的对象仅为应用程序包,有一定的局限性
	2:Monkey测试使用的时间流数据流是随机的,不能进行自定义

Monkey虽然可以根据一个指定的命令脚本发送按键消息,但其不支持条件判断,也不支持读取待测界面的信息来执行验证操作。

Monkey实战命令

使用moneky命令进行自动化压力测试:
	#monkey -p com.gewara -v 1000(参数说明:-p后跟着软件所在包名,-v后跟测试的次数)。这里对该软件进行1000次的自动化测试,几分钟内即可以完成测试。
	adb shell monkey -p com.kugou.android -s123456 --throttle 500 --ignore-crashes --ignore-timeouts  --pct-touch30  --pct-motion40  --pct-trackball 30  -v -v -v 80000 >>d:\monkey.log 
	-s :即seed,种子值,如果seed相同,则两次测试产生的伪随机事件序列也相同。>表示文件覆盖打印;>>表示文件尾部打印

Monkey所执行的随机事件流中包含11大事件

(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