adb和monkey的基本使用

什么是ADB?

ADB,即 Android Debug Bridge,它是Android 开发/测试人员不可替代的强大工具。

Adb是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。

adb的工作原理

当您启动某个adb 客户端时,客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它将启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。

参照链接:

https://developer.android.google.cn/studio/command-line/adb

[if !supportLists]三、[endif]adb基本用法

adb 命令的基本语法如下:

adb [-d|-e|-s <serialNumber>] <command>

如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s ] 这一部分,直接使用 adb 。

为命令指定目标设备

如果有多个设备/模拟器连接,则需要为命令指定目标设备。

-d  指定当前唯一通过USB 连接的 Android 设备为命令目标

-e   指定当前唯一运行的模拟器为命令目标

-s <serialNumber>  指定相应serialNumber 号的设备/模拟器为命令目标

adb -s 485f0fec install C:\Users\xxx\xxx-01.apk

启动/停止adb server:

adb start-server

adb kill-server  

查看adb版本:

adb version

查找手机上的安装包包名

1.adb shell pm list package    查看手机上所有的安装包

2.adb shell pm list package -3    查看第三方安装包

3.adb shell pm list packages -s     查看系统的包

4.adb shell pm list packages -e “要搜索的内容”     查看启动包中搜索的包

5.adb shell dumpsys window | findstr mCurrentFocus   获取当前打开的APP包名(前面的为包名,斜杠后面的是当前启动的acivity)

6.adb shell pm clear (apk包名)   清除应用数据与缓存

7.adb shell am force-stop com.peopledailychina.activity  强制停止应用

8.adb pull 和adb push 命令

adb pull <手机路径>   <本机路径>  从手机中拉取信息到本地电脑上

adb push <本机路径>  <手机路径>  从本地电脑推送信息到手机上

什么是Monkey?

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。(其实可以想象成一只猴子啥都不知道,疯狂乱敲......)

Monkey 运行在设备或模拟器上面,可以脱离PC运行(一般在一些大公司中都是将其抽离成一个测试专用的APP工具,使用相应的操作来完成测试)。

Monkey命令和基本参数介绍

注意:所有的参数都需要放在monkey和设置的次数之间,参数的顺序可以调整;若带了-p ,-p必须放在monkey之后,参数必须在-p和count之间:

adb shell monkey -p com.peopledailychina.activity --ignore-crashes --ignore-timeouts  --ignore-security-exceptions --pct-touch 70 --pct-motion 25 --pct-majornav 5 -v -v -v --throttle 300 -s 100 100000 > C:\Users\xxx\Desktop\monkey.txt

-v          默认级别,仅提供启动、测试完成和最终结果等少量信息

-v  -v      提供较为详细的日志,包括每个发送到Activity的事件信息

-v  -v  -v   提供最详细的日志,包括了测试中选中/未选中的Activity信息

-s        用于指定伪随机数生成器的seed值  

--throttle   用于指定用户事件的操作间隔时延,单位是毫秒

--ignore-timeouts  忽略超时错误

--ignore-crashes   忽略crash

--ignore-security-exceptions忽略许可错误


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容