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

    你可能感兴趣的文章
    Qt笔记——官方文档全局定义(二)Functions函数
    查看>>
    POJ 3468 A Simple Problem with Integers
    查看>>
    poj 3468 A Simple Problem with Integers 降维线段树
    查看>>
    poj 3468 A Simple Problem with Integers(线段树 插线问线)
    查看>>
    poj 3485 区间选点
    查看>>
    poj 3518 Prime Gap
    查看>>
    poj 3539 Elevator——同余类bfs
    查看>>
    Qt笔记——官方文档全局定义(三)Macros宏
    查看>>
    poj 3628 Bookshelf 2
    查看>>
    Qt笔记——官方文档全局定义(一)Types数据类型
    查看>>
    POJ 3670 DP LIS?
    查看>>
    POJ 3683 Priest John's Busiest Day (算竞进阶习题)
    查看>>
    POJ 3988 Selecting courses
    查看>>
    POJ 4020 NEERC John's inversion 贪心+归并求逆序对
    查看>>
    poj 4044 Score Sequence(暴力)
    查看>>
    POJ 基础数据结构
    查看>>
    POJ 题目3020 Antenna Placement(二分图)
    查看>>
    Poj(1797) Dijkstra对松弛条件的变形
    查看>>
    SpringBoot为什么不需要xml配置文件?
    查看>>
    POJ--2391--Ombrophobic Bovines【分割点+Floyd+Dinic优化+二分法答案】最大网络流量
    查看>>