测试人员一定要懂的ADB操作,赶紧来看一看~

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 测试人员一定要懂的ADB操作,赶紧来看一看~

前言



ADB,即 Android Debug Bridge (安卓调试桥)。它就是一个命令行窗口,用于通过电脑端与模拟器或者真机设备进行交互。


对于Android开发和测试人员来说,它都是不可替代的强大工具。所以今天,我们将跟同学们一起来聊一聊一些常用的ADB操作和Airtest给我们封装好的一些ADB接口。


一些使用ADB命令的场景



作为一名测试人员,相信大家对使用ADB的场景都不陌生了。比如在做真机或者模拟器测试之前,我们常用 adb devices 命令去查看被测设备是否已经跟我们的电脑建立了连接:


>>> adb devices
List of devices attached
PFT4PBLF75GQHYBM        device
emulator-5554   device
复制代码


再比如,我们在使用Airtest进行测试自动化时,经常遇到ADB版本冲突的报错:


raise AdbError(stdout, stderr)
airtest.core.error.AdbError: stdout[] stderr[adb server version (36) doesn't match this client (40); killing...
could not read ok from ADB Server
复制代码


而我们不清楚电脑里面那么多ADB,究竟哪些是40版本,哪些是36版本时,我们就可以使用 adb version 查看当前的ADB版本,然后将电脑里面所有的ADB替换成同一个版本,从而解决这个版本冲突的问题:


>>> adb version
Android Debug Bridge version 1.0.40
Version 4986621
Installed as C:\Users\xiaojuan\adb.exe
复制代码


常用的ADB操作及使用示例



当然,除了上面已经提到的查询已连接的设备/模拟器命令 adb devices, 和查看ADB版本的命令adb version ,ADB操作可以做的事情还非常多:


1.应用管理


1)查看应用列表


# 查看设备上的所有应用
adb shell pm list packages
# 查看设备上的第三方应用
adb shell pm list packages -3
# 查看设备上的系统应用
adb shell pm list packages -s
复制代码


2)安装APK


adb install "D:/demo/tutorial-blackjack-release-signed.apk"
复制代码


3)卸载应用


adb uninstall com.netease.cloudmusic
复制代码


4)查看应用详细信息


adb shell dumpsys package com.netease.cloudmusic
复制代码


2.文件管理


1)复制设备里的文件到电脑


# adb pull <设备里的文件路径> [电脑上的目录]
adb pull /sdcard/sr.mp4 ~/tmp/
复制代码


2)复制电脑里的文件到设备


# adb push <电脑上的文件路径> <设备里的目录>
adb push ~/sr.mp4 /sdcard/
复制代码


3.模拟按键输入


1)模拟电源键: adb shell input keyevent 26

2)模拟HOME键: adb shell input keyevent 3

3)模拟返回键: adb shell input keyevent 4

4)点亮/熄灭屏幕:


# 点亮屏幕
adb shell input keyevent 224
# 熄灭屏幕
adb shell input keyevent 223
复制代码


5)模拟滑动解锁


# 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标
adb shell input swipe 300 1000 300 500
复制代码


6)输入文本


adb shell input text airtest
复制代码


4.查看设备信息


1)查看设备型号


>>> adb -s PFT4PBLF75GQHYBM shell getprop ro.product.model
OPPO A83
复制代码


2)查看屏幕分辨率


>>> adb -s PFT4PBLF75GQHYBM shell wm size
Physical size: 720x1440
复制代码


3)查看Android系统版本


>>> adb -s PFT4PBLF75GQHYBM shell getprop ro.build.version.release
7.1.1
复制代码


5.更多ADB命令详解


想了解更多详细的ADB操作的同学,我们推荐大家阅读这篇GitHub文档:github.com/mzlogin/awe…


Airtest封装好的ADB接口及使用示例



在Airtest库中,大部分的ADB操作我们已经帮大家封装好了,所以同学们可以不用再单独去执行ADB命令。


举个简单的例子,利用Airtest封装好的ADB接口打印设备序列号和设备所有的第三方应用:


网络异常,图片无法展示
|


可以看到,我们只需要调用一些封装好的airtest接口,即可替代完整的ADB命令,另外在log查看窗的运行日志中,我们还可以看到这个接口实际执行的ADB命令:


# android.get_default_device()对应的ADB命令
adb.exe devices
# android.list_app(third_only=True)对应的ADB命令
adb.exe -s PFT4PBLF75GQHYBM shell pm list packages -3
复制代码


另外Airtest还有很多常用的封装好的ADB接口:


1)返回应用的完整路径:path_app()


android = Android()
android.path_app("com.netease.cloudmusic")
复制代码


2)检查应用是否存在于当前设备上:check_app()


android = Android()
android.check_app("com.netease.cloudmusic")
复制代码


3)停止应用运行:stop_app()


stop_app("com.netease.cloudmusic")
# 启动应用:start_app()
start_app("com.netease.cloudmusic")
# 清除应用数据:clear_app()
clear_app("com.netease.cloudmusic")
复制代码


