【黑盒测试基础】APP测试方向:adb命令

1、adb基本命令

1.1、基本

  1. 查看adb版本:检查adb配置以及使用版本信息使用
adb version
  1. 查看连接设备:检查设备链接情况使用
adb devices
  1. 远程控制&退出控制设备:查看设备文件使用
adb shell
exit
  1. 链接设备
adb connect [<host>[:<port>]](默认端口号是:5555)
  1. 执行远程shell命令
adb shell <command>
  1. 拷贝文件到设备上:
 adb push <local> <remote>
  1. 从设备中拷贝文件:
 adb pull <remote> [<local>]
  1. 查看设备所有信息:
 adb bugreport #包括 bug 报告
  1. 查看命令帮助:
adb help 

1.2、apk相关

  1. 安装apk文件
adb install <file>
  1. 卸载app
# 参数-k 可选,用作卸载软件但保留配置文件和缓存
adb uninstall -k <package>
  1. 查看app相关所有信息(包括action,codepath,verion,等需要权限的信息)
adb adb shell dumpsys package <package_name>
  1. 查看app路径
adb shell pm path <package_name>
  1. 查看apk 版本信息
adb shell dumpsys package <package_name> |grepversion

2、进阶命令

2.1、adb logcat相关

  1. 查看日志
adb logcat
  1. 保存日志
adb logcat > <file>
  1. 从当前开始显示
#logcat有缓存,先清空之前的再查看log即从当前开始显示
adb logcat -c && adb logcat
  1. grep过滤,使用同linux管道命令
adb logcat |grep MyLog #不忽略大小写
adb logcat |grep -i Mylog #忽略大小写
  1. 过滤tag name
adb logcat -s <TAG_NAME>
adb logcat -s <TAG_NAME_1> <TAG_NAME_2>
  1. 日志优先级
优先级 说明
V 细则(最低优先级)
D 调试
I 信息
W 警告
E 错误
F 致命
S 静默(最高优先级,不会打印任何信息)
  1. 清楚日志快
adb logcat -c

2.2、服务相关

  1. 启动&终止adb服务
adb start-server
adb kill-server
  1. 以root权限重启adb
adb root
  1. 将system分区重新挂为可读写分区(此命令在操作系统目录时很重要)
adb remount
  1. 重启设备(可选参数)
adb reboot [brootloader] # 刷机模式
adb reboot [recovery] # 恢复模式
  1. 查看各进程详细内存占用和系统的内存占用方法
# Total PSS信息是应用真正占内存的大小,通过这个信息可以判断手机中那些程序占内存比较大
adb shell dumpsys meminfo
# 部分设备支持
# VSS -virtual Size虚拟好用内存(包括功效库占用内存)
# RSS -Resident Set Size 实际使用武力内存(包含共享库占用内存)
# PSS -proportianal Set Size 实际使用武力内存(比例分配共享库占用的内存)
# USS -Unique Set Size 进程独自占用的武力内存(不包含共享库占用的内存)
adb shell procrank
# 查看设备上进程的CPU和内存占用情况
adb shell top
  1. 查看系统设置的闹钟
adb shell dumpsys alarm
  1. 查看系统的Wakelock:不合理的使用wakelock会导致系统耗电加剧
adb shell dumpsys power

2.3、apk相关

  1. 启动activity
adb shell dumpsys window | findstr mCurentFocus #查看当前运行的报名和Activity
adb shell am start -n <package_name>/<activity_class_name>
  1. 清除包相关
adb shell pm clear <package> # 清除应用数据、删除与包相关的所有数据:清楚数据缓存
  1. 获得应用启动时间:返回结果以WaitTime为准,返回的是从startActivity到应用第一帧完全显示的时间。
adb sell am start -W <package_name>/<activity_class_name>
  1. 启动server
# 参数-n 表示组件
# 参数-a 表示命令,后面参数为mainfrest中定义的sevice的action
adb shell am startservice -n <package_name>/<service_class_name>
# 举例
adb shell am startservice -a "android.intent.action.CALL"
  1. 发送广播
# 参数-es 为String 参数类型
# 参数-ei 为int 参数类型
# 参数-ez 为boolean参数类型
adb shell am broadcast -a"android.intent.action.AdupsFata.WriteCommandReceiver"
  1. 查看某个app的进程相关信息
