【adb】一篇文章入门adb和monkey

这里写目录标题

    • 一、adb基础
    • 二、adb工作原理
    • 三、adb环境搭建
    • 四、adb连接设备及查看设备状态
    • 五、adb命令格式
    • 六、adb启动页面
    • 七、adb shell清理缓存
    • 八、手机与电脑如何传输文件
    • 九、日志
    • 十、adb模拟手机的按键操作
    • 十一、adb获取性能指标
    • 十二、monkey测试
      • 什么是monkey
        • 为什么要对app做压力测试
        • monkey 命令格式
        • 保存日志
        • 日志分析

一、adb基础

打开应用
adb shell am start -n pakeage_name/antivty_name

二、adb工作原理

client端向server端发送请求,server端去操作手机设备,执行结果返回server,再返回client
一个手机和server通信需要两个端口

三、adb环境搭建

jdk
android sdk

四、adb连接设备及查看设备状态

可以去模拟器的官网查看连接命令
点击手机版本号,开启开发者模式
查看状态:adb get-state | adb devices

五、adb命令格式

5.1 adb [-d|-e|-s]
-s 存在多个设备时,指定设备
5.2 普通安装 :adb install
覆盖安装 : adb install -r
debug包安装 adb install -t
5.3 卸载
卸载应用:adb uninstall package_name
卸载应用(不删除配置文件,保存数据缓存):adb uninstall -k package_name

六、adb启动页面

package包:app的唯一标识
activity活动页:android应用页面,一个页面就是一个activity
获取当前app的包名和当前页面的activity名称:adb shell dumsys window|grep mCurrentFocus
获取启动页的名称:adb logcat ActivityManager:I |grep cmp(先执行命令,再打开app)

七、adb shell清理缓存

目录结构:adb shell ls
查看系统当前日期:adb shell date
查看系统cpu使用:adb shell cat /proc/cpuinfo
查看系统内存使用:adb shell cat /proc/meminfo [<包名>]
查看系统安装的app: adb shell pm list package [-3|-s]
-s 系统自带应用
-3 自己安装的第三方应用
删除缓存:
查看app缓存信息:adb shell cd /data/data
模糊查询QQ:ls |grep qq
删除缓存:adb shell pm clear <包名>

八、手机与电脑如何传输文件

电脑传输文件到android:adb push 电脑路径 设备路径
拉取设备文件到电脑:adb pull 设备路径 点按哦路径

九、日志

日志级别
V 明细verbose
D :调试debug
I:信息info
W:警告warn
E:错误error
F:严重错误Fatal
S:无记录silent(最高优先级,绝不会输出任何内容)
时间 进程号 日志级别 tag号:内容
adb logcat -v color 根据日志级别使用不同颜色
adb logcat -v time 打印时间
adb logcat -f <设备filepath> 日志保存到设备的指定路径
adb logcat > filepath 日志保存到电脑
adb logcat -c 清理已缓存的日志
过滤:
adb logcat [tag:level] [tag:level] …
adb logcat “:W”打印W级别及以上的日志
adb logcat “ActivityManager:D” “
:S” 过滤tag为ActivityManager的D级别的日志,“*:S”必填项,使其他tag静默
常见问题:https://developer.android.com/topic/performance/vitals/crash(需梯子)

十、adb模拟手机的按键操作

打开【指针】
adb shell input tap x坐标 y坐标 点击坐标
adb shell input text macbookpro 输入文字
adb shell swipe <起点x> <起点y> <终点x> <终点y> <滑动时长> 滑动时间
adb shell input keyevent 4 返回键
adb shell input keyevent 3 Home建
按键文档:https://developer.android.com/reference/android/view/KeyEvent

十一、adb获取性能指标

