ADB命令(app自动化测试底层技术)

一、adb相关知识体系

1,adb的使用场景
操作手机设备
app自动化测试
2,adb测试体系
app自动化测试-appium
遍历测试-appcrawier
app性能测试
app专项测试
STF设备管理平台
云测平台
兼容性测试

二、adb 基础

 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/目录下了,可以进去查看是否缓存的文件包已被删除

三、adb进阶

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命令(app自动化测试底层技术)_第1张图片

查看日志常用参数
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命令(app自动化测试底层技术)_第2张图片

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
ADB命令(app自动化测试底层技术)_第3张图片

 注: 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命令(app自动化测试底层技术)_第4张图片

保存日志
方式一:adb shell monkey 1000 > 文件路径/文件名
方式二:adb logcat  -v time ‘*E’ > monkey.log
 

monkey测试例子

 ADB命令(app自动化测试底层技术)_第5张图片

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命令(app自动化测试底层技术)_第6张图片

 日志中搜索过滤上面关键词

四、adb 应用
1,云测平台

2、Appium

3、设备管理平台

Add常用命令篇结束,欢迎去我的主页观看更多和技术相关的文章~

你可能感兴趣的:(软件测试,App移动端测试,adb)