• appium介绍


    移动自动化测试工具appium。appium目前在移动UI自动化测试领域占有重要地位,不仅支持Android和IOS两大平台,还支持多种编程,因而得到广泛的应用。

    移动应用类型

    移动应用类型主要分为以下几类

    • Native App:原生应用。
    • Mobile Web App:移动Web应用。
    • Hybrid App:混合应用。
      图12-1 移动应用类型移动应用类型
    1. Native App
      Native App(原生应用)是为特定移动设备或平台开发的应用程序(如Android、iOS或Windows)。例如,iPhone应用程序是用Swift写的,Android应用程序是用Java写的。原生应用的可靠性极高,因为它们使用的是底层系统的架构和设备的内置功能。
    2. Mobile Web App
      Mobile Web App(移动应用)是通过移动浏览器访问的应用程序,可以通过内置浏览器轻松访问。例如,iOS上的Safari,Android上的Chrome。它们主要使用HTML5、JavaScript等技术开发,可以提供定制功能。Mobile Web App基本来自服务器,并且不能在设备的任何地方离线存储。
    3. Hybrid App
      Hybrid App(混合应用)主要使用网络技术(HTML5、CSS和JavaScript)开发,但嵌入在App中运行,从而感觉它像是原生应用程序。
      对于拥有网页的公司来说,混合应用最受青睐。这些公司通常将混合应用作为封装来构建网页。PhoneGap和Sencha Touch等工具可以为用户构建一个混合应用,混合应用可以通过各自的应用程序商店下载。

    appium支持以上三种类型应用(Native App、Mobile Web App和Hybrid App)的自动化测试。

    appium的架构

    appium基于客户端/服务器架构。服务器执行给定顺序的动作:
    (1)从客户端接收连接并启动会话。
    (2)侦听发出的命令。
    (3)执行这些命令。
    (4)返回命令执行状态。
    图12-2 appium工作方式appium工作方式

    1. XCUITest
      XCUITest是苹果公司于iOS9.3版本推出的自动化框架,从iOS 10开始,它是唯一的自动化框架。
      appium1.6.0使用苹果公司的XCUTest框架,它支持iOS IO/Xcode 8。appium内部使用Facebook公司的WebDriverAgent项目支持XCUTest。
      Facebook公司的WebDriverAgent项目是一个为iOS实现的WebDriver服务,用于对连接的设备或模拟器进行远程控制。通过它可以启动应用程序、执行命令(如点击、滚动)、或终止应用程序。对于较旧的iOS版本(9.3以下版本),appium使用Apple的UIAutomation库,典型用法是在所需功能中传递以下内容:
      automationName:XCUTest
      UIAutomation库与移动设备或模拟器内运行的bootstrap.js进行通信,执行由appium客户端收到的命令。
      图12-3 iOS平台工作方式iOS平台工作方式

    2. UIAutomator2
      UIAutomator2是基于Android的自动化框架,允许用户构建和运行UI测试。appium使用Google公司的UIAutomator2在真实设备或模拟器上执行命令。UIAutomator2是Google公司针对App设计的UI自动化测试框架。典型的用法是在所需的功能中传递以下内容:
      automationName:uiautomator2
      在appium1.6版本中,appium为UIAutomator2提供支持。appium使用appium-android-bootstrap模块与UIAutomator2进行交互。它允许将命令发送到设备,使用Android的UIAutomator2测试框架在真实设备上执行命令。
      当appium客户端请求创建新的AndroidDriver会话时,appium客户端会将所需的功能传递给appium节点服务器。首先,UIAutomator2驱动程序模块创建会话。然后,在连接的Android设备上安装UIAutomator2服务器apk。接着启动Netty服务器。在Netty服务启动后,UIAutomator2服务器在设备上侦听请求并做出响应。
      图12-4 Android平台工作方式Android平台工作方式
      注意:以上关于appium工作方式的介绍摘自appium essentials一书。

    appium的工作过程

    图12-5 appium的工作过程appium的工作过程

    1. appium Client
      appium Client支持多种语言/框架,它针对主流的编程语言分别开发了相应的appium测试库,我们可以选择自己熟悉的语言或框架来编写appium测试脚本。appium Client支持的语言/框架如表所示。
    语言/框架 Github项目地址
    ruby https://github.com/appium/ruby_lib
    Python https://github.com/appium/python-client
    Java https://github.com/appium/java-client
    JavaScript(Node.js) https://github.com/admc/wd
    Objective C https://github.com/appium-boneyard/selenium-objective-c
    PHP https://github.com/appium-boneyard/php-client
    C#(.NET) https://github.com/appium/appium-dotnet-driver
    Robot Framework https://github.com/serhatbolsu/robotframework-appiumlibrary
    1. appium Server
      appium需要在PC上启动一个Server,监听客户端自动化测试的运行,并将请求发送到对应的移动设备或模拟器中运行。
      appium Server支持macOS和Windows两大平台。我们可以在不同的平台编写并运行appium自动化测试。需要特别说明的是,appium Server项目已经停止更新,由appium Desktop替代。

    2. 移动设备
      移动设备用于运行appium自动化测试的环境,既可以是一台连接到PC的手机,也可以是在PC上运行的iOS模拟器或Android模拟器。

  • 相关阅读:
    【Prince2科普】衡量绩效的六大要素
    项目组合管理、项目集管理、项目管理和组织级项目管理之间的关系
    javascript中关系运算符的整理
    javascript中数组的基础----length和元素的求和
    回调函数和递归函数的应用
    谷歌浏览器打开时显示的是搜狗
    二级导航栏的立体显示
    利用css写的中英文切换的导航栏菜单
    javascript中的对象浅谈
    javascript中逻辑运算符总结
  • 原文地址:https://www.cnblogs.com/TD1900/p/14798573.html
Copyright © 2020-2023  润新知