Adb与monkey命令学习总结

主要内容

adb构成和工作原理

全称:Android Debug Bridge 就是起到调试桥的作用。顾名思义,adb就是一个debug工具。
adb构成

  1. client端:在电脑上,负责发送adb命令
  2. daemon守护进程:在手机上,负责接收和执行adb命令
  3. server端:在电脑上,负责管理client和daemon之间的通信

adb工作原理

  1. client端将命令发送给server端
  2. server端将命令发送给daemon端
  3. daemon端进行执行
  4. 将执行结果,返回给server端
  5. server端将结果再返回给client端

adb的作用

借助adb工具,我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言之,adb就是连接Android手机和PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。

adb常用命令

查看当前连接设备

必要前提:设备端上版本号多次点击打开开发者选项–>打开USB调试

adb devices

没有设备信息时可以尝试手动连接(模拟器)

adb connect 127.0.0.1:62001    本地夜神模拟器为例

端口号被占用或连接出错时尝试使用一下方法解决
Adb与monkey命令学习总结

安装apk文件

adb install <apk文件路径>   将指定的apk安装到安装到设备上。如:adb install F:\Desktop\酷安.apk
adb install -r xxx.apk     强制安装或覆盖安装
adb –s 设备号 install xxx.apk    连接多个设备时,指定设备号安装

卸载APP

adb uninstall <apk包名>      例如:adb uninstall com.coolapk.market
adb uninstall -k <apk包名>    -k参数为卸载软件时保留配置和缓存文件

获取包名和界面名

  1. 包名(package):决定程序的唯一性
  2. 界面名(activity):可以理解为,一个界面名对应着一个界面
    步骤:打开需要测试的应用程序,输入adb命令

命令格式:Mac/Linux:

adb shell dumpsys window windows | grep mFocusedApp

Windows:

adb shell dumpsys window windows | findstr mFocusedApp

adb shell am/pm

am全称为activity manager,可使用am命令模拟各种系统的行为,如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等。

adb shell am start -W包名/界面名   获取APP启动时间(ms) 

This time–>activity
Total time–>Application+activity
wait time–>系统+Application+activity
启动时间看Total time,Application一般不会有

adb shell am start  <apk包名>/<activityName>    启动一个app。
adb shell am force-stop 包名     强制关闭应用程序
adb shell am start -n 包名/界面名 -S      启动APP,-S是启动前先杀掉这个进程

pm全称为package manager,利用pm命令可模拟android行为或查询设备上的应用等。

adb shell pm list packages		获取所有应有的包名
adb shell pm list packages -s   获取系统应用的包名
adb shell pm list packages -3   获取第三方应用的包名
adb shell pm clear 包名      清除应用程序缓存数据

adb文件传输

adb push 电脑的文件路径 手机的文件夹路径    从电脑发送文件到手机
adb pull 手机的文件路径 电脑的文件夹路径     从手机拉取文件到电脑

其他常用命令

adb kill-server   停止服务器
adb start-server    启动服务器
adb shell     进入到安卓手机内部的Linux系统命令行中
adb logcat    获取手机日志
adb shell ps/top    查看当前终端中的进程信息,如pid等
adb shell screencap /sdcard/screen.png    可以使用screencap命令来进行手机屏幕截图
adb shell screenrecord /sdcard/demo.mp4    录制屏幕视频

monkey常用命令

跑monkey是android自动化测试的一种手段,所谓monkey测试就是模拟用户的按键输入,触摸屏输入,手势输入等。当Monkey程序在模拟器或设备运行的时候,如果用户比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey的随机重复的方法对apk作压力测试,来测试android app的稳定性。
注意:日志必须写在倒数第二,事件数写在倒数第一,其他命令不分顺序

事件数

adb shell monkey 100    100为事件次数

频率 –throttle(毫秒),延时操作

adb shell monkey --throttle 1000 50   1000为事件频率,单位ms;50为事件次数
使用频率的好处:
	1:尽可能模拟用户的操作
	2:通过频率来设置不同的压力
	3:通过频率和事件数量来控制运行时间
		monkey命令模拟用户操作,持续执行1分钟。大部分用户的执行频率是0.5s,1s
			1分钟=60s=60000ms
			1000ms*次数=60000ms   次数=60
			所得命令为:adb shell monkey --throttle 1000 60

指定执行的应用 –p

adb shell monkey -p com.wuba --throttle 1000 50   -p指定一个包,1000为频率 100为事件次数
adb shell monkey -p com.wuba -p com.handsgo.jiakao.android 200  -p 指定多个包,对每个包执行200次事件

日志 -v

-v 用于指定反馈信息级别,总共分为level 0、level 1、level 2三个级别,级别越高,输出的日志越详细。

adb shell monkey -p com.wuba -v -v -v 100 >D:\app\wuba.log    将日志信息保存到指定位置

日志中的日志信息:
ANR:程序无响应
CRASH:程序崩溃或异常
Exception:异常

调试选项

--ignore-crashes		忽略在应用程序出现crash时导致的monkey停止
--ignore-timeouts		忽略在应用程序出现ANR问题时导致monkey停止
--ignore-security-exceptions	忽略应用程序发生许可错误时导致monkey停止
--kill-process-after-error	当应用程序发生错误时,应用程序停止运行并保持在当前状态

完整应用monkey命令进行稳定性测试

adb –s 44a188f9 shell monkey -p com.tal.kaoyan –s 101 --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v-v-v 500 >d:\kaoyan.log

说明:第一个-s指定设备,如果只连接了一台设备,可不用该参数。
-p <apk包名>只允许系统启动指定的app,如果不指定,将允许系统启动设备中的所有app,也可指定多个包。
第2个-s,用于指定伪随机数生成器的seed值,可以自己指定。如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
–throttle <毫秒数> 指定用户操作(事件)间的时延。
–ignore-crashes 指定当应用程序崩溃时,Monkey依然发送事件,直到事件计数完成。
–ignore-timeouts 当应用程序发生ANR错误时,Monkey依然会发送事件,直到事件计数完成。
最后的数字(这里是500):表示Monkey程序模拟500次随机用户操作事件。
(> 将日志信息保存到d:\ kaoyan.log

上一篇:Monkey and Banana(线性dp)


下一篇:Unity 3D 建立开发环境