zoukankan      html  css  js  c++  java
  • Appium移动自动化测试-----(一)Appium介绍

    1、特点


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

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

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

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

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

    2、appium与Selenium


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

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

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

    3、支持多平台、多语言


    appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。

    appium选择了Client/Server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是appium及Selenium(WebDriver)如何做到支持多语言的原因;

    appium扩展了WebDriver的协议,没有自己重新去实现一套。这样的好处是以前的WebDriver API能够直接被继承过来,以前的Selenium(WebDriver)各种语言的binding都可以拿来就用,省去了为每种语言开发一个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/selenium-objective-c
    PHP https://github.com/appium/php-client
    C# (.NET) https://github.com/appium/appium-dotnet-driver
    RobotFramework https://github.com/jollychang/robotframework-appiumlibrary

    4、appium工作原理


    在安装和介绍appium之前,非常有必要介绍一下appium是如何工作的。

    通过上面一张图简单展示了appium的工具原理。

    首先,appium支持多语言,因为它针对流的几种语言分别开发的相应的appium库。好处就是我们可以选择自己熟悉的语言编写appium脚本。

    其次,appium支持多平台,包括MAC和Windows。它针对这两大平台开发了appium-Server。

    最后,appium又同时支持Android 和 iOS两个操作系统。

    这就使得appium变得非常灵活。

    当我在MAC平台上,通过Python(python-client )编写了一个appium自动化脚本并执行,请求会首先到 appium.dum (MAC下的appium-Server),appium-Server通过解析,驱动iOS设备来执行appium自动化脚本。

    或者,我在Windows平台上,通过Java( java-client )编写了一个appium自动化脚本并执行,请求会首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server通过解析,驱动Android虚拟机或真机来执行appium脚本。

    所以,你会看到appium的强大之处就在于此。

    5、你都需要安装什么?


    这才是你最关心的问题,使用appium都需要安装些什么?其实,从appium工作原理你就应该知道需要装什么了。

    • 编程语言

    想用 Python 的同学,点这里

    想用 Java 的同学,点这里

    • appium client

    参考 3、支持多平台、多语言 的列表,根据你选择的语言来选择对应的 appium-client。

    • appium Server

    参考 4、appium工作原理 的介绍,根据你的系统平台选择 对应的 appium-server。

    • 测试运行环境

    你需要一个Android模拟器,或 一个 Android 手机,或 一台 iPhone 手机。

    转自https://www.cnblogs.com/fnng/p/4540731.html

  • 相关阅读:
    面向接口程序设计思想实践
    Block Chain Learning Notes
    ECMAScript 6.0
    Etcd Learning Notes
    Travis CI Build Continuous Integration
    Markdown Learning Notes
    SPRING MICROSERVICES IN ACTION
    Java Interview Questions Summary
    Node.js Learning Notes
    Apache Thrift Learning Notes
  • 原文地址:https://www.cnblogs.com/kaola8023/p/8442486.html
Copyright © 2011-2022 走看看