# 两种方式分别在部分手机可用
adb shell ps <package_name|PID>
adb shell ps | grep <package_name>
  1. 杀掉某个进程:用语模拟某个bug复现
adb shell kill pid Number
  1. 查看某个app的内存占用
# Heap size包括了Dalvik Heap和Native Heap
adb shell dumpsys meminfo <package_name|PID>
  1. 查看单个应用程序的最大内存限制
# 如果得到结果小于Dalvik Heap size,就很可能发生OOM
adb shell dumpsys memin
  1. 获取单个应用的电量消耗信息
# Android5.0引入,可获得系统耗电信息原始数据
adb shell dumpsys batterystats > <pacage_name> > xx.txt
# 科通过google编写的histian.py,转化为列表数据
python historian.py xx.txt >xx.html

系统相关

  1. 查看设备名称(第三方app就是通过此方法获得设备名)
adb shell cat /system/build.prop/
  1. 查看手机分辨率
# 方法1:使用grep过滤
adb shell dumpsys window | grep surface
# 方法2:直接查询
adb shell wmsize
  1. 查看手机型号信息
adb shell cat /system/build.prop/
  1. 查看手机型号信息
# product,brand,CPU等型号信息
adb shell getprop | grep product
  1. 获取序列号:即为adb devices列出的序列号
adb get-serialno
  1. 连接多个设备,操作其中某个设备
# 参数 -d 真机(多个设备中只有一个真机时使用)
# 参数 -s 序列号
# 参数 -e 模拟器(多个设备中只有一个是虚拟机时使用)
adb [-d|-e|-s <serial Number> ] <command>
  1. 查看wifi密码(需要root权限)
adb shell cat data/misc/wifi/*.conf
  1. 查看wifi的mac地址
adb shell cat /sys/chlass/net/wlan0/address
  1. 查看后台services信息
adb shell service list

10.查看系统内存占用

adb shell cat /proc/meminfo

文件操作相关(基本同linux操作)

  1. 拷贝文件/目录到设备
adb push <local> <remote>
  1. 从设备拷贝文件/目录
# 参数 -a 保留了文件的时间戳和模式
adb pull [-a] <remote> <local>
  1. 查看设备log
# 同Android Studio/Eclipse的logcat
# 参数 -s 过滤置顶参数log
# 参数 -v time 保留日志时间
# >>追加写,>覆盖写
adb logcat
  1. 列出目录下的文件
# 参数 -al 可选,可查看文件和文件夹的详细信息
adb shell ls [-al]
  1. 进入文件夹
adb shell ce <folder>
  1. 查看文件
adb shell cat <filename>
  1. 重命名文件
adb shell rename <file> <file>
  1. 删除文件/文件夹
# 参数 -r 可选,同linux操作含义
adb shell rm path/filename -r 
  1. 移动文件
adb shell mv <源文件> <目标文件>
  1. 拷贝文件
adb shell cp <源文件> <目标文件>
  1. 创建目录
adb shell mkdir <目录>
  1. 设置文件最高读写权限
adb shell chmod 777 <file>
  1. 未root手机查看某些app文件信息
# 没有权限查看/data/data目录下的文件,运行后则可进入你的App下,再通过cp或者mv把需要的文件放在sdcard中进行操作
run -as package_name
  1. 数据库相关操作
# 无需将数据库pull出来再看,可直接查看db中的某个表或者字段
sqlit3 test.db

monkey(详细后续补充)

adb shell monkey -v -p <package_name> 500 
# -p 对象包  -v 反馈信息级别
# :Monkey: seed=1493061025112 count=500 :AllowPackage:com.tencent.mm.app:push :IncludeCategory: android.intent.category.LAUNCHER:IncludeCategory: android.intent.category.MONKEY ** No activities found to run,monkey aborted.

安装adb

mac

brew cask install android-platform-tools

内容应用场景:

  1. 没有代码权限,无开发环境条件的黑盒测试条件下,简易查看log
  2. 自动化测试
  3. jeckens集成测试使用
  4. 远程访问手机使用

参考资料:

adb命令大全

发布了3 篇原创文章 · 获赞 0 · 访问量 37

猜你喜欢

转载自blog.csdn.net/tongqingshuo/article/details/104633894
今日推荐