查看系统内存使用:adb shell cat /proc/meminfo [<包名>]
查看系统cpu使用:adb shell cat /proc/cpuinfo [<包名>]
top命令:
adb shell top | grep <包名> 隔一段时间打印
adb shell top -d 1 |grep <包名> 间隔1s打印
top和dumpsys cpuinfo区别:
top实时获取
dumpsys cpuinfo:获取均值
电池电量: adb shell dumpsys battery

其他:https://developer.android.com/docs

十二、monkey测试

什么是monkey

Monkey 是 Google 提供的一个用于 稳定性与压力测试 的命令行工具

为什么要对app做压力测试

随机性
完整性
持续性

monkey 命令格式

adb shell --help
adb shell monkey [参数] {随机发送事件数}
monkey 基本用法
在命令提示符中输入adb devices 查看有无连接的设备
确认有设备连接
获取 app 的包名
执行命令:adb shell monkey [参数] {随机发送事件数}
monkey 参数解析
添加时间数:adb shell monkey <事件数>
打印详细日志:
adb shell monkey -v <事件数>
adb shell monkey -vv <事件数>
adb shell monkey -vvv <事件数>
monkey测试停止条件
指令执行完成
遇到崩溃,或者异常
杀掉进程:ps |grep monkey ,kill 进程号
monkey运行某个包
指定一个包 adb shell monkey -p 包名 [事件数]
指定多个包 adb shell monkey -p 包名 -p 包名 [事件数]
指定时间间隔
–throttle :每个事件结束后的间隔时间 :adb shell monkey -p 包名 --throttle 时长(秒)
设置种子数
-s : 用于指定伪随机数生成器的seed值
设置事件比例
–pct-touch:触摸(点击)事件 ( 设定点击事件百分比)
–pct-motion :滑动事件(设定动作事件百分比 )
–pct-trackball :轨迹球事件( 设定轨迹球事件百分比 )
–pct-nav :导航事件( 设定基本导航事件百分比,比如输入设备上、下、左、右键 )
–pct-majornav:主要导航事件( 设定主要导航事件百分比,比如中间键、返回键、菜单键 )
–pct-syskeys:系统按键事件( 设定系统导航事件百分比,比如HOME键、BACK建、拨号键及音量键 )
–pct-appswitch:activity之间的切换( 设定启动Activity事件百分比)
–pct-pinchzoom:缩放事件
–pct-rotation:屏幕旋转事件 -
-pct-flip:键盘事件
–pct-anyevent :任意事件 (设定不常用事件百分比)
忽略异常
–ignore-crashes:忽略崩溃
–ignore-timeouts:忽略超时
–ignore-security-exceptions:忽略安全异常
–kill-process-after-error:发生错误后直接杀掉进程
–dbg-no-events:初始化启动的activity,但是不产生任何事件
–hprof:指定该项后在事件序列发送前后会立即生成分析报告
–monitor-native-crashes:跟踪本地方法的崩溃问题 -
-wait-dbg:直到连接了调试器才执行monkey测试
–bugreport:当ANR,系统无响应,Crash的时候获得bugreport

保存日志

adb shell monkey 1000> 文件路径/文件名
adb logcat -v time ‘*E’ > monkey.log

日志分析

crash 闪退
exception 异常
force closed 强制退出
anr(application no response) 程序无响应
实战
对雪球进行自动遍历测试
确定测试app的包名:com.xueqiu.android
执行8小时:8_60_60*1000/300 = 96000
日志级别:-v -v -v
确定雪球中常用的操作类型和比例 点击
(点击 70% 滑动 10% 系统按键 10% 其它10%)
确定seed值:1234567
确定调试选项:忽略崩溃、忽略超时、忽略安全异常
重定向日志到文件中 > monkey.log
答案:

adb shell monkey -p com.xueqiu.android  --pct-touch 70%  --pct-motion 10% --pct-syskeys 10% -s 1234567890 --ignore-crashes --ignore-timeouts --ignore-security-exceptions —throttle 300 -vvv 96000 > monkey.log

你可能感兴趣的:(ADB,adb)