1.ADB
即Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。
注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。
2.Monkey
就是SDK中附带的一个工具。Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
adb常用命令:
** 查看设备连接
adb devices
**列出手机已安装的包名
adb shell pm list packages 手机装的app所有包名
adb shell pm list packages -s 系统所有包名
adb shell pm list packages -3 列出除了系统应用的第三方应用包名
** 查询包
adb shell pm list package |findstr baidu
或adb shell下,pm list package |grep baidu
** 清除应用数据
pm clear com.baidu.input
** 安装卸载
adb install d:\com.baidu.input
adb uninstall com.baidu.input
**沉浸状态栏
adb shell settings put global policy_control immersive.status=*
**全屏沉浸
adb shell settings put global policy_control immersive.full=*
**恢复到正常模式
adb shell settings put global policy_control null
** 查看monkey进程
windows: adb shell ps |findstr monkey
linux: $adb shell
$ps | grep monkey
** 杀掉进程
adb shell kill [pid进程号]
**-p 指定包.可指定一个包或几个包
adb shell monkey -p com.baidu.input -p com.sohu.input 1000
** 日志 -v
-v -v -v 增加-v增加日志的详情级别
adb shell monkey -p com.baidu.input -v -v -v 1000
** -s (seed)伪随机数生成器的种子值,相同的种子值运行monkey,事件的序列相同
adb shell monkey -p com.baidu.input -s 1234 重现种子值为1234的事件序列
**-throttle 事件间隔.事件间隔300ms
adb shell monkey -p com.baidu.input --throttle 300 -v -v 1000
**-pct 动作事件Monkey的事件种类一般是11种,不同的Android SDK中的Event percentages种类和顺序也不同哦。
--pct-touch 70 触摸事件百分比70
--pct-motion 5 手势事件百分比70
--pct-trackball 5 轨迹球事件百分比10
--pct-pinchzoom 2 缩放事件百分比2
--pct-rotation 0 屏幕旋转事件百分比0
--pct-nav 0 基本导航事件百分比0
--pct-majornav 5 主要导航事件百分比5
--pct-syskeys 5 系统事件百分比 5
--pct-appswitch 2 Activity启动事件百分比2
--pct-flip 2 键盘翻转事件百分比
--pct-anyevent 2 其他事件百分比
**-ignore 忽略错误事件
--ignore-crashes 忽略crash
--ignore-timeouts 忽略timeouts
--ignore-security-exceptions 忽略权限错误
--ignore-native-crashes 忽略本地应用程序发生崩溃
** -kill-process-after-error 错误后停止应用
** -monitor-native-crashes Android系统原生代码中的监视和报告崩溃
**2>&1 错误重定向 每个进程都和三个系统文件相关联.标准输入stdin,标准输出stdout,标准错误stderr.文件描述符分别为0,1,2
所以这里的2>&1,代表把标准错误也输出到标准输出中.这样标准输出的日志内容就包含了标准错误的日志内容
1 ./test.sh > 111.log 标准错误输出到前台,标准输出输出到111.log.log日志不包含报错内容
2 ./test.sh > 222.log 2>&1 标准错误和标准输出都输出到222.log日志中
3 ./test.sh > info.log 2>err.log 标准输出输出到info.log 标准错误重定向到err.log
** 保存日志
adb shell monkey -p com.baidu.input -v -v -v 1000 >d:\monkey.txt 2>&1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
6 压测命令
****cmd下****
日志保存到pc,跑monkey过程中需一直连接数据线到电脑:
adb shell monkey -p com.baidu.input --ignore-crashes--ignore-timeouts -ignore-security-exceptions --pct-touch 70--pct-motion 25 --pct-majornav 5 -v -v -v --throttle 300 100000 >d:\monkey1.txt
monkey -p 包名 忽略crash,忽略timeout,忽略权限异常,触摸事件70,手势事件25,主要导航事件5,日志三级,间隔300ms,100000次事件,输出到d盘monkey.txt.标准错误也输出到标准输出中.
** 导出手机日志
adb logcat -v threadtime >d:/loacat1.txt
** cpu 内存监控命令
adb shell top -d 1 |findstr com.baidu.input > d:/cpu1.txt
** 停止进程命令
adb shell am force-stop com.baidu.xxx
****adb shell下
日志保存到手机,断开数据线也可正常进行,最后把日志从手机导出到pc进行查看.
abd shell
$cd /sdcard
$mkdir monkeytest
$cd monkeytest
monkey命令:
monkey -p com.baidu.input --ignore-crashes--ignore-timeouts -ignore-security-exceptions --pct-touch 70--pct-motion 25 --pct-majornav 5 -v -v -v --throttle 300 100000 >monkey1.txt
导出日志
adb pull /sdcard/monkeytest/monkey1.txt d:/
**日志处理:
参考:https://blog.csdn.net/teamlet/article/details/38046409