1,adb的使用场景
操作手机设备
app自动化测试
2,adb测试体系
app自动化测试-appium
遍历测试-appcrawier
app性能测试
app专项测试
STF设备管理平台
云测平台
兼容性测试
1,什么是adb
Adb是用来操作Android手机设备的,Android Debug Bridge
2、adb环境搭建
安装jdk 和 adb工具包
3、如何连接手机设备及查看设备状态
adb devices查看是否连接,如果没有连接则进行连接
adb get-state 查看是否连接,如果连接了则返回device,如果连接异常则返回offiine,如果未授权则返回unauthorized
常见的模拟器有mumu、雷电、夜神、genymotion
4,adb命令格式/启动关闭adb服务
格式:
adb [-d|-e|-s
-d指定当前唯一通过Usb连接的Android设备为命令目标
-e 指定当前唯一运行的模拟器为命令目标
-s 指定相应的设备为命令目标(重点)
5,安装/卸载
安装:
普通安装 adb install
覆盖安装/替代安装 adb install -r
允许降级覆盖安装 adb intall -d -r
卸载:
adb uninstall 包名 卸载应用(删除配置文件,不保留数据缓存信息)
adb unintall -k 报名 卸载应用(不删除配置文件,保留数据缓存信息)
6,如何启动页面
包和Activity(活动页)的概念
package包:Android应用的唯一标志
Activity活动页:Android应用页面,一个页面就是一个Activity
获取当前包名和活动页名
adb shell “dumpsys window | grep mCurrentFocus”
响应的前半段是包名,后半段是活动页名
启动指定页面名
adb shell am start -n 包名/活动页[或启动页]的类名
获取启动页面的activity
Mac:adb logcat ActivityManager:I | grep “cmp” 日志信息的第一个cmp后面的内容
Win:adb logcat ActivityManager:I | findstr “cmp” 日志信息的第一个cmp后面的内容
7,如何清理应用缓存
查看目录结构:adb shell ls
查看系统当前日期:adb shell date
查看系统CPU使用情况:adb shell cat /proc/cpuinfo
查看系统内存使用情况:adb shell cat /proc/meminfo
显示所有应用:adb shell pm list packages
显示系统自带应用:adb shell pm list packages -s
显示第3方应用:adb shell pm list packages -3
清除缓存信息:adb shell pm clear <包名>
注:所有的包信息都保存在了/data/data/目录下了,可以进去查看是否缓存的文件包已被删除
1,设备与电脑传输文件
往移动端输入内容:adb shell input text 要输入的内容
adb push 电脑路径 设备路径
adb pull 设备路径 电脑路径
2,如何查看系统日志
日志级别
V-明细verbose(最低优先级)
D -调试debug
I-信息info
W-警告warn
E-错误error
F-严重错误 fatal
S-无记录silent(最高优先级,绝不会输出任何内容)
Adb logcat
查看日志常用参数
adb logcat 打印默认日志信息
adb logcat -V time 打印时间
adb logcat -V color 使用不同颜色来显示每个优先级
adb logcat -f
adb logcat > log.log保存日志到PC上
adb logcat -C 清理已存在的日志
adb logcat -v time “*:W” 打印Warning及以上级别日志
adb logcat ActivityManager:D “*:S” 过滤tag为ActivityManager,level为Debug及以上级别的日志,”*:S”是把其它日志设置为了静默模式,不进行展示
注:常见崩溃类型地址如下: https://developer.android.google.cn/topic/performance/vitals/crash?hl=zh-cn
3、adb模拟按键行为
打开【指针位置】设置
执行adb shell input命令
①模拟点击事件
adb shell input tap x坐标 y坐标 点击后抬起来
②模拟输入事件
adb shell input text 输入文本(暂不支持中文)
③模拟滑动事件(建议先打开手机开发者模式的输入的显示点按操作反馈和指针位置)
adb shell input swipe x1 y1 x2 y2
adb shell input swipe x1 y1 x2 y2 time(ms)
④模拟手机按键
返回键:adb shell input keyevent 4
Home键:adb shell input keyevent 3 (置应用于后台运行)
音量放大:adb shell input keyevent 24
音量缩小:adb shell input keyevent 25
注:手机按键对于序号,地址如下 https://developer.android.google.cn/reference/android/view/KeyEvent
4,查看应用的性能指标
查看当前系统CPU使用情况:
adb shell dumpsys cpuinfo 一段时间内CPU的平均值
adb shell dumpsys meminfo
adb shell dumpsys meminfo <应用包名>
top命令
adb shell top
adb shell top | grep/findstr “包名” 实时查看某个包的一些性能指标
adb shell top -d 1 | grep/findstr “包名” 每隔一秒刷新一次性能指标
手机电量
adb shell dumpsys battery
注: https://developer.android.google.cn/docs 更多的adb shell dumpsys命令
5,adb实现monkey压力测试
什么是Monkey?
Monkey是Google提供的一个用于稳定性和压力测试的命令行工具
Monkey的命令格式?
adb shell -help
adb shell monkey [参数] {随机发送事件数}
基本用法?
①再命令提示符中输入adb devices查看有无连接的设备
②确认有设备连接
③获取app包名
④执行命令adb shell monkey [参数] {随机发送事件数}
例如: adb shell monkey [-v/-vv/-vvv] 1000 随机吊起应用执行1000个事件,打印[详细/非常详细/超级详细日志]
monkey测试停止条件
①指令执行完成
②遇到崩溃,或者异常
③杀掉进程
adb shell
ps | grep monkey
kill -9 1996
monkey运行某个包
指定一个包 adb shell monkey -p 包名 [数件数]
指定多个包adb shell monkey -p 包名 -p 包名 [事件数]
指定多个包并且设置间隔时间adb shell monkey -p 包名 -p 包名 --throttle 300 [事件数]
设置种子数
生成指定伪随机数生成器的seed(种子)值:adb shell monkey -p包名 -s
设置了相同的种子数,就可以生成相同的事件序列,用于复现一些问题
设置事件比例
设置事件比例:adb shell monkey -p 包名 --pct-touch 80 -s seendnumber [事件数]
保存日志
方式一:adb shell monkey 1000 > 文件路径/文件名
方式二:adb logcat -v time ‘*E’ > monkey.log
monkey测试例子
adb shell monkey -p com.xxx.xxx -vvv --pct-touch 70 --pct-motion 10 --pct-syskeys 10 -s 1234567 --ignore-creashes --ignore-timeouts --ignore-security-exceptions --throttle 300 96000 > monkey.log
日志分析
日志中搜索过滤上面关键词
四、adb 应用
1,云测平台
2、Appium
3、设备管理平台
Add常用命令篇结束,欢迎去我的主页观看更多和技术相关的文章~