一篇文章学懂ADB命令和Monkey命令

  • 1.adb命令
    • 1.1 查看连接设备
    • 1.2 查看adb版本
    • 1.3 查看手机当前启动App的应用名和包名
    • 1.4 使用aapt使用aapt 查看app的包名和启动名 查看app的包名和启动名
    • 1.5 查看所有系统应用
    • 1.6 查看所有第三方应用
    • 1.7 列出手机装的所有app的包名
    • 1.8 安装软件
    • 1.9 卸载软件
    • 1.10 将电脑文件传输到移动端,将移动端文件传输到电脑
    • 1.11 截取当前屏幕信息
    • 1.12 查看手机CPU情况
    • 1.13 查看应用内存使用情况
    • 1.14 显示磁盘使用信息
    • 1.15 清除应用缓存信息
    • 1.16 查看电池状态和查看电池信息
    • 1.17 导出log文件到本地
  • 2. monkey命令
    • 2.1 随机对手机进行操作,包括点击,拖动,滑动,输入等操作,并打印日志
    • 2.2 随机种子数
    • 2.3 解析日志
    • 2.4 事件调整
    • 2.5 等待时间的参数 --throttle毫秒
    • 2.6 日志查看

1.adb命令

1.1 查看连接设备

adb devices

1.2 查看adb版本

adb version

1.3 查看手机当前启动App的应用名和包名

adb shell dumpsys window w |findstr \/ |findstr name=

1.4 使用aapt使用aapt 查看app的包名和启动名 查看app的包名和启动名

aapt即Android Asset Packing Tool ,在android SDK 的build-tools 目录下。这个工具可以查看apk的包名启动名
我的appt在 D:\AndroidSDK\android-sdk-windows\build-tools\25.0.3这个路径下面
把这个路径添加到path环境变量,这样就可以直接在cmd中使用appt了

aapt dump badging D:\test\xxx.apk(APK的全名)

1.5 查看所有系统应用

adb shell pm list packages –s #

1.6 查看所有第三方应用

adb shell pm list packages -3

1.7 列出手机装的所有app的包名

adb shell pm list packages

1.8 安装软件

adb install 软件名

1.9 卸载软件

adb uninstall 软件包名

1.10 将电脑文件传输到移动端,将移动端文件传输到电脑

adb push 电脑路径 移动端路径
adb pull 移动端路径 电脑路径

1.11 截取当前屏幕信息

adb shell screencap -p 截图文件路径

1.12 查看手机CPU情况

adb shell dumpsys cpuinfo

1.13 查看应用内存使用情况

adb shell dumpsys meminfo + 包名

1.14 显示磁盘使用信息

adb shell dumpsys diskstats

1.15 清除应用缓存信息

adb shell pm clear [包名]

1.16 查看电池状态和查看电池信息

adb shell dumpsys battery

adb shell dumpsys batteryproperties

1.17 导出log文件到本地

adb logcat >D:\logs\1.txt

adb logcat -v time >D:\logs\1.txt

使用adb logcat -v time 命令, 可以啥看日志的输出时间

adb logcat *:W # 将Warning日志输出

adb logcat *:E # 将Error日志输出

2. monkey命令

2.1 随机对手机进行操作,包括点击,拖动,滑动,输入等操作,并打印日志

adb shell monkey -p 要测试的包 -v -v -v 要操作的次数

  • 日志解读


2.2 随机种子数

adb shell monkey -p 要测试的包 -v -v -v -s 种子数 要操作的次数

随机种子数:其中-s表示随机种子数,用于控制我们操作的顺序,种子数一样,表示所有的操作顺序一样

  • 没有-s参数时,系统随机生成的种子数,每次的操作顺序不一样

    • 第一次运行
    • 第二次运行

  • 添加种子数后运行

    • 第一次运行

  • 第二次运行

2.3 解析日志

第一部分:基本信息,要操作的次数和哪个app

第二部分:操作事件的比率

第三部分:详细的操作日志

第四部分:总共运行了多久

2.4 事件调整

  • 常用随机事件



app做健壮性测试,200次,然后要求点击事件必须要达到80%


对app,要求点击事件50%,滑动事件50%,操作20次。


2.5 等待时间的参数 --throttle毫秒

adb shell monkey –p 包 –v –v –v –throttle 1000 次数

解释:这个每个随机事件之间的间隔(排除无效的间隔时间)

设置每个事件的间隔为1s那么,里面要运行60次,我们可以运行240次(排除一些无效的时间)*4倍


2.6 日志查看

运行app500次,然后把日志保存在d:\123\mlog.txt文件下,并分析有没有问题


常见的日志错误

adb基本命令总结

