一、adb基础
1、adb工作原理
1、adb是什么
ADB全称Android Debug Bridge, 是android sdk里的一个工具,目的是起到调试桥的作用,用这个工具可以直接操作管理android模拟器或者真实的andriod设备(手机),是客户端测试常用的辅助工具。
ADB作为一个客户端/服务器架构的命令行工具,主要由3个部分组成。
(1)adb client(客户端):可以通过它对Android应用进行安装、卸载及调试。用于发送命令,客户端在开发计算机上运行,您可以通过发出adb命令从命令行终端调用客户端。
(2)adb daemon(守护进程):在设备上运行命令,守护在每个Android设备上的adb后台进程。
(3)adb service(服务器):管理客户端到Android设备上abd后台进程的连接。
2、adb的工作原理
当你启动一个adb Client(客户端),Client首先会选确认是否已有一个adb Server(服务器)进程在运行,如果没有,则会启动Server进程。此时,adb Server就会绑定本地的TCP端口5037,并监听adb Client发来的命令。所有客户端均通过端口5037与adb服务器通信。
接着,Server将会扫描所有5555到5585范围内(该范围供前16个模拟器使用)的奇数端口来定位所有的模拟器或设备,并与之建立连接。一旦Server找到 了adb daemon(守护程序),它将建立一个到该端口的连接,这样,我们就可以使用adb命令控制和访问模拟器或设备了。在这里,需注意的是任何模拟器或设备实例会取得两个连续的端口:一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。
例如:
模拟器1,控制台:5554
模拟器1,adb:5555
模拟器2,控制台:5556
模拟器2,adb:5557
依此类推…
netstat -ano|findstr 5555 查看端口是否被占用
服务器与所有设备均建立连接后,便可以使用adb命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个adb客户端的命令,因此可以从任意客户端(或从某个脚本)控制任意设备。
2、adb基础命令
1.adb devices获取设备列表及设备状态:
adb devices -l可查看更多信息
2.adb get-state获取设备的状态
设备的状态有 device , offline , unknown3种,
device:设备正常连接
offline:连接出现异常,设备无响应
unknown:没有连接设备
3.adb install 安装应用(后面加apk包)
如果已经安装好了,需要再次安装需要加参数-r
4.adb uninstall +包名 卸载应用
找到某个应用的包名
aapt d badging +应用apk路径 | findstr “package”
举例:aapt d badging Desktop\apps\douban.apk | findstr “package”
5.adb pull 从手机设备COPY指定的文件到开发机
adb pull 设备上文件路径 本地电脑路径
举例:adb pull /data/local/tmp/1.png Desktop\
6.adb push 从开发机copy指定文件到设备
adb push 本地文件路径 开发机文件路径
举例:adb push Desktop\1.png /data/local/tmp
7.如果连接多台模拟器时,需要用-s参数来指定某一台设备;
adb -s 127.0.0.1:62001 shell 进入某个设备的shell命令控制台
adb -s 127.0.0.1:62001 install xx
3、Android日志解析
1.adb logcat 查看设备日志
这个命令刷新日志会很快,dos窗口不好查看,可以将结果重定向到一个文件,然后打开文件方便查看
adb logcat >Desktop\logcat.txt
日志 I inform E error
查询error 、exception
logcat的-f参数是将日志保存到文件,这个文件是在设备上,使用如下:
adb logcat -f /data/local/tmp/logcat.txt
4、adb shell命令
1.adb shell
多台机器加-s 参数
进入Android里面Linux命令操作
vmstat 1 查看资源使用情况
exit 退出Android系统
adb shell vmstat 1 不进入Android系统也可以查看
二、Monkey
1、Monkey基础介绍
1.monkey介绍
Monkey意指猴子,顽皮淘气。所以Monkey测试,顾名思义也就像猴子一样在软件上乱敲按键,猴子什么都不懂,就爱捣乱。Monkey原理也是类似,通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、滑动Trackball、手势输入等操作),来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
Monkey包括许多选项,它们大致分为四大类:
(1)基本配置选项,如设置尝试的事件数量;
(2)操作限制条件,如设置只对单独的一个包进行测试;
(3)事件类型和频率;
(4)调试选项,如忽略超时、忽略异常等;
2.Monkey原理
在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理(自动停止):
(1)如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止;
(2)如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错;
(3)如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错;
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
(1)Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:
/system/framework/monkey.jar;
(2)Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;
(3)通过在cmd窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试;
2、Monkey参数解析
1.基本语法
$ adb shell monkey [options]
若是不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的所有应用程序网络
$ adb shell monkey -p package -v 500
指定对package这个应用程序进行monkey测试,并向其发送500个伪随机事件。其中 -p 表示对象包包,–v 表示反馈信息级别app
2.基础参数
可使用命令 adb shell monkey -help 查看命令参数工具
(1)参数: -p