指点成金-最美分享吧

登录

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

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了测试人员一定要懂的ADB操作,赶紧来看一看~相关的知识,希望对你有一定的参考价值。

前言

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

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

一些使用ADB命令的场景

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

   >>> adb devicesList of devices attachedPFT4PBLF75GQHYBM        deviceemulator-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 versionAndroid Debug Bridge version 1.0.40Version 4986621Installed 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)模拟滑动解锁

# 200 1000 200 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标adb shell input swipe 200 1000 200 500

6)输入文本

adb shell input text airtest

4.查看设备信息

1)查看设备型号

>>> adb -s PFT4PBLF75GQHYBM shell getprop ro.product.modelOPPO A83

2)查看屏幕分辨率

 >>> adb -s PFT4PBLF75GQHYBM shell wm sizePhysical size: 720x1440

3)查看Android系统版本

>>> adb -s PFT4PBLF75GQHYBM shell getprop ro.build.version.release7.1.1

5.更多ADB命令详解

想了解更多详细的ADB操作的同学,我们推荐一个群:785128166,大家可以在群内积极讨论。

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指令来传就行了。

软件测试资源分享:

  • 软件测试零基础必学

  • 功能测试+接口测试

  • 自动化测试+性能专项链接

  • 安全测试+测试开发平台

有需要的小伙伴可以加群:642830685,获取资料验证码!

精彩推荐:

在职阿里6年,一个29岁女软件测试工程师的心声

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档…

腾讯二面:web测试问题被虐哭了,直到学长给了我这些知识点…

以上是关于测试人员一定要懂的ADB操作,赶紧来看一看~的主要内容,如果未能解决你的问题,请参考以下文章