appium架构分析

吾生也有涯,而知也无涯。这篇文章主要讲述appium架构分析相关的知识,希望能为你提供帮助。
【appium架构分析】Appium - automation for mobile apps
  一.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.架构图

appium架构分析

文章图片
  简易图:
appium架构分析

文章图片



在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.架构图:
appium架构分析

文章图片

简易图:
appium架构分析

文章图片

在IOS端,appium同样使?用WebDriver的?一套协议。与Android端测试框架不同的是, appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple 的?自动化测试框架),然后在设备中注?入bootstrap.js进?行监听。  2.主要原理 1.左边的WebDriver script是selenium测试脚本 2.中间是起的Appium的服务,Appium在这边起了?一个Server(4723端口),跟seleniumWebdriver测试框架类似,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     三. 自动化测试脚本例?子 1)安装配置appium运行环境 参考: http://appium.io/slate/en/master/?java#running-appium-on-mac-os-x http://appium.io/slate/en/master/?java#running-appium-on-windows   2)Android & IOS例子http://blog.sina.com.cn/s/blog_60c53af50102v3sc.html





    推荐阅读