Appium框架原理概述

发表于:2019-2-19 20:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:AI智能浪人    来源:思否

  1. Appium框架概况
  Appium是一个开源的、跨平台的自动化测试框架,该框架适用于Native Application、Mobile Web
  Application或Hybrid Application的自动化测试。Native
  Application指的是基于智能手机本地操作系统如iOS和Android并使用原生编程语言(如Android上使用Java)编写并运行的第三方应用程序。Mobile
  Web Application指的是基于Web的系统和应用。Hybrid
  Application指的是在手机原生应用程序中嵌入了Webview,通过Webview可以访问网页的内容。
  2. Appium架构原理
 
  Appium架构原理
  Appium是在手机操作系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具分别如下:Android(版本>4.2):UIAutomator, Android 4.2之后系统自带的UI自动化测试工具。Android(版本≤4.2):Selendroid,基于Android Instrumentation框架实现的自动化测试工具。 iOS:UIAutomation, iOS系统自带的UI自动化测试工具。
  Appium的架构原理如图所示,由客户端(Appium Client)和服务器(Appium
  Server)两部分组成,客户端与服务器端通过JSON Wire Protocol进行通信。
  1)Appium服务器:Appium服务器是Appium框架的核心。它是一个基于Node.js实现的HTTP服务器。Appium服务器的主要功能是接受从Appium客户端发起的连接,监听从客户端发送来的命令,将命令发送给bootstrap.jar(iOS手机为bootstrap.js)执行,并将命令的执行结果通过HTTP应答反馈给Appium客户端。
  (2)Bootstrap.jar:Bootstrap.jar是在Android手机上运行的一个应用程序,它在手机上扮演TCP服务器的角色。当Appium服务器需要运行命令时,Appium服务器会与Bootstrap. jar建立TCP通信,并把命令发送给Bootstrap.jar; Bootstrap.jar负责运行测试命令。
  (3)Appium客户端:它主要是指实现了Appium功能的WebDriver协议的客户端Library,它负责与Appium服务器建立连接,并将测试脚本的指令发送到Appium服务器。现有的客户端Library有多种语言的实现,包括RubyPython、Java、JavaScript(Node. js)、Object C、PHP和C#。Appium的测试是在这些Library的基础上进行开发的。
  (4)Session:Appium的客户端和服务端之间进行通信都必须在一个Session的上下文中进行。客户端在发起通信的时候首先会发送一个叫作“Desired Capabilities”的JSON对象给服务器。服务器收到该数据后,会创建一个session并将session的ID返回到客户端。之后客户端可以用该session的ID发送后续的命令。
  (5)Desired Capabilities:Desired Capabilities是一组设置的键值对的集合,其中键对应设置的名称,而值对应设置的值。Desired Capabilities主要用于通知Appium服务器建立需要的Session,其中一些设置可以在Appium运行过程中改变Appium服务器的运行行为。
  Appium在Android上基于UIAutomator实现了测试的代理程序(Bootstrap.jar),在iOS上基于UIAutomation实现了测试的代理程序(Bootstrap.js)。当测试脚本运行时,每行WebDriver的脚本都将转换成Appium的指令发送给Appium服务器,而Appium服务器将测试指令交给代理程序,将由代理程序负责执行测试。比如脚本上的一个点击操作,在Appium服务器上都是touch指令,当指令发送到Android系统上时,Android系统上的Bootstrap.jar将调用UIAutomator的方法实现点击操作;而当指令发送到iOS系统上时,iOS的Bootstrap.js将调用UIAutomation的方法实现点击操作。由于Appium有了这样的能力,同样的测试脚本可以实现跨平台运行。

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号