中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Selenium和Appium有哪些異同點

發布時間:2021-12-18 10:55:03 來源:億速云 閱讀:221 作者:小新 欄目:網絡管理

這篇文章給大家分享的是有關Selenium和Appium有哪些異同點的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

前段時間學習了selenium的使用,今天開始接觸appium看到appium的原理后產生了疑惑:

現在的selenium是通過webdriver來操作驅動瀏覽器的,然而appium有一個server的概念

那么為什么沒有app driver這個東西呢?

selenium

早期的selenium

早期的selenium主要是指selenium1.0的版本,

這個版本主要由Selenium IDE + Selenium Grid + SeleniumRC組成

seleniumRC就是后來被webdriver取代的一個代理server

RC == Remote Control 遠程控制

早期Selenium 引入了 Remote Control Server 這樣一個代理 Server,JavaScript 腳本注入和與 Server 通訊都通過這個代理 Server 來進行,JavasScript可以獲取并調用頁面的任何元素,Selenium啟動一個Server,將操作Web元素的API調用轉化為一段段JavaScript,在Selenium內核啟動瀏覽器之后注入這段JS

缺點:但是JS注入速度不理想,穩定性大大依賴于Selenium內核對API翻譯成的JS質量高低

引入代理Remote Control Server是因為“同源策略”的限制,通過這個代理服務器來“欺騙”遠程Server,達到使其以為是從同一個地方load代碼以正確返回請求數據的效果

seleniumRC的原理

1.Selenium RC Server 啟動一個瀏覽器(或是已經使用中),并注入js代碼

2.將測試腳本代碼傳到客戶端的 Selenium-Core 中

3.Selenium-Core 翻譯并解析執行用戶錄制的操作

4.讓代理 Server 進行通訊

5.Remote Control Server 負責跟遠程 Web 應用服務器進行通訊

seleniumRC的組成

1.Selenium Server(Launcher、Http Proxy、Selenium Core)

2.Client Libraries(用來控制server)

seleniumRC的工作流程

1.測試用例通過Client Libraries的接口向Selenium Server發送Http請求,要求和Selenium Server建立連接

2.Selenium Server的Launcher啟動瀏覽器,把Selenium Core加載入瀏覽器頁面中,并發瀏覽器的代理設置為Selenium Server的Http Proxy。

3.測試用例通過Client Libraries的接口向Selenium Server發送Http請求,Selenium Server對請求進行解析,然后通過Http Proxy發送JS命令通知Selenium Core執行操作瀏覽器的動作

4.Selenium Core接收到指令后,執行操作

5.瀏覽器收到新的頁面請求信息,于是發送Http請求,請求新的web頁面。Selenium Server會接收到所有由它啟動的瀏覽器發動的請求

6.Selenium Server接收到瀏覽器發送的Http請求后,自己重組Http請求,獲取對應的web頁面

7.Selenium Server的Http Proxy把接收的Web頁面返回給瀏覽器

現在的selenium

selenium3.0以后移除了seleniumRC,取而代之的是webdriver

用一張圖來展示selenium3.0的運行原理

Selenium和Appium有哪些異同點

這里講到的是測試腳本和瀏覽器的交互,客戶端開始運行驅動瀏覽器的腳本的時候,這時瀏覽器收到請求開始啟動并開啟偵聽端口,并自動創建session,保持瀏覽器和對應客戶端的會話連接,然后客戶端運行腳本,向瀏覽器發送http請求,瀏覽器解析請求,根據腳本內容做出相應操作,返回response。這時客戶端根據response選擇結束還是繼續執行

tips:

1.webdriver操作瀏覽器、頁面采用的協議:the webdriver wire protocol

2.Client和Server的通信協議:HTTP

3.HTTP傳輸的數據內容為遵循WP協議json格式數據

4.瀏覽器驅動實現了webdriver協議的api

appium

appium和selenium之間的不同

appium本身就是一個server,而selenium廢棄了server,用webdriver來驅動瀏覽器

appium工作原理

當開啟appium服務器的同時就開啟了監聽端口;我們運行腳本的時候,調用任何的appiumAPI,都會向Appium Server端post一條HTTP請求,請求內容就是根據webdriver wire protocol協議規定的一條JSON格式的數據;Appium Server端接收到請求后,解析出JSON數據并發送到手機端;手機端上已經由BootStrap.jar(iOS為BootStrip.js)開啟的socket服務器監聽相應的端口,BootStrap.jar在appium每個session第一次訪問手機端的時候會自動安裝;手機端接收到對應的請求后,通過BootStrap.jar翻譯成UIAutomator能執行的命令,然后通過UIAutomator處理并操作APP完成測試。

appium的幾個概念

1.appium/appium server

一般所說的appium其實是一個基于node.js的web服務器,它是測試腳本和設備端交互的橋梁

用npm install -g appium 安裝的是命令行的沒有界面的appium server

2.appium GUI

它是把沒有界面的appium server封裝出了一個圖形界面,方便操作,但是現在已經被appium desktop所取代

3.appium Desktop

它是一款適用于Mac,Windows和Linux的開源應用程序,它以美觀而靈活的用戶界面為您提供appium server的強大功能

4.appium client

第1點中說到,appium其實是一個sweb server,server是接收請求來操作設備端的app的,既然有了server那么一定會有client

這個client就是我們寫測試腳本時導入的包

Python中可以運行 pip install Appium-Python-Client 來安裝

Android和 iOS

Selenium和Appium有哪些異同點

Selenium和Appium有哪些異同點

感謝各位的閱讀!關于“Selenium和Appium有哪些異同點”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋江市| 望江县| 思茅市| 布拖县| 扶风县| 富源县| 即墨市| 滦平县| 廉江市| 翁牛特旗| 绥德县| 栾川县| 成安县| 汨罗市| 丰镇市| 绥宁县| 丹巴县| 阿勒泰市| 齐齐哈尔市| 泾源县| 正定县| 运城市| 文水县| 伊宁县| 南丹县| 中卫市| 汶川县| 上饶县| 东港市| 华池县| 伊吾县| 临澧县| 海兴县| 南岸区| 巴马| 雅江县| 杭锦旗| 公安县| 敖汉旗| 双峰县| 南汇区|