美文网首页
APP自动化测试之ADB妙用

APP自动化测试之ADB妙用

作者: 程序员阿沐 | 来源:发表于2021-05-13 15:25 被阅读0次

    本节大纲

    • 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妙用

          本文链接:https://www.haomeiwen.com/subject/cetxjltx.html