appium架构分析

发表于:2018-7-09 16:59  作者:飘飘雪   来源:博客园

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: Appium 自动化测试工具

  一.Appium架构介绍
  官网:www.appium.io
  由SauceLab公司主持。并在Google的GATC2013会上被详细介绍。
  Appium是由nodejs的express框架写的Http Server。Appium不是它创建套新的测试框架,是将现有的优秀的框架进了集成,以Selenium WebDriver的协议(JsonWireProtocol/Restful web service)统起来. 使得这个框架满多的需求。
  Appium启动动化测试后,在被测设备上启动个server,监听来Appium server的指令。不同的平台(如IOS,Android)采不同的运和交换式。Appium将某个桩程序“侵入”平台,用于接受指令,来完成测试脚本的运行。
  特性:
  1. 跨平台, native hybrid webview(H5)
  2. 跨设备, android iOS
  3. 跨app,可以在多个app之间交互
  4. 不依赖APP开源代码(保留意见。。android Uiautomator对H5的支持需要代码支持,这里不细说)
  5. 支持Selenium WebDriver / Selenium Grid
  6. 跨语言,java python ruby nodejs
  7. Open Source
  二. Appium 在Android端的工作模式
  1.架构图
    
  简易图:
   
  在Android端,appium基于WebDriver,并利用Bootstrap.js,最后通过调?用UiAutomator的命令,实现App的自动化测试。UiAutomator测试框架是Android SDK自带的App UI自动化测
  试Java库。
  另外由于UiAutomator对H5的?支持有限,appium引入了chromedriver来实现基于H5的自动化。
  2.主要原理:
  1.左边的WebDriver script是我们的selenium测试脚本
  2.中间是起的Appium的服务,Appium在这边起了一个Server(4723端口),跟selenium Webdriver测试框架类似,Appium支持标准的WebDriver JSONWireProtocol 。在这里提供了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调用对应的框架响应操作。
  如:脚本发送一个点击按钮的请求给appium server,
  3. appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.
  Bootstrap 接收appium 的命令(4724端口),最终通过调?用UiAutomator的命令来实现。
  4.最后执?行的结果由Bootstrap返回给appium server
  5.另外,appium还用到了chromedriver来支持基于H5(webview)的测试。
  三. Appium 在IOS端的工作模式
  1.架构图:
  
  简易图:
  
  在IOS端,appium同样使?用WebDriver的一套协议。与Android端测试框架不同的是,appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple
  的自动化测试框架),然后在设备中注入bootstrap.js进行监听。
  2.主要原理
  1.左边的WebDriver script是selenium测试脚本
  2.中间是起的Appium的服务,Appium在这边起了一个Server(4723端口),跟selenium Webdriver测试框架类似,Appium?支持标准的WebDriver JSONWireProtocol 。在这里提供
  了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调用对应的框架响应操作。
  如:脚本发送一个点击按钮的请求给appium server,
  3. appium server调用instruments.js 启动一个socket server,同时分出一个子进程运行instruments.app,将bootstrap.js(一个UIAutomation脚本)注入到device用于和外界进行交互。
  4.对于H5的操作,运用了 iOS webkit debug proxy来实现
  http://appium.io/slate/en/v1.0.0/java#ios-support
  https://github.com/google/ios-webkit-debug-proxy


上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

2018年ISTQB高级认证测试经理在线培训全国首播,限免领取考试大纲>>

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2018, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道