4)安装应用:install_app()


install(r"D:\demo\tutorial-blackjack-release-signed.apk")
# 卸载应用:uninstall_app()
uninstall("org.cocos2dx.javascript")
复制代码


5)关键词操作:keyevent()


keyevent("HOME")
keyevent("POWER")
复制代码


6)唤醒设备:wake()


wake()
复制代码


7)返回HOME:home()


home()
复制代码


8)文本输入:text()


text("123")
复制代码


9)检查屏幕是否打开:is_screenon()


android = Android()
android.is_screenon()
复制代码


10)检查设备是否锁定:is_locked()


android = Android()
android.is_locked()
复制代码


11)获取当前设备的分辨率:get_current_resolution()


android = Android()
android.get_current_resolution()
复制代码


12)其它adb shell命令:shell()


shell("ls")
shell("pm list packages -3")
复制代码


网络异常,图片无法展示
|


实际上,airtest的 shell() ,就是帮忙补充了 adb -s 手机序列号 shell 这一部分,后面的内容同学们就按正常shell指令来传就行了。


13)更多Airtest封装好的ADB接口介绍


若同学们需要了解更多详细的Airtest封装好的ADB接口介绍,可以到你本地的Airtest库里面查找这个文件查看:airtest/core/android/android.py

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
5月前
全志平台A40I GPIO操作:adb通过debugfs控制GPIO
全志平台A40I GPIO操作:adb通过debugfs控制GPIO
118 0
|
4月前
|
jenkins 测试技术 持续交付
30个接口自动化测试面试题,赶紧收藏
接口自动化测试是使用工具验证接口功能、性能和安全性的自动化过程。它能提升测试效率,减少人工工作量,及时发现问题。常见工具包括Postman、SoapUI和JMeter。测试涉及需求分析、测试计划、用例设计、脚本编写、执行、报告生成及问题跟踪。测试用例涵盖输入数据、预期结果等,脚本包含请求和响应细节。断言验证接口正确性,数据驱动测试使用多数据验证,性能测试检查响应时间等,安全测试关注认证和加密,Mock测试模拟数据,集成测试验证接口交互,回归测试确保修改未破坏原有功能,异常处理确保测试稳定性,并发和压力测试检查系统负载,持续集成通过工具如Jenkins保证软件质量。
141 3
|
5月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之在云数据仓库ADB中,GROUP BY操作中出现NULL值,如何解决
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5月前
Appium自动化常用adb操作封装
Appium自动化常用adb操作封装
57 0
|
存储 编译器 C++
【C++要笑着学】vector 常用接口介绍 | 遍历操作 | 空间操作 | 增删查改(一)
本章开始讲解 vector,首先对 vector 进行介绍,然后讲解 vector 常用的接口。像 emplace 等涉及右值引用的接口,我们等后期讲C++11的时候再作讲解。话不多说,直接开讲。
222 1
【C++要笑着学】vector 常用接口介绍 | 遍历操作 | 空间操作 | 增删查改(一)
|
SQL 监控 前端开发
标准回答奉上!软件测试面试的这些话术赶紧拿走
软件测试是一个复杂且重要的技术岗位,因此,大多数互联网企业在面试时,都会严谨对待每一个面试者。 而,作为即将去进行面试测试人来说,想要在面试中,沉着稳定地回答好面试官们提出的问题,前期的软件测试面试话术准备就少不了。
315 0
|
存储 算法 C++
【C++要笑着学】vector 常用接口介绍 | 遍历操作 | 空间操作 | 增删查改(二)
本章开始讲解 vector,首先对 vector 进行介绍,然后讲解 vector 常用的接口。像 emplace 等涉及右值引用的接口,我们等后期讲C++11的时候再作讲解。话不多说,直接开讲。
117 0
【C++要笑着学】vector 常用接口介绍 | 遍历操作 | 空间操作 | 增删查改(二)
|
SQL Shell Linux
adb命令详解(二)——手机缺失sqlite3时操作数据库的多种解决方案
adb命令详解(二)——手机缺失sqlite3时操作数据库的多种解决方案
340 0
adb命令详解(二)——手机缺失sqlite3时操作数据库的多种解决方案
|
人工智能 算法 C++
c++ stl 的 vector 相关操作(交集并集)
c++ stl 的 vector 相关操作(交集并集)
283 0
c++ stl 的 vector 相关操作(交集并集)
|
移动开发 小程序 测试技术
微信小程序和公众号H5自动化测试技巧,赶紧GET!
目前市面上,被大家用来做移动端App UI自动化测试工具最为常见的当属: Appium Airtest 很多小伙伴在刚接触这两款工具做App UI自动化测试时,难免会问到,他们能支持微信小程序或者微信公众号H5页面的自动化测试吗?答案显然是肯定的,但需要做一些特殊的设置。
1052 0
微信小程序和公众号H5自动化测试技巧,赶紧GET!
下一篇
无影云桌面