zoukankan      html  css  js  c++  java
  • appium架构分析

    http://blog.sina.com.cn/s/blog_60c53af50102v3sb.html

    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 <wbr>mobile <wbr>automation <wbr>framework <wbr>analysis <wbr>and <wbr>practice
     
    简易图:
    Appium <wbr>mobile <wbr>automation <wbr>framework <wbr>analysis <wbr>and <wbr>practice


    在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 <wbr>mobile <wbr>automation <wbr>framework <wbr>analysis <wbr>and <wbr>practice
    简易图:
    Appium <wbr>mobile <wbr>automation <wbr>framework <wbr>analysis <wbr>and <wbr>practice
    在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
     
     
    三. 自动化测试脚本例⼦子
    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
  • 相关阅读:
    Laravel 请求:判断是否是 Ajax 请求
    Laravel中常用的几种向视图传递变量的方法
    curl实现http与https请求的方法
    PHP header 的几种用法
    mysql数据库“不能插入中文”解决办法
    支付宝证书签名 PHP SDK
    tp5.0在控制器中和在模板中调用配置文件中的常量
    TP5.1 调用common里面自定义的常量
    Call to a member function assign() on null
    Docker部署code-server
  • 原文地址:https://www.cnblogs.com/wangcp-2014/p/6060019.html
Copyright © 2011-2022 走看看