1、adb工具构成及原理

  • adb 包含了三个部分
    • adb客户端 用来下发adb得指令工具
    • Server 服务端 adb.exe执行之后的进程,表示adb的服务端,通过服务端与手机上的adb守护进程进行通信
    • adb守护进程 随着android系统的启动而启动,当android系统关闭之后才会关闭。

 

 

 2、常用命令

1.首先打开MuMu模拟器,在设置中找到开发者选项,打开usb调试

 

 

  2.找到连接adb的端口(我这个win有)

 

 

 

 

 

 

adb devices   查看手机设备的ID名称及状态

127.0.0.1:7555  手机设备的ID名称  device  处于在线状态   (用localhost会报错)

 

 

 

 

获取包名和界面名

  • 操作步骤
    •   在手机或者模拟器打开app
    •       windows命令一:adb shell dumpsys window windows | findstr mFocusedApp(能看主界面)
    •   windows命令二:adb shell dumpsys window | findstr "usedApp" (可以看到打开app和主界面)

com.android.settings/Settings        com.androidsettings是包名,      .Settings是界面名通过/分隔包 

 

LINUX/MacOS命令一: adb shell dumpsys window windowsgrep mFocusedApp

LINUXMacOS命令二: adb shell dumpsys window lgrep "usedApp"


通过aapt获取app的包名和界面名

  •  aapt dump badging F:\app\apk\xuechebu.apk后面表示的是app安装包的路径及名称

包名:package: name='com.bjcsxq.chat.carfriend'          #packagename后面的字符串表示的是app的包名

界面名: name='com.bjcsxq.chat.carfriend.module_main.activity.SplashActivity'        launchable-activity:name后面的字符串是界面

 

 

 

 

安装和卸载app

app安装 adbinstall路径/app安装包名称
app卸载 adbuninstall包名

上传下载文件

  • 上传将电脑上的文件上传到手机

adbpush电脑上的文件路径手机的路径
例子:adb push ./1.txt /sdcard     --可以是相对路径也可以是绝对路径   /sdcard是模拟器的总目录    如果是图片可以是/sdcard/Pictures

 

 

 

 

 

 

  • 下载文件从手机上下载文件到本地

例子:adb pull /sdcard/1.txt D:\2.txt   adb  pull 手机的文件路径  电脑的文件夹路径

 

 

 

查看日志信息

为什么要获取日志信息:用来给开发定位问题
adb logcat     来查看相关的日志信息

 

测试app的启动速度

测试app启动速度的命令:
adb shell am start -W 包名/界面名

(打开一个app,用adb shell dumpsys window | findstr "usedApp" (可以看到打开app和主界面)查看包名/界面名)

 

 前面是qpp名后面是界面名

 

 需要大家关注的是TotalTime的时间值,那么在实际的测试过程当,会进行多次测试,然后取平均值

 

稳定性测试   monkey

  • monkey 集成在adb⼯具当中,主要⽤来做稳定性测试⽤的, monkey是通过java语⾔编写的⼀种稳定性测试⼯具。
    主要⽤来测试app会不会出现crash(崩溃)的情况。
    相当于让⼀只猴⼦来随机操作app,所有的操作都有可能出现,⻓时间的操作来测试ap会不会出现问题。
  • monkey常⽤的参数
    • -p 参数 对指定的app进⾏随机操作
      adb shell monkey -p com.baidu.homework 100 (100次随机事件)
    • -v 参数 表示的是记录信息的级别
      level 0:adb shell monkey -p com.baidu.homework -v 100 默认级别
      level 1: adb shell monkey -p com.baidu.homework -v -v 100 打印出来的信息会⽐较详细,只打印跟本程序相关的⽇志信息
      level 2: adb shell monkey -p com.baidu.homework -v -v -v 100 打印出来的信息会更多,会显示出其他程序运⾏的信息
    • -s ⽤于指定伪随机数。如果两次的伪随机数相同,那么两次的操作步骤、流程、操作事件完全⼀样。
      主要的作⽤,就是⽤来复现上次的问题
      adb shell monkey -p com.baidu.homework -v -v -s 10 100
    • --throttle ⽤于指定随机事件的间隔时间, 单位是毫秒
      adb shell monkey -p com.baidu.homework -v -v --throttle 3000 -s 10 100
  组合使⽤:
  adb shell monkey -p com.baidu.homework --throttle 500 --pct-touch 10 --pct-motion 50 -v -
  v -s 100 300 > log.log
  --pct--touch 10 触模(10表示的是整个随机同件中的百分⽐)
  --pct-motion 50 滑屏(50表示的是整个随机同件中的百分⽐)
  • ⽇志分析
    如果在⽇志⾥⾯出现了 ANR(application not responsing),程序没有响应
    如果⽇志中出现了Exception,可能程序崩溃/异常退出。
 

 

 adb手势操作

  • ⼿势操作命令
    • 模拟点击事件

      adb shell input tap x y # x y表示的是坐标点 参数之间⽤空格隔开

    • 模拟滑屏事件(参数之间⽤空格隔开)
      adb shell input swipe startx starty endx endy # startx, starty 表示的是起始点坐标,endx,endy表示的是终点坐标
    • 模拟键盘操作  
      adb shell input keyevent 键值 (3 表示的HOME键 4 表示的返回键 66表示的回⻋键)
    • 模拟输⼊操作  
      adb shell input text 内容 内容表示要输⼊的内容,另外输⼊的内容不能是中⽂
    • 如果出现上图中 offlfflffline的设备,记得重启⼀下adb服务  
    • 如果电脑上⾯连接了多个模拟器或者是⼿机。那么需要加上⼀个参数 -s device_name  
      adb -s emulator-5554 shell input keyevent 4
 

弱⽹测试

charles快速开启

这里面进行设置(我多用于web) 

  • 弱⽹测试步骤:
    • 打开fifiddler,设置相应的代理端⼝(当端⼝被占⽤时需要⼿动更改代理端⼝)  
    • 在fifiddler中设置⽹络的上传和下载的速度  
      • 点击 “rules”--“customize rules

 

 

 

    • 在⼿机中设置⽹络的代理  
      • ⼿机的IP地址必须与fifiddler电脑的IP地址,是同⼀个局域 ⽹。也就是在同⼀⽹段。查看电脑的IP地址命令: ipconfifig
 
 
 posted on 2021-07-08 19:21  2165843  阅读(377)  评论(0)    收藏  举报