• 安卓自动化-----常用自动化工具


    一、自动化工具

    1、Android Debug Bridge(ADB)即安卓调试桥,是Google提供的为Android编写UI测试用例的自动化工具;

    2、UIAutomator  Google提供的为Android编写UI测试用例的自动化工具;

    3、UIAotomator2   uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库;

    4、appium   跨平台的测试框架, 同时支持iOS和Android。


    二、详细介绍

    1、安卓调试桥

    ADB是一个C/S架构的应用程序,由三部分组成:
    运行在pc端的adb client:
    命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求;
    运行在pc端的adb server:
    ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上;
    运行在设备端的常驻进程adb demon (adbd):
    程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。

    2、 UiAutomator
    UiAutomator是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架,基于Accessibility服务。其最大的特点就是可以跨进程操作,可以使用UiAutomator框架提供的一些方便的API来对安卓应用进行一系列的自动化测试操作,如点击、滑动、键盘输入、长按以及常用的断言方法等。

    要使用该工具,需要满足如下条件:

    Android SDK Tools, Revision 21 or higher
    Android SDK Platform, API 18 or higher


    在Android SDK 4.3中提供了如下工具来支持UI自动化测试:

    3、UIAotomator2 

    1.环境搭建便捷
    2.UI控件识别有专业工具,可视化好
    3.UI自动化编写采用python,学习成本低
    4.UI自动化脚本运行稳定

    缺点:
    存在设备兼容性问题,如:
    华为手机,无法通过IP离线执行UI自动化
    三星S8手机微信webview页面无法识别元素

    4、appium 

    appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。

    “移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。

    “移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。

    “混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。

    重要的是,appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。

    appium与Selenium
    appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。

    appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C WebDriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。

    appium服务端定义了官方协议的扩展,为appium 用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,而不是通用的Selenium 客户端。当然,appium 客户端类库只是增加了一些功能,而实际上这些功能就是简单的扩展了Selenium 客户端,所以他们仍然可以用来运行通用的Selenium会话。

  • 相关阅读:
    ExpandoObject与DynamicObject的使用
    ManualResetEvent 线程通信
    CancellationTokenSource 取消任务
    SQL Server 每日一题--老二解析
    说说 C# 8 using 新特性
    SQL Server 每日一题--老二
    C#中的坑--浮点类型
    开胃菜解析
    开胃菜
    快速入门 Arrow 日期处理库
  • 原文地址:https://www.cnblogs.com/xietianjiao/p/13903135.html
Copyright © 2020-2023  润新知