UI自动化测试之Selenium原理详解
Selenium簡介
Selenium也是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE、Mozilla Firefox、Chrome等,支持多種語言編寫測試測試腳本,目前支持的語言有Java,Python,Ruby,C#,當前Selenium最常用的版本是Selenium2和Selenium3。
Selenium 1.0 的工作原理
Selenium 1.0,又稱 Selenium RC,其中 RC 是 Remote Control 的縮寫。Selenium RC 利用的原理是:JavaScript 代碼可以很方便地獲取頁面上的任何元素并執行各種操作。Selenium 1.0 的核心是,基于 JavaScript 代碼注入。
由于Selenium 1.0已經基本不再使用,在這里就不做過多介紹。
Selenium 2.0 的工作原理
Selenium 2.0,又稱 Selenium WebDriver,它利用的原理是:使用瀏覽器原生的 WebDriver 實現頁面操作。其實現方式與Selenium 1.0已經是完全不同了。?Selenium 2.0 的核心是,運用了瀏覽器原生支持的 WebDriver。
Selenium 2.0 工作原理如圖:
Selenium 2.0 執行測試的步驟:
1、當使用 Selenium2.0 啟動瀏覽器 Web Browser 時,后臺會同時啟動基于 WebDriver Wire 協議的 Web Service 作為 Selenium 的 Remote Server,并將其與瀏覽器綁定。綁定完成后,Remote Server 就開始監聽 Client 端的操作請求。
2、執行測試時,測試用例會作為 Client 端,將需要執行的頁面操作請求以 Http Request 的方式發送給 Remote Server。該 HTTP Request 的 body,是以 WebDriver Wire 協議規定的 JSON 格式來描述需要瀏覽器執行的具體操作。
接口協議是:
POST /session/{session id}/element/{element id}/click
詳情請參考www.w3.org/TR/webdriver/
3、Remote Server 接收到請求后,會對請求進行解析,并將解析結果發給 WebDriver,由 WebDriver 實際執行瀏覽器的操作。
4、WebDriver 可以看做是直接操作瀏覽器的原生組件(Native Component),所以搭建測試環境時,通常都需要先下載瀏覽器對應的 WebDriver。
Selenium 3.0
Selenium的架構圖
Selenium 3.0是selenium最新發布版本,工作原理與Selenium 2.0大致相同。
Selenium2和Selenium3的區別在于:
1、去掉了對selenium rc的支持
2、全面擁抱java 8 。最低要求java 8 版本以上。
3、支持macOS (Sierra or later),支持官方的safaridriver。
4、通過ms官方的webdriver server支持Edge瀏覽器。只支持ie 9.0版本以上。
5、通過Mozilla官方的geckodriver來支持firefox。火狐從47版本開始使用Gecko引擎,該引擎支持多進程。
?
?
?
?
總結
以上是生活随笔為你收集整理的UI自动化测试之Selenium原理详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国邮政国内给据邮件条码编码规则应用
- 下一篇: 大学物理实验不确定度.cpp