APP自动化测试之ADB妙用

本节大纲

  • ADB简介及安装
  • ADB命令及input命令详解
  • Python+ADB实现App自动化测试实战

为什么称之为妙用?

因为一般的话ADB我们是跑一下Monkey或者查看一下日志,就比如说我们测试APP的时候可能有一些错误吗,不能及时查看,或者要测试一些性能上兼容的问题,我们就会用到ADB查看log日志,用得会比较多。

ADB其实也能通过它来进行一个自动化测试,是它被疏忽的一个功能。

那么什么是ADB呢?

01.ADB简介及安装

什么是ADB?

  • ADB全称为Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是Android设备。
  • ADB也是Android SDK中的一个工具,可以直接操作管理Android模拟器或者真实的Android设备。

为什么要用ADB?

  • ADB可以直接操作管理手机模拟器或者真实的手机设备(如三星手机)。它的主要功能有:
    1.运行设备的shell(命令行)
    2.管理模拟器或设备的端口映射
    3.计算机和设备之间上传/下载文件
    4.可以对设备的应用进行卸载安装等

  • 其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作!

JDK安装&环境变量配置

1.安装:默认安装
2.环境变量配置

  • 新建JAVA_HOME:安装路径
  • 新建CLASSPATH
    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  • 在path中增
    ; %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
    3.验证是否安装好
    javac java java -version
JDK安装&境变量配置

Android SDK安装与变量配置

1.下载: http://www.androiddevtools.cn/
2.安装:解压即可
3.环境变量配置

  • 新建ANDROID_HOME:解压路径
  • 在path中增加:
    .;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
    4.验证是否安装好
    android -h
Android SDK安装与变量配置

Android SDK安装与变量配置

模拟器安装

1.模拟器选择:夜神、逍遥、雷电、MuMu、蓝叠等等
2.下载:夜神模拟器: https://www.yeshen.com/
3.安装:默认安装即可,记住安装路径。后续ADB配置要用到。

模拟器安装

ADB配置

ADB是Android SDK自带的命令行工具,我们前面装好了Android SDK,所以在这只需要验证ADB能否使用就ok

进入cmd,输入adb --version,可以显示adb的版本号就表示adb环境是ok的

ADB配置

ADB连接模拟器

前提:

1.打开模拟器
2.打开模拟器的usb调试;

  • 进入设置--开发者选项--打开usb调试。

  • 如果没有开发者选项,在设置--关于平板电脑,连续点击版本号多次,直到提示您已处于开发者模式。然后就可以在设置下看到开发者选项了。


    ADB连接模拟器

ADB连接模拟器-成功

打开cmd,输入adb devices,查看设备是否连接;显示设备号和device则表示连接成功。


连接成功

连接信息解释

1.手机设备:显示设备的序列号,即b2355f8a
2.模拟器:显示ip地址和端口,即127.0.0.1:62001
3. device:已识别的设备,连接成功
4. unauthorized:没有授权,需要手机上授权后才能连接--手机上会弹出来一个授权框
5. unkown:未识别的设备--电脑上没有手机的驱动,安装一个手机助
手(豌豆荚,91助手),自动安装驱动
6.offline:离线设备--重新插拔usb

ADB连接模拟器

ADB连接模拟器-失败

打开cmd,输入adb devices,查看设备是否连接,如下图所示,则表示adb版本有问题。
原因:夜神模拟器带了一个ADB,Android SDK也有一个ADB,当两者版本不一致时就会出现如下问题

ADB连接模拟器

解决:统一ADB版本即可。

02.ADB命令及input命令详解

ADB常用指令

ADB常用指令

ADB -input事件

input可以用来模拟各种输入设备的输入操作。


ADB -input事件

ADB -input参数

部分参数说明

  1. source对应各种输入源。一般开发中都是用默认值即可。也就是说一般使用中我们的参数中并没有source。
  2. commands对应输入命令,命令中text和keyevent是通用的; tap和swipe适用于触摸屏;而press和roll用于有触摸球的设备,由于使用的很少,因此不做说明。

ADB -input tap模拟屏幕轻触

模拟屏幕轻触(tap):主要用于模拟手指在屏幕的轻触点击。


模拟屏幕轻触

参数:
两个参数,点击的坐标
模拟在屏幕上点击的位置

ADB -input swipe模拟屏幕滑动

模拟屏幕滑动(swipe):主要用于模拟手指在屏幕的滑动。


屏幕滑动

参数:
四个参数,分别是起始位置的坐标和结束位置的坐标
模拟在屏幕上的直线滑动

ADB -input swipe模拟长按操作

模拟长按操作(swipe):主要用于模拟手指在屏幕上长按。


长按操作

参数:
五个参数,分别是起始位置的坐标和结束位置的坐标,长按时长(单位毫秒)
模拟在屏幕上的长按操作

ADB -input keyevent模拟按键

模拟按键(keyevent) :主要用于模拟键盘的输入,因此是在用键盘的地方才用得到。

模拟按键

常用按键

常用按键

OS模块

os.system(cmd):用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功。
注意:os.system是简单粗暴的执行cmd指令,如果想获取在cmd输出的内容,是没办法获到的

App实战需求

案例需求:

(相对应的视频教程公号主页点击领取资料)

用ADB+Python实现如下流程,点击桌面的开发真头条应用,进入应用后点击我的,点击登录/注册进入登录界面,在手机登录界面分别输入手机号码、验证码,点击登录。

1、点赞。防止以后找不到,想看的时候,在自己主页就能找到了,很方便;
2、关注我。让我们成为长期关系,下一篇文章会分享更多的硬核干货;
3、本文章学习资源,均可以免费分享。

就好比你看到优质的回答点个赞,表面上是为了让作者开心,实际上可以让大数据和人工智能给你推荐更多优质的干货内容~

文章首发于 微信公众号:程序员一凡 ,转载请注明出处!这样的好内容,里面还有近百篇。 谢谢你的支持!

你可能感兴趣的:(APP自动化测试之ADB妙用)