zoukankan      html  css  js  c++  java
  • selenium,appium原理

    selenium将浏览器原生api封装成webdriver api,脚本运行,打开指定浏览器,webdriver将目标浏览器绑定特定端口,浏览器则作为webdriver的remote server,客户端(脚本)通过ComandExecutor发送http请求给server,webdriver通过浏览器原生组件,转化web service命令为浏览器原生调用

    Appium的加载过程

    在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调用UiAutomator的命令,实现App的自动化测试。UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。

    1. client端也就是我们 test script是我们的webdriver测试脚本。

    2. 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调用对应的框架响应操作。

    3. appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调⽤用UiAutomator的命令来实现。

    4. 最后Bootstrap将执行的结果返回给appium server。

    5. appium server再将结果返回给 appium client。

    在IOS端,appium同样使⽤WebDriver的一套协议。appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的自动化测试框架),然后在设备中注入bootstrap.js进⾏行监听。

    1. client端 依然是 test script是我们的webdriver测试脚本。

    2. 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调用对应的框架响应操作。

    3. appium server调用instruments.js 启动一个socket server,同时分出一个子进程instruments.app,将bootstrap.js(一个UIAutomation脚本)注入到device和外界进行交互

    4. 最后Bootstrap.js将执行的结果返回给appium server

    5. appium server再将结果返回给 appium client。

    所以我们可以看到android与ios区别在于appium 将请求转发到bootstrap.jar或者bootstrap.js.然后由bootstrap 驱动UiAutomator和UIAutomation去devices上完成具体的动作。

    Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。Appium实现了真正的跨平台自动化测试。

    appium及webdriver如何做到支持多语言的?

    appium选择了client-server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是

    ---by littleyang 测试就是测试一下
  • 相关阅读:
    [模板] 循环数组的最大子段和
    [最短路][几何][牛客] [国庆集训派对1]-L-New Game
    [洛谷] P1866 编号
    1115 Counting Nodes in a BST (30 分)
    1106 Lowest Price in Supply Chain (25 分)
    1094 The Largest Generation (25 分)
    1090 Highest Price in Supply Chain (25 分)
    树的遍历
    1086 Tree Traversals Again (25 分)
    1079 Total Sales of Supply Chain (25 分 树
  • 原文地址:https://www.cnblogs.com/littleyang/p/7218815.html
Copyright © 2011-2022 走看看