1 Appium介绍
admin
2023-02-17 01:40:02
0

1 Appium概念(官网   http://appium.io   )

  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是开源的

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 库就可以了。

以上内容转载至:https://testerhome.com/topics/14772

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。

                                           1 Appium介绍


相关内容

热门资讯

伊朗总统办公室主任:总统与革命... 新华社德黑兰5月5日电(记者陈霄 沙达提) 据伊朗塔斯尼姆通讯社5日报道,伊朗总统办公室主任哈吉·米...
人民日报:任何企图否定东京审判... 原标题:捍卫历史正义 维护国际秩序——写在东京审判开庭80周年之际钟 佳 黄惠康 《人民日报》(20...
中学生进大厂体验:1个月拿了1... 中学生进大厂体验:1个月拿了1.5万  【中学生进大厂体验:1个月拿了1.5万】2024年年初,19...
多位省委书记省长会见王传福 从... 多位省委书记省长会见王传福  【多位省委书记省长会见王传福】4月27日,河南省委书记刘宁在郑州会见比...
上海汇正财经服务费能退吗?震荡...   部分投资者关心上海汇正财经服务费能退吗,但在二季度A股震荡加剧、地缘与油价双重扰动的复杂环境下,...
市场稀缺权益来袭!从全球急难救...   现在信用卡的功能越来越细化,也越来越人性化了,比如平安银行信用卡新推出的以“一生守护 十分平安”...
美官员:美商船穿越霍尔木兹海峡... 当地时间5月5日,央视记者获悉,两艘搭载美军安全队员的美国商船在通过霍尔木兹海峡期间曾遭伊朗袭击。美...
日本参议员:对俄制裁损害日本国... 正在俄罗斯访问的日本国会参议员铃木宗男5月5日对媒体表示,日本对俄制裁同样损害了日本国家利益。铃木说...
美国务卿称美国正推进对伊朗“极... △美国国务卿鲁比奥(资料图)当地时间5月5日,美国国务卿鲁比奥在媒体简报会上称,美军正在霍尔木兹海峡...
伊朗外交部:敦促美方在外交问题... △伊朗外交部发言人巴加埃(资料图)据伊朗方面5月5日消息,伊朗外交部发言人巴加埃就当前伊美谈判进程表...