安卓应用测试-ADB

一 下载安装ADB

下载platform-tools,https://developer.android.google.cn/studio/releases/platform-tools

配置环境变量
安卓应用测试-ADB_第1张图片

二 连接安卓设备

1、将手机与PC连接,手机开启开发者模式与USB调试
2、打开cmd,输入命令

C:\Users\Administrator>adb devices
List of devices attached
R58MC2CQTHM     device

三 连接模拟器

下载夜神模拟器
adb connect 127.0.0.1:62001

四 ADB常用命令

1、显示系统中全部设备:
adb devices
2、列出手机装的所有app的包名:
adb shell pm list packages
3、列出系统应用的所有包名:
adb shell pm list packages -s
4、列出除了系统应用的第三方应用包名: 
adb shell pm list packages -3 
5、清除应用数据与缓存:
adb shell pm clear (apk包名)
6、获取正在运行的Activity:
adb shell dumpsys activity activities(获取到activity可在打开应用时使用)
7、启动应用:
adb shell am start -n com.qiyi.video/.WelcomeActivity(以第6步骤中获取的爱奇艺activity为例)
8、强制停止应用:
adb shell am force-stop com.qiyi.video
9、查看屏幕分辨率:
adb shell wm size 
10、指定运行设备(比如查看指定设备的屏幕分辨率):
adb -s 4a833854 shell wm size 所有需要指定运行设备的操作都可以加上-s 设备号,设备号可使用adb devices命令获取
11、获取手机屏幕截图并且保存到电脑
adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到SDCard)
adb pull /sdcard/screenshot.png e:/screen(保存到电脑)
12、点击手机相应位置(最后两个参数代表点击屏幕的坐标位置)
adb shell input tap 100 100
13、滑动手机屏幕(数字分别代办原始的X坐标,原始Y坐标,需要滑动目标X坐标,目标Y坐标,滑动时间,单位毫秒,滑动时间可不写)
adb shell input swipe 600 700 550 550 900
14、在输入框输入相应内容
adb shell input text 123(输入字符“123”)
15、adb命令模拟按键事件 KeyCode
adb shell input keyevent 4 (返回键)
adb shell input keyevent 3(home键)
adb shell input keyevent 24(音量加)
adb shell input keyevent 25(音量减)

1.adb help         打印输出adb的帮助信息
2.adb shell [command]    进入到android自带的shell中
3.adb kill-server     杀掉adb的服务
4.adb reboot [bootloader|recovery]  重启android设备,在模拟器下使用效果不大
5.adb start-server   启动adb的服务
6.adb get-state      获得adb的当前状态
7.adb get-serialno   获取设备的ID和序列号
8.adb bugreport >文件路径    打印dumpsys、dumpstate、logcat的输出
9.adb shell dumpsys[battery] [cpuinfo] [activity][wifi][telephony.registry]   默认打印出   当前系统所有service信息,在后面可加上具体的服务名
10.adb install [-r] [-s]  [Windows的绝对路径]     -r参数表示重新(强制)安装apk,-s参数表示安装apk到SDcard
11.adb uninstall [-r] [package name]    卸载App应用,package name可以从Android的/data/data目录下获取
adb –s [serialno] push [Windows路径] [Android路径]    -s后接设备序列号(adb get-serialno),指定设备上传Windows文件到Android设备上。

五 monkey

在保证App基本功能正确性的基础上,App的稳定性就显得非常重要,如果一个App经常出现闪退或者卡死,那么用户体验会受到很大伤害,导致客户的流失。
针对App的UI层面的稳定性和系统的流畅性,android可以使用monkey测试,在本章就会提出monkey测试的一些基本用法:
第一步,cmd 进入“ adb shell”,进入avd 的根目录后,“ls ”看到了一个data的目录,里面就是我们要安装程序:1:adb shell  2:su root  3:cd data/data  4:ls 查看应用包名 
第二步,找到所有安装应用程序的包,其中里面就有你要测试的包的名称
    输入:monkey –p [android 包名] –v [次数]
    -p表示要指向的包命,-v表示详细信息
    导出报告:
    Monkey -p 包名 -v 次数 > window的一个路径
    重现出现的错误:
    Monkey -p 包名 -v -s 上次错误的编号(上次测试seed的值)

进阶命令如下
adb shell monkey -p 包名 -s 8888 --throttle 200 --pct-touch 40 --pct-motion 10 --pct-nav 20 --pct-majornav 15 --pct-appswitch 5 --pct-anyevent 5 --pct-trackball 0 --pct-syskeys 0 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --bugreport -v 100000

这条命令的意思就是在XX包下按照40%触摸事件、10%滑动事件、20%导航事件、15%主要导航事件、5%APP间切换、5%任意事件、0%轨迹球事件、0%系统按键事件、忽略崩溃、忽略超时、忽略安全异常 事件间隔200 执行100000次

参数-p:用于约束限制,用此参数指定一个或者多个包,指定包之后,monkey将只允许系统启动指定的app。查看设备所有包名:adb shell cd data/data ls

参数-v:用户指定反馈信息级别,总共分为3个级别,-v说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息;-v -v说明提供较为详细的日志,包括每个发送到activity的事件信息;-v -v -v说明最详细的日志,包括了测试中选中、未选中的activity信息;

参数-s:指定伪随机数生成器的seed值,如果seed值相同,则两次monkey测试所产生的时间序列也相同的。

参数--throttle <毫秒>:用户指定操作间的时延,单位是毫秒

参数--ignore-crashes:指定当应用程序崩溃时,monkey是否停止运行。如果使用此参数,即使应用程序崩溃,monkey依然会发送事件,直到事件计数完成。

参数--ignore-timeouts:指定当应用程序发生ANR错误时,是否停止运行。如果使用此参数,即使应用程序发生ANR错误,monkey依然会发送事件,直到事件计数完成。

参数--ignore-security-exceptions:用于指定当应用程序发生许可错误时,monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,monkey依然会发送事件,直到事件计数完成。

参数 --monitor-native-crashes:用于指定是否监视并报告应用程序发生崩溃的本地代码。

参数--pct-{+事件类别}{+事件类别百分比}:用于指定每种类别事件的数目百分比


事件类命令是Monkey最重要的命令了,它共有11个事件类命令。

--pct-touch表示指定触摸事件的百分比

--pct-motion滑动事件

--pct-trackball轨迹球事件(用的比较少)

--pct-nav导航事件(用的比较少)

--pct-majornav主要导航事件(用的比较少)

--pct-syskeys系统按键事件

--pct-appswitchapp间切换

--pct-anyevent任意事件

--pct-flip键盘轻弹百分比,

--pct-pinchzoom放大、缩小事件

--pct-rotation屏幕旋转

Monkey调试类命令

--dbg-no-events:初始化启动的activity,但是不产生任何事件。

--ignore-crashes:忽略崩溃

--ignore-timeouts:忽略超时

--ignore-security-exceptions:忽略安全异常

--kill-process-after-error:发生错误后直接杀掉进程

--monitor-native-crashes:跟踪本地方法的崩溃问题

--wait-dbg:知道连接了调试器才执行monkey测试

monkey的log分析:
程序异常退出 : uncaused exception
程序强制关闭 :Force Closed (简称FC)  forcefinish、exception
程序无响应 : Application No Response (简称ANR) , 顺便,一般主线程超过5秒么有处理就会ANR

你可能感兴趣的:(android,adb)