zoukankan      html  css  js  c++  java
  • Appium介绍

    1 Appium概念

    1)概念:appium是一个自动化测试开源工具,支持IOS、Android平台上的原生应用、web应用和混合应用

    2)原生应用:是指使用ios或者android编写的应用

    web应用:是指移动浏览器访问的应用,即H5页面

    混合应用:原生代码和web内容交互,即APP内嵌的H5页面

    2 Appium理念

    1)无需为了自动化而重新编译或者修改你的应用

    appium真正的工作引擎是第三方自动化框架(例如ios的Uiautomation,Android 4.2+的UiAutomator,Android 2.3+的Instrumentation->Instrumentation由单独项目Selendroid支持),这样就不需要再你的应用中植入aooium相关或者第三方的代码。

    2)你不必局限于某种语言或者框架来写和运行测试脚本

    将上述的第三方框架封装成一套API,webDriver(即Selenium WebDrier)。指定了客户端到服务端的协议。使用这种客户端-服务端架构,就可以使用任何语言来编写客户端,向服务端发送HTTP请求。客户端就是简单的HTTP客户,你可以使用任何测试套件或者测试框架(目前已经实现了大多数流行语言版本的客户端)编写刻画段的代码。换句话说:Appium和webDriver客户端不是技术意义上的测试框架,而是“自动化库”,你可以在你的测试环境中随意使用这些自动化库。

    3)一个移动自动化的框架不应该在接口上重读造轮子(移动自动化的接口应该统一)

    事实上webDriver已经成为web浏览器自动化的标准,也成了W3C的标准,所以Appium扩充了webDriver的协议,在原有的基础上添加移动自动化相关的API

    4)无论精神上还是名义上,都必须开源

    appium是开源的

    电脑刺绣绣花厂 http://www.szhdn.com 广州品牌设计公司https://www.houdianzi.com

    3 Appium几个重要的概念

    1)C/S架构

    Appium 的核心是一个 web 服务器,它提供了一套 REST 的接口。它收到客户端的连接,监听到命令,接着在移动设备上执行这些命令,然后将执行结果放在 HTTP响应中返还给客户端。事实上,这种客户端/服务端的架构给予了许多的可能性:比如我们可以使用任何实现了该客户端的语言来写我们的测试代码。比如我们可以把服务端放在不同 的机器上。比如我们可以只写测试代码,然后使用像 Sauce Labs 这样的云服务来解释命令。

    2)Session

    自动化始终围绕一个session进行,客户端初始化一个seesion(会话)来与服务端交互,不同的语言有不同的实现方式,但是他们最终都是发送为一个POST请求给服务端,请求中包含一个jsON对象,被称作“desired capabilities”。此时,服务端就会开启一个自动化的 session,然后返回一个 session ID,session ID将会被用户发送后续的命令。

    3)Desired Capabilities

    Desired capabilities 是一些键值对的集合 (比如,一个 map 或者 hash),客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。比如,我们可以把platformName 设置为 iOS,告诉 Appium 服务端,我们想要一个iOS 的 session,而不是一个 Android 的。我们也可以设置 safariAllowPopups 为 true,确保在 Safari 自动化 session 中,我们可以使用 JavaScript 来打开新窗口。参见 capabilities 文档,查看完整的 capabilities 列表。

    4)Appium Server

    Appium server 是用 Node.js 写的。我们可以用源码编译或者从 npm 直接安装。

    5) Appium 服务端

    Appium 服务端有很多语言库 Java, Ruby, Python, php, JavaScript 和 C#,这些库都实现了 Appium 对 WebDriver 协议的扩展。当使用 Appium 的时候,你只需使用这些库代替常规的 WebDriver 库就可以了。

     

    4 Appium工作原理

    Appium是Node.js写的http服务器,用来创建和控制webDriver的session。

    Appium服务器接收 json 格式的request请求,根据不同平台对这些请求采取不同的处理方式。我们执行脚本时,脚本会转换成json数据,通过http请求发送给Appium Server,Appium Server将请求转换成command,发送给平台工具(ios:instruments;android:uiautomator)在设备上查找Appium 推送上来的bootstrap.js(bootstrap.js 是Appium架构 放在手机端的一个服务器),来执行这些命令。执行完后,客户端将结果和log发送回Appium Server。

  • 相关阅读:
    C# ref与out区别
    天气预报
    全面理解javascript的caller,callee,call,apply概念(修改版)
    SQL注入案例曝光,请大家提高警惕
    sql字段保存值[1,2,3,4,5]复杂取法,收藏sql函数
    MySQL故障诊断常用方法手册(含脚本、案例)
    2021 年 8 月国产数据库排行榜:秋日胜春朝
    【墨天轮专访第二期】巨杉数据库萧少聪:重视企业长期需求,打造中国的世界级产品
    【我和达梦的故事】 有奖征文活动开始啦,万元奖品池+现金奖励等你拿!
    2021年8月国产数据库排行榜:TiDB稳榜首,达梦返前三,Kingbase进十强,各厂商加速布局云生态
  • 原文地址:https://www.cnblogs.com/xiaonian8/p/13825952.html
Copyright © 2011-2022 走看看