移动端测试辅助工具 - adb
1. 概念:
adb(android debug bridge)是android提供的基于CS架构的命令行调试工具,使PC与安卓设备之间实现通信
2. 基础原理:
交互图:

主要由三部分组成:
adb client: 运行在PC端,发送adb命令,就相当于新建了客户端
adb server: 运行在PC端,默认绑定本地TCP端口5037,一方面监听来自客户端的命令,另一方面识别并链接安卓设备实现与daemon之间的通信
adb daemon: 运行在android设备端的守护进程,执行来自client发来的adb命令,完成对设备的操作
3. 常用命令:
dumpsys指令:获取服务信息与系统诊断
# 获取当前app的包名和Activity(页面名称)
<1> 点击进入该app
<2> 执行adb shell dumpsys window | findstr mCurrentFocus
adb shell dumpsys cpuinfo # 查看系统cpu使用情况
adb shell dumpsys meminfo # 查看系统内存使用情况
adb shell dumpsys battery # 查看系统电池使用情况
pm指令(packages manager):获取android设备上的应用信息
adb shell pm list packages #列出所有的应用
adb shell pm list packages -3 #列出所有的第三方应用
adb shell pm list packages instrumentation #列出所有的测试应用 (Android的官方测试框架是instrumentation)
adb shell pm list packages | findstr xxx #列出所有包含关键字xxx的应用包名
am指令(activity manager): 活动管理
adb shell am start -n 包名/activity名 #打开指定应用的指定页面
adb shell am force-stop 包名 #停止应用
input指令:模拟用户行为操作
adb shell input keyevent {keycode} #执行keyevent事件, keycode较多参考官方:https://developer.android.com/reference/android/view/KeyEvent
adb shell input tab x y #点击指定坐标(x,y)
adb shell input swip x1 y1 x2 y2 #从(x1,y1)滑动到(x2,y2)
安卓设备与电脑文件传输指令:
path1:文件在Android设备上的路径
path2: 文件在PC本地的路径
adb pull path1 path2 #从Android设备中导出文件到PC端
adb push path2 path1 #将PC上的文件导入android设备中
monkey指令(稳定性测试):
(1) Monkey程序由Android系统自带的java程序, 在Android文件系统中的存放路径是:/system/framework/monkey.jar
(2) Monkey.jar 程序是由一个名为 “monkey” 的Shell脚本来启动执行,shell脚本在 Android 文件系统中的存放路径是:/system/bin/monkey
(3) 触发指令: adb shell monkey {+参数}, 范例如下:
I. adb shell monkey 100 随机测试100次
II. adb shell monkey -p 包名 100 指定执行软件100次
III. adb shell monkey -p com.jd.jrapp --ignore-crashes --ignore-timeouts --ignore-security-exceptions -s 100 --throttle 300 -v -v -v 1000 > ./monkey_log.txt
参数说明:
-v 默认级别,仅提供启动、测试完成和最终结果等少量信息
-v -v 提供较为详细的日志,包括每个发送到Activity的事件信息
-v -v -v 提供最详细的日志,包括了测试中选中/未选中的Activity信息
-s 用于指定伪随机数生成器的seed值
--throttle 用于指定用户事件的操作间隔时延,单位是毫秒
--ignore-timeouts 忽略超时错误
--ignore-crashes 忽略crash
--ignore-security-exceptions忽略许可错误
注意:命令中的findstr和grep作用相同均是过滤
区别:findstr用于windows环境命令行,grep用于linux环境命令行 (执行adb shell之后就进入了设备的安卓内核,即linux环境)
4. 安卓常见问题:
ANR: 系统无响应
可能原因:数据量太大,导致前端页面各种计算超时
日志获取:data/anr
crash: 闪退
可能原因:内存不足,版本不兼容等
日志获取:adb logcat -c # 先清理一下日志
adb logcat -b crash >error.txt # 再操作闪退步骤后,输出干净的闪退日志
移动端测试辅助工具 - adb的更多相关文章
- 【分享】Vue 资源典藏(UI组件、开发框架、服务端、辅助工具、应用实例、Demo示例)
Vue 资源典藏,包括:UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和 ...
- 腾讯的一个移动端测试小工具GT
上周末参加了Ministar北京的测试聚会.腾讯的MIG专项测试组的组长给大家介绍了他们最近开发出来的手机测试工具GT. 下面是GT的官方说明: GT(随身调)是APP的随身调测平台,它是直接运行在手 ...
- Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例
Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 ...
- flask模板的基本用法(定界符、模板语法、渲染模板),模板辅助工具(上下文、全局对象、过滤器、测试器、模板环境对象)
flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成. 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTM ...
- Go测试,功能测试,性能测试,测试辅助,go test 工具,高级测试,IO相关测试,黑盒测试,HTTP测试,进程测试
go命令教程: http://wiki.jikexueyuan.com/project/go-command-tutorial/0.5.html Go测试 第一个测试 “Hello Test!” 首先 ...
- 端到端测试工具--testcafe
写在前面 随着业务的增加,复杂性的增加,我们更需要保证页面不能出错,之前需要每次上线之前需要每次人工测试,如果有好多改动,为保证业务不出错,需要耗费更多的时间来测试,所以我们需要写一些测试来保证业务的 ...
- Appium移动端测试--基础预热
目录 Android自动化环境准备 需要安装的软件: Appium多端架构与自动化 Android自动化前提依赖: 获取App的信息: Android常用命令 adb shell 常用命令列表: An ...
- 【Xamarin挖墙脚系列:Android最重要的命令工具ADB】
原文:[Xamarin挖墙脚系列:Android最重要的命令工具ADB] adb工具提供了很好的基于命令的对系统的控制. 以前说过,安卓的本质是运行在Linux上的虚机系统.在Linux中,对系统进行 ...
- APP测试时常用adb命令
ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(手机),故在其实工作可以给我们 ...
- 最新:百度春节抢百万游戏--汤圆向前冲--辅助工具v1.0.0.2
https://www.cnblogs.com/Charltsing/p/ADBJumpTY.html 联系QQ:564955427 本程序为Windows版,不要在手机里面打开. 汤圆向前冲辅助工具 ...
随机推荐
- IOS弹出系统键盘后,页面不恢复
<script> var u = navigator.userAgent, app = navigator.appVersion var isIOS = !!u.match(/\(i[^; ...
- phpmyadmin scripts/setup.php 反序列化漏洞(WooYun-2016-199433)(Kali)
phpmyadmin 2.x版本中存在一处反序列化漏洞,通过该漏洞,攻击者可以读取任意文件或执行任意代码. 通过vulhub靶场进行复现操作 1.首先搭建靶场环境(采用Kali) cd vulhu ...
- go结构体打印格式化成json
需要用到json.MarshalIndent 方法 官方的注释是: MarshalIndent类似于Marshal,但应用Indent来格式化输出. 输出中的每个JSON元素都将以一个新行开始,该新行 ...
- HTTP请求向服务器传参方式
请求HttpRequest 提示: 用户发送请求时携带的参数后端需要使用,而不同的发送参数的方式对应了不同的提取参数的方式 所以要学会如何提取参数,我们就需要先了解前端传参数有哪些方式 回想一下,利用 ...
- fpga 通过vga模块使电脑显示图片
对vga模块搞了好几天,vga接口时序不难,就是行计数,列计数,对应到每一个像素上去.这里我先把vga控制模块的程序付上.采用的是小梅哥的程序.屏幕是800X600,配置的时钟是40M.注意改变屏幕尺 ...
- 通过Windows定时任务执行Python脚本给钉钉群发送消息
前提:已经存在有成功发送钉钉群机器人消息的python脚本,参考上一篇Python调用钉钉群机器人发送群消息 Windows定时任务设置 1.本机是Win7系统:控制面板->系统和安全-> ...
- redies概述
1.redis下载路径 Windows:https://github.com/tporadowski/redis/releases Linux:http://redis.io/download 2.安 ...
- nRF51822蓝牙学习 进程记录 3:蓝牙协议学习--简单使用
三天打鱼两天晒网,又学起了蓝牙,不过还好的是终于开始学习蓝牙协议部分了. 但是,一看起来增加了蓝牙协议的例程,真是没头绪啊.本身的教程资料解说太差了,看青风的蓝牙原理详解也是一头雾水. 经过不断地看各 ...
- django_模板层的过滤器和继承
**************************************************************************************************** ...
- 第十二组 -摩天脆脆冰淇淋队-第四次团队作业:Git实战
这个作业属于哪个课程 至诚软工实践F班 - 福州大学至诚学院 - 班级博客 - 博客园 (cnblogs.com) 这个作业要求在哪里 第四次团队作业:Git实战 - 作业 - 至诚软工实践F班 - ...