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

    你可能感兴趣的文章
    MQTT 持久会话与 Clean Session 详解
    查看>>
    MQTT工作笔记0007---剩余长度
    查看>>
    MQTT工作笔记0009---订阅主题和订阅确认
    查看>>
    Mqtt搭建代理服务器进行通信-浅析
    查看>>
    MS Edge浏览器“STATUS_INVALID_IMAGE_HASH“兼容性问题
    查看>>
    ms sql server 2008 sp2更新异常
    查看>>
    MS UC 2013-0-Prepare Tool
    查看>>
    MSBuild 教程(2)
    查看>>
    msbuild发布web应用程序
    查看>>
    MSB与LSB
    查看>>
    MSCRM调用外部JS文件
    查看>>
    MSCRM调用外部JS文件
    查看>>
    MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)
    查看>>
    MsEdgeTTS开源项目使用教程
    查看>>
    msf
    查看>>
    MSSQL数据库查询优化(一)
    查看>>
    MSSQL数据库迁移到Oracle(二)
    查看>>
    MSSQL日期格式转换函数(使用CONVERT)
    查看>>
    MSTP多生成树协议(第二课)
    查看>>
    MSTP是什么?有哪些专有名词?
    查看>>