软件测试学习笔记丨adb常用命令

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/31924

一,adb介绍

1.1,简介

  • Android Debug Bridge(Android 调试桥)简称 adb
  • Android sdk 中提供的用于管理模拟器或真机状态的工具
  • 命令行工具

1.2,adb 操作手机设备

  • 打开应用adb shell am start -n com.tencent.wework/.launch.LaunchSplashActivity
  • 传输文件
  • 点击,输入,滑动等
  • 硬件操作 返回,回到首页
  • 性能指标

1.3,adb 工作原理

  • 采用了客户端-服务器(C/S)模型,包括三个部分:
  1. 客户端 client
  2. 服务端 server
  3. 守护进程 daemon

1.4,adb 环境搭建与配置

(1) Java 环境安装与配置

  • /javase/javase-jdk8-downloads.html
  • 注意:windows 下载 exe 安装包即可
  • j配置Java环境变量:

(2)Android SDK 环境安装

  • SDK 下载
  • SDK 环境配置
ANDROID_HOME   D:\adt-bundle-mac-x86_64-20140702\sdk   
PATH   %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

(3)检查是否安装成功

  • adb 回车(或者 adb shell )

二,adb常用命令

2.1 adb 与设备交互

(1)连接模拟器 (mumu 为例)

  • windows:
    • adb connect 127.0.0.1:7555
    • adb devices
  • mac:
    • adb kill-server
    • adb devices

(2)连接真机(android 手机)设备

  1. 手机端:让手机处于一个调试模式
  2. 电脑端安装手机驱动

(3)查看手机设备状态

  • 命令:
    • adb devices
    • adb get-state
  • 设备状态种类
    • device 正常
    • offline 连接出现异常,设备无响应
    • unauthorized 未授权

2.2 adb 安装卸载命令

(1) adb 命令格式

  • 格式 :adb [-d|-e|-s <serialNumber>]<command>
  • -d 指定当前唯一通过 Usb 连接的 android 设备为命令目标(了解)
  • -e 指定当前唯一运行的模拟器为命令目标(了解)
  • -s 指定相应的设备为命令目标(重点)

(2) 安装

  • 普通安装 adb install <apk路径>
  • 覆盖安装/替代安装 adb install -r <apk路径>

(3) 卸载

  • 卸载应用:adb uninstall 包名
  • 卸载应用(不删除配置文件,保存数据缓存信息):adb uninstall -k 包名

2.3 adb命令启动页面

(1) 包和 Activity(活动页)的概念

  • package 包:是 Android 应用的唯一标志
  • Activity 活动页: Android 应用页面,一个页面就是一个 Activity

(2) 获取当前的页面名

  1. 打开手机 app 应用的某个页面
  2. 打开命令行工具
  • 执行命令:adb shell "dumpsys window | grep mCurrentFocus" 获取当前的页面名

(3) 获取启动页面的 activity

  • 执行命令:
    • mac:adb logcat ActivityManager:I | grep "cmp"
    • win:adb logcat ActivityManager:I | findstr "cmp"

(4) 启动页面

  • 执行命令:adb shell am start -n <包名>/<avticity名>

2.3 adb清缓存命令

(1) adb shell 应用

  • 查看目录结构:adb shell ls
  • 查看系统当前日期:adb shell date
  • 查看系统 CPU 使用情况:adb shell cat /proc/cpuinfo
  • 查看系统内存使用情况:adb shell cat /proc/meminfo

(2) 查看应用列表

  • 显示所有应用:adb shell pm list packages
  • 显示系统自带应用:adb shell pm list packages -s
  • 显示第 3 方应用:adb shell pm list packages -3

(3)清除应用数据及缓存

  • adb shell pm clear <包名>

2.4 adb文件传输

  • adb push 电脑路径 设备路径
  • adb pull 设备路径 电脑路径

2.5 adb日志操作

(1)日志级别

  • V — 明细 verbose(最低优先级)
  • D — 调试 debug
  • I — 信息 info
  • W — 警告 warn
  • E — 错误 error
  • F — 严重错误 fatal
  • S — 无记载 silent(最高优先级,绝不会输出任何内容)

(2)查看日志

  • adb logcat

(3)查看日志常用的参数

  • adb logcat --help
  • adb logcat [TAG:LEVEL ] [TAG:LEVEL ] …
  • adb logcat 打印默认日志数据
  • adb logcat -v time 打印时间
  • adb logcat -v color 使用不同的颜色来显示每个优先级
  • adb logcat -f <filename> 将日志输出到手机文件,filename为手机文件的路径地址
  • adb logcat > log.log 保存日志到PC上
  • adb logcat -c 清理已存在的日志

三,App压力与性能测试

3.1 adb 模拟手机按键操作

  • 1、打开【指针位置】设置
  • 2、执行 adb shell input 命令,查看可以执行的相关命令

(1)模拟点击事件(打开app)

  • 执行命令: adb shell input tap x坐标 y坐标 (x,y坐标为app对应的坐标)

(2) 模拟输入事件

  • 打开app页面,将鼠标放到对应的输入框处
  • 执行命令: adb shell input text <输入内容>

(3) 模拟滑动事件

  • adb shell input swipe <起点x> <起点y> <终点x> <终点y> <滑动时长>

(4) 模拟手机按键

  • 返回键:adb shell input keyevent 4
  • Home 键:adb shell input keyevent 3(置应用于后台运行)
  • 音量放大:adb shell input keyevent 24
  • 音量缩小:adb shell input keyevent 25

3.2 adb性能分析

(1) CPU 和内存使用情况

  • 查看当前系统 CPU 使用情况:adb shell dumpsys cpuinfo(查看某一时段内的均值)
  • 查看当前系统的内存:adb shell dumpsys meminfo
  • 查看某个应用的内存:adb shell dumpsys meminfo <应用名>

(2)top 命令

  1. adb shell top
  2. adb shell top |grep "包名" 查看某个包的一些性能指标
  3. adb shell top -d 1 |grep "包名"

(3)电池电量

  • 命令:adb shell dumpsys battery

3.3 adb压力测试

(1)Monkey 介绍

  • Monkey 是 Google 提供的一个用于稳定性与压力测试的命令行工具
  • 可以运行在模拟器或者实际设备中
  • 它向系统发送伪随机的用户事件对软件进行稳定性与压力测试

(2) Monkey 基本用法

  1. 在命令提示符中输入 adb devices 查看有无连接的设备
  2. 确认有设备连接
  3. 获取 app 的包名
  4. adb shell monkey [参数] {随机发送事件数}
  5. 最简单的 monkey 命令:adb shell monkey 100

(3) Monkey 常用选项

  • -v :用于指定反馈信息级别,总共分 3 个级别
    • adb shell monkey -v -v -v 10
  • -s <seednumber>:用于指定伪随机数生成器的 seed(种子)值
    • adb shell monkey -s 123 10
  • --throttle <milliseconds>:每个事件结束后的间隔时间
    • adb shell monkey --throttle 300 10
  • -p: 用于约束限制,用此参数指定一个或多个包
    • adb shell monkey -p com.android.browser 10
  • --ignore-crashes:忽略崩溃
  • --ignore-timeouts:忽略超时
  • --ignore-security-exceptions:忽略安全异常
  • --ignore-native-crashes:忽略本地代码导致的崩溃异常
  • --monitor-native-crashes:跟踪本地方法的崩溃问题

(4)Monkey 事件选项

  • --pct-touch:触摸事件
  • --pct-motion:滑动事件
  • --pct-appswitch:activity 之间的切换
  • --pct-pinchzoom:缩放事件
  • --pct-rotation:屏幕旋转事件
  • --pct-flip:键盘事件
  • --pct-anyevent:任意事件
  • 注意:所有类型属性比例加起来不能超过 100

(5) Monkey 日志分析

  1. 程序无响应,ANR 问题:在日志中搜索 “ANR”
  2. 崩溃问题:在日志中搜索 “CRASH”
  3. 其他问题:在日志中搜索 “Exception”

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值