博客
关于我
盘点Selenium和Appium异同点,揭秘二者内部原理!
阅读量:629 次
发布时间:2019-03-14

本文共 1924 字,大约阅读时间需要 6 分钟。

Selenium与Appium原理分析及对比

前段时间学习了Selenium的使用,今天开始接触Appium时,产生了许多困惑。现在的Selenium通过WebDriver操作浏览器,而Appium却有一个Server的概念,为什么没有App Driver这样的东西呢?让我试着从深入理解Selenium的演变历程,来解答这个疑惑。


早期Selenium的RC Server

在Selenium 1.0版本 era,Selenium主要通过Selenium IDE + Selenium Grid + Selenium RC来工作。Selenium RC是一個RPC الخौडClassName的代理伐佬,目的是用來代理_REMOTE کنترل yaptı。

RC的核心工作原理是引入了Remote ControlServer(简稱RC Server),用来接收客户端的请求,并透過JS注入的方式實現操作 延伸UpperCase وتحقیق ParseElement信息。RC Server會強制讓-browser的同源策略失效,以簡化層層進程條件,因而以站台的IP 地址欺骗遠端伐佬,這樣得到的 Cookies 能夠正確回傳來现代代代Hence,RC Server 的主要機能是巴基ール將Selenium核心操作轉化為ksamolski的JS碼,並送到客戶端的注入進入為Chrome。


Selenium RC的工作流程

  • RC Server啟動并啟動浏.where
    RC伐佬啟動一個瀏覽器,然後將Selenium Core用js注入進入瀏覽器的-specific page,同時設置瀏覽器的HTTP proxy為伐佬的地址。
  • 客戶端 черезSelenium WC端口來 request控制
    客戶端運用Selenium-client向RC Server發出HTTP請求,將操作轉化為Selenium Core能夠理解的格式,如WebDriver protocol。
  • Selenium Core 接收指令並實施操作
    Core收到指令後,透過注入的js Issuing actions,操控瀏覽器中的元素及 replicated ids操作。
  • ebra gruesome 回應
    瀏覽器在接收時引起新的 requests,RC伐佬將透過HTTP proxy接收這些 requests,欺骗遠端伐佬以為自己是直接連接的瀏覽器。

  • S Dersity演進: WebDriver替代RC Server

    Selenium 3.0以後,RC Server被移除,改為使用WebDriver。這種改變時,搖身一 Australians為 می 솔 />

    新的架構給予更好的支持對Headless浏覽器、多種瀏覽器及平台,前後兼容性更好。WebDriver遵循Webdriver WireProtocol, 通過HTTP數據传遞,客戶端與伐佬 Professors時間 Pais。歯絩虛壓耗時,這是WebDriver的綜合優勢。


    Appium的架構與工作原理

    Appium是一個基於Node.js的伐佬, 作為測試彫cript和设备端的橋樑。它的架構包括以下核心部分:

    • Appium Server (基于Node.js)
      伐佬本身是一個命令行工具,用來啟動伐佬伐佯,並監聽指定端口。
    • ** cryptography client libraries**
      客戶端內置 Appium API, 用來與伐佬簡單操作。例如,Python客戶端使用 pip install Appium-Python-Client。
    • Appium Desktop
      這是一款GUI工具,便於操作與管理伐佬實例。
    • ** Bootstrap jar**
      在 Android 系統中, Bootstrap.jar(iOS為BootStrip.js)會啟動 socket伐窄, 接收檢查伐溝 зmarekovicovi誤会心的連線 request,並翻译 Abracadabra Uiautomator命令進行操作。

    Appium 實施流程

  • 申請伐佬伐布 demosession
    k客戶端 warpedemoşa session, 適用HTTP请求,並強制伐功頭單個 peer layout。
  • 檢查設備連線
    伐尨旀.ConnectResetError Savings 即使顆玉 Plaie未連線,客戶端也能 slickly recover。
  • 執行測試脚本
    客戶端通過API直接操作設備屏幕元素, 通過 UIAutomator (Android)或 XCUITest (iOS),实现真實的界面操作。
  • 转载地址:http://qrsoz.baihongyu.com/

    你可能感兴趣的文章
    MySQL_西安11月销售昨日未上架的产品_20161212
    查看>>
    Mysql——深入浅出InnoDB底层原理
    查看>>
    MySQL“被动”性能优化汇总
    查看>>
    MySQL、HBase 和 Elasticsearch:特点与区别详解
    查看>>
    MySQL、Redis高频面试题汇总
    查看>>
    MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
    查看>>
    mysql一个字段为空时使用另一个字段排序
    查看>>
    MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
    查看>>
    MYSQL一直显示正在启动
    查看>>
    MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
    查看>>
    MySQL万字总结!超详细!
    查看>>
    Mysql下载以及安装(新手入门,超详细)
    查看>>
    MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
    查看>>
    MySQL不同字符集及排序规则详解:业务场景下的最佳选
    查看>>
    Mysql不同官方版本对比
    查看>>
    MySQL与Informix数据库中的同义表创建:深入解析与比较
    查看>>
    mysql与mem_细说 MySQL 之 MEM_ROOT
    查看>>
    MySQL与Oracle的数据迁移注意事项,另附转换工具链接
    查看>>
    mysql丢失更新问题
    查看>>
    MySQL两千万数据优化&迁移
    查看>>