'''起始'''
adb kill-server         # 关闭服务
adb start-server        # 开启服务
adb devices             # 查看连接的设备
adb version             # 查看adb版本
adb get-state           # 设备状态
#device:设备连接正常;offline:连接设备出现异常,设备无响应;unknown:没有连接设备'''安装apk'''
adb install apk路径      # 覆盖安装软件(本地路径,不是手机路径)
adb install -r (APK路径)       # 覆盖安装(-r 代表如果apk已安装,重新安装apk并保留数据和缓存文件。)
adb install -s (APK路径)       # -s 安装在SD卡内,而不是设备内部存储
adb uninstall 包名        #卸载apk'''启动apk'''
adb shell am start –n 启动应用程序的界面activity的名称  #启动应用程序
adb shell am force-stop 包名      #关闭应用程序'''系统命令'''
adb shell                       # 进入手机
exit;                           # 退出手机
adb shell pm list packages –s   # 查看所有系统应用
adb shell pm list packages -3   # 查看所有第三方应用
adb shell pm list packages      # 列出手机装的所有app的包名
adb uninstall 软件名               # 卸载软件adb push 电脑路径 移动端路径       # 将电脑文件传输到移动端
adb pull 移动端路径 电脑路径     # 将移动端文件传输到电脑adb help                               # 查看adb命令帮助信息
adb shell screencap -p 截图文件路径       # 截屏
adb shell dumpsys cpuinfo               # 查看手机CPU情况
adb shell dumpsys meminfo + 包名         # 查看应用内存使用情况
adb shell dumpsys diskstats             # 显示磁盘使用信息
adb shell pm clear [包名]             # 清除应用缓存信息
adb shell dumpsys battery               # 查看电池状态
adb shell dumpsys batteryproperties     # 查看电池信息'''日志'''
adb logcat >D:\logs\1.txt            # 导出log文件到本地
adb logcat -v time >D:\logs\1.txt    # 使用adb logcat -v time 命令, 可以啥看日志的输出时间
adb logcat -t 5        输出最近5行的数据# 过滤指定等级日志:按某级别过滤日志则会将该级别及以上的日志输出。将 Warning、Error、Fatal 和 Silent 日志输出。
# V —— Verbose(最低,输出得最多)
# D —— Debug
# I —— Info
# W —— Warning
# E —— Error
# F —— Fatal
# S —— Silent(最高)adb logcat *:W                       # 将Warning日志输出
adb logcat *:E                      # 将Error日志输出

Monkey测试命令

adb shell monkey 100         # 在app端执行monkey随机测试100次,
adb shell monkey -p 包名  100 # 指定app进行monkey随机测试100次(-p 包名)'''日志'''
adb shell monkey -p 包名 -v 30    # 显示日志详细程度,总共分3个级别逐个加 -v ,30是事件,做多少次。
adb shell monkey -p 包名 -v -v 30
adb shell monkey -p 包名 -v -v -v 30
adb shell monkey 100 >路径     # 将log信息写到文档中,路径是本地路径,不是手机路径'''--throttle(延时毫秒)'''
adb shell monkey -p 包名 --throttle 300 100
# 表示执行100个伪随机用户事件流,事件间隔为300毫秒。注:一般设置为300毫秒,原因是实际用户操作的最快300毫秒左右一个动作事件。'''--ignore-crashes(不忽略异常)'''
# 通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
adb shell monkey --ignore-crashes -v 30'''--ignore-timeouts(ANR)'''
# 通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
adb shell monkey --ignore-timeouts –v 10'''-pct-touch 占比率(设置触摸事件占比)'''
# 调整触摸事件的百分比。(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的操作)
adb shell monkey --pct-touch 67 -v 10   # 表示执行10个伪随机用户事件流,并调整其中触摸事件的百分比为67%。'''--pct-motion 占比率(设置手势事件占比)'''
# 调整手势事件motion事件百分比。(motion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成)
# –pct-motion:动作事件。以Down(ACTION_DOWN)开始,Up(ACTION_UP)结尾,中间至少有一次Move(ACTION_MOVE)。
adb shell monkey --pct-motion 67 -v 10  # 表示执行10个伪随机用户事件流,并调整其中动作事件的百分比为67%。'''设置其他占比率命令'''
# 二指缩放百分比,即智能机上的放大缩小手势操作
1. --pct-pinchzoom//pinch # 轨迹球事件百分比(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)
2. --pct-trackball//trackball# 屏幕旋转百分比,横屏竖屏
3. --pct-rotation//screen# 基本导航事件。即来自于方向输入设备的上下左右操作。
4. --pct-nav//nav# ”主要”导航事件百分比(这些导航事件通常会引发UI的事件,例如5-way pad的中间键、回退键、菜单键)
5. --pct-majornav//major# ”系统”按钮事件百分比(这些按钮一般专供系统使用,如Home, Back, Start Call, End Call,音量控制)
6. --pct-syskeys//system(key)# 启动activity事件百分比。在随机的间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部
7. --pct-appswitch//app# 键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回
8. --pct-flip//keyboard# 其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等。(该事件可能包含其他上述事件。)
9. --pct-anyevent//anyevents

一篇文章学懂ADB命令和Monkey命令相关推荐

  1. 一篇文章学懂Shell脚本

    Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合. Shell可以直接使用在win/Unix/Linux上面 ...

  2. 一篇文章学懂Shell脚本,最简明的教程在这里

    Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合. Shell可以直接使用在win/Unix/Linux上面 ...

  3. 一篇文章学懂数据结构中的树

    1.树知识体系搭建 2.树的基础知识 2.1 关于树结构 树形结构是非常重要的非线性结构,是以分支关系定义的一对多的层次结构. 树是n(n≥0)个结点的有限集.当n=0时,称为空树.在任意一棵非空树中 ...

  4. 一篇文章看懂:量化交易

    什么是量化交易? 度娘官方版 - 理论这么说 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策略,极大 ...

  5. 计算机论文章节构成,一篇文章弄懂电脑的组成

    原标题:一篇文章弄懂电脑的组成 来源:转载于网络:学电脑知识http://www.pc280.com 今天为大家全面介绍电脑的组成,看完这个你一定再也不会对这个铁盒子产生畏惧,一定让你理解,让你懂! ...

  6. 一篇文章看懂@Scheduled定时器/@Async/CompletableFuture

    一篇文章看懂@Scheduled定时器/@Async/CompletableFuture @Scheduled注解解析: 1.cron:最重要的一个参数 cron表达式[秒] [分] [小时] [日] ...

  7. 一篇文章读懂MySQL的各种联合查询

    一篇文章读懂MySQL的各种联合查询 联合查询是指将两个或两个以上的表的数据根据一定的条件合并在一起! 联合查询主要有以下几种方式: 全连接:将一张表的数据与另外一张表的数据彼此交叉联合查询出来 举例 ...

  8. c++ 计算正弦的近似值_一篇文章搞懂正弦保真性

    本文介绍数字信号处理中"正弦保真性"这一概念,想要更好地理解本文所述内容,建议读者先阅读<一篇文章搞懂卷积>. 正弦保真性定义 一个正弦信号作为线性时不变系统的输入时, ...

  9. c++ socket线程池原理_一篇文章看懂 ThreadLocal 原理,内存泄露,缺点以及线程池复用的值传递问题...

    编辑:业余草来源:https://www.xttblog.com/?p=4946 一篇文章看懂 ThreadLocal 原理,内存泄露,缺点以及线程池复用的值传递问题. ThreadLocal 相信不 ...

  10. 一篇文章搞懂filebeat(ELK)

    一篇文章搞懂filebeat(ELK) https://www.cnblogs.com/zsql/p/13137833.html 目录 一.filebeat是什么 1.1.filebeat和beats ...

最新文章

  1. 论计算机的创新性,论计算机专业教学创新探索
  2. 无人系统自主性研究综述
  3. Metrics-server插件安装配置
  4. java两二叉树相同_java – 最有效的方式来测试两个二叉树的相等性
  5. 设计模式:代理模式是什么,Spring AOP还和它有关系?
  6. Android—显示窗口调用相机与相册
  7. PHP从零开始--数据库
  8. ajax添加和删除数据,ajax 添加 更新 删除数据库
  9. 天书夜读:从汇编语言到Windows内核编程笔记(3)
  10. vue-video-player,切换页面时控制台报错:TypeError: this.el_.vjs_getProperty is not a function解决方案
  11. iphone双重认证关闭不了怎么办_苹果手机双重认证怎么关闭-互盾苹果恢复精灵...
  12. 小程序云开发添加html页面,微信小程序云开发js抓取网页内容
  13. 以物理弦理论的角度浅理解悖论
  14. Mysql主从复制+读写分离
  15. 接入paypal的步骤
  16. C++实现高并发Web服务器
  17. 洛谷2448 无尽的生命[树状数组 离散化]
  18. 9.7 9.7 9.7
  19. 全能PDF编辑神器:PDFelement Pro Mac中文版
  20. java mysql查询试题_java 面试题三十二 mysql查询面试题

热门文章

  1. python算法详解豆瓣_豆瓣评分9.0以上的编程书,了解一下?
  2. Google完整安装包下载
  3. html用什么打开swf文件怎么打开,swf文件用什么打开,详细教您打开swf文件的操作...
  4. LinuxCNC的能做什么
  5. 关于GetTickCount函数的用法
  6. windows oracle补丁包,Windows下oracle打补丁步骤
  7. 无法启动此程序因为计算机丢失uplay,Uplay登录不上咋办?Uplay登录不上的解决方法...
  8. 渗透之——Metasploit命令及模块
  9. 11-411/611NLP Lecture 4.Words and Morphology
  10. 《物联网Android程序开发案例式教程》Demo1:线性布局