博客
关于我
盘点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/

    你可能感兴趣的文章
    OSG学习:纹理映射(五)——计算纹理坐标
    查看>>
    OSG学习:纹理映射(六)——灯光
    查看>>
    OSG学习:纹理映射(四)——三维纹理映射
    查看>>
    OSI七层模型的TCP/IP模型都有哪几层和他们的对应关系?
    查看>>
    OSM数据如何下载使用(地图数据篇.11)
    查看>>
    OSPF 四种设备角色:IR、ABR、BR、ASBR
    查看>>
    SQL Server 存储过程分页。
    查看>>
    OSPF不能发现其他区域路由时,该怎么办?
    查看>>
    OSPF两个版本:OSPFv3与OSPFv2到底有啥区别?
    查看>>
    SQL Server 存储过程
    查看>>
    OSPF在大型网络中的应用:高效路由与可扩展性
    查看>>
    OSPF技术入门(第三十四课)
    查看>>
    OSPF技术连载10:OSPF 缺省路由
    查看>>
    OSPF技术连载13:OSPF Hello 间隔和 Dead 间隔
    查看>>
    OSPF技术连载14:OSPF路由器唯一标识符——Router ID
    查看>>
    OSPF技术连载16:DR和BDR选举机制,一篇文章搞定!
    查看>>
    OSPF技术连载17:优化OSPF网络性能利器——被动接口!
    查看>>
    OSPF技术连载18:OSPF网络类型:非广播、广播、点对多点、点对多点非广播、点对点
    查看>>
    OSPF技术连载19:深入解析OSPF特殊区域
    查看>>
    SQL Server 复制 订阅与发布
    查看>>