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

溫馨提示×

溫馨提示×

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

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

Selenium自動化測試框架入門整理

發布時間:2020-06-18 13:21:57 來源:網絡 閱讀:612 作者:嘉為科技 欄目:軟件技術

Selenium自動化測試框架入門整理

關注嘉為科技,獲取運維新知


本文主要針對Selenium自動化測試框架入門整理,只涉及總體功能及框架要點介紹說明,以及使用前提技術基礎要求整理說明。作為開發人員、測試人員入門參考。

本文參考:Selenium框架最新技術規范及相關資料


簡介

Selenium也是一款同樣使用Apache License 2.0協議發布的開源框架。Selenium也是一套完整的Web應用程序測試系統工具,它包含了:

  • Selenium的核心Selenium Core基于JsUnit,完全由JavaScript編寫,因此可運行于任何支持JavaScript的瀏覽器上;

  • 測試的錄制(Selenium IDE);

  • 編寫及運行(Selenium Remote Control)(3.X移除了);

  • 測試的并行處理(Selenium Grid);

  • Selenium2.X包含該了WebDriver和SeleniumRC(兼容以前版本)。Selenium3.X只包含WebDriver,移除了SeleniumRC。


Selenium整體產品結構如下:(3.x以后版本去除了SeleniumRC)

 

Selenium IDE: 

是一個用于構建腳本的初級工具,其實是FireFox的一個插件,擁有一個易于使用的界面。它擁有記錄功能,能夠記錄用戶執行的操作,并可以導出為可重復使用的腳本。如果沒有編程經驗,可以通過Selenium IDE來快速熟悉Selenium的命令。該工具實際使用不多。Selenium-core 是使用HTML的方式來編寫測試腳本,你也可以使用 Selenium-IDE來錄制腳本,但是目前Selenium-IDE只有 FireFox 版本。


Selenium-RC(Selenium3.X 移除): 

selenium-remote control 縮寫,是使用具體的語言來編寫測試類。Selenium RC支持多種不同的語言編寫自動化測試腳本,通過SeleniumRC的服務器作為代理服務器去訪問應用,從而達到測試的目的。主要包含以下兩大部分:

  • ClientLibraries庫主要用于編寫測試腳本,用來控制SeleniumServer的庫。

  • SeleniumServer負責控制瀏覽器行為。SeleniumServer包含三部分:Launcher,Http Proxy和Core。其中,Selenium Core是被Selenium Server嵌入到瀏覽器頁面中的,其實SeleniumCore就是一堆JavaScript函數的集合,即通過這些JavaScript函數,我們才可以實現用程序對瀏覽器進行操作。Launcher用于啟動瀏覽器,把Selenium Core加載到瀏覽器頁面當中,并把瀏覽器的代理設置為SeleniumServer的HttpProxy。


WebDriver: 

Selenium2.x提出了WebDriver的概念之后,它提供了完全另外的一種方式與瀏覽器交互。那就是利用瀏覽器原生的API,封裝成一套更加面向對象的SeleniumWebDriver API,直接操作瀏覽器頁面里的元素,甚至操作瀏覽器本身(截屏,窗口大小,啟動,關閉,安裝插件,配置證書之類的)。由于使用的是瀏覽器原生的API,速度大大提高,而且調用的穩定×××給了瀏覽器廠商本身,顯然是更加科學。然而帶來的一些副作用就是,不同的瀏覽器廠商,對Web元素的操作和呈現多少會有一些差異,這就直接導致了Selenium WebDriver要分瀏覽器廠商不同,而提供不同的實現。例如Firefox就有專門的FirefoxDriver,Chrome就有專門的ChromeDriver等等。(甚至包括了AndroidDriver和iOS WebDriver)


Selenium Grid: 

實現測試的并行處理。


基于Selenium進行測試的方式及流程

Selenium RC方式(3.X以后版本移除該方式):


  • 測試用例通過Http請求建立與 Selenium-RC server 的連接;

  • Selenium RC Server 驅動一個瀏覽器,把Selenium Core加載入瀏覽器頁面當中,并把瀏覽器的代理設置為Selenium Server的Http Proxy;

  • 執行用例向Selenium Server發送Http請求,Selenium Server對請求進行解析,然后通過Http Proxy發送JS命令通知Selenium Core執行操作瀏覽器的動作并注入 JS 代碼;

  • Selenium Core執行接受到的指令并操作;

  • 當瀏覽器收到新的請求時,發送http請求;

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

  • Selenium Server中的Http Proxy把接受到的頁面返回給瀏覽器。

 

WebDriver(目前主流方式):

Selenium 2.X啟動SeleniumRC至今為止還保留著,應該是考慮到向前兼容。Selenium 3.X完成移除了SeleniumRC。


Selenium2.X增加了WebDriver,保持RC向前兼容。WebDriver項目是由Simon Stewart創建的,它是一個非常便捷的自動化測試工具。WebDriver對不同瀏覽器的處理方式和RC有著明顯的不同,RC是不管什么瀏覽器都是JavaScript來處理,而WebDriver是選擇瀏覽器最容易接受的語言來處理。比如,在IE中,C++最合適,在Firefox中, JavaScript最合適等等。通過靈活選擇最合適的語言來處理多瀏覽器,我們可以很好的回避某些瀏覽器對JavaScript的安全限制。而且WebDriver不僅僅具有這些能力,它還能夠調用操作系統API,尤其是當用戶需要模擬鼠標和鍵盤進行真是的頁面操作的時候,這項能力的作用尤為明顯。

現在支持的WebDriver:AndroidDriver,ChromeDriver, FirefoxDriver,  HtmlUnitDriver, EventFiringWebDriver,InternetExplorerDriver,  IPhoneDriver,  IPhoneSimulatorDriver,  RemoteWebDriver。

 

Selenium Grid(目前主流的方式):

傳統的無Grid的模式,只能在一臺機器上進行測試。Selenium可以在上面兩種方式下進行執行,第一種是每臺機器都是一致的,第二種是可以指定特定的瀏覽器或者特定的操作系統執行。


自動化測試腳本編制要求

  • 前提熟悉:HTML /XML/...

  • 前提熟悉:XPath(XML路徑語言 http://www.runoob.com/xpath/xpath-tutorial.html)

  • 開發語言:Java/Python/C#/PHP/…,最起碼熟悉一種開發語言。

  • FIT模式:Selenium腳本(JS):命令用法 。

  • Driver模式:庫(不同語言有不同客戶端)的熟練使用:方法、函數等。

  • 可采用Selenium WebDriver + TestNG框架(TestNG 是一個測試 Java 應用程序的新框架)模式。

  • 建立測試用例腳本的編制規范(針對WebDriver模式)

  • 可利用Jenkins集成Selenium Grid + WebDriver,及 Selenium Report插件。


測試結果報告展現方式

要結合其他框架的測試報告模板,例如TestNG的測試結果報告、ReportNg等;

Jenkins集成selenium,可利用 selenium report 插件輸出;

可結合自主開發測試結果展現處理平臺,關聯到任務平臺當中。


集成成本及方式

需進行Selenium腳本的學習以及相關技術的學習;

基于Selenium的WebDriver模式,測試用例的編制要求具備數據一種開發語言(主流模式);

如結合TestNG,則需熟悉Java。


我們可采用Jenkins + Selenium + TestNG  + Selenium report (ReportNG) 集成的模式進行Web應用的自動化測試。在DevOps產品研發中,可融合封裝使用Selenium進行WEB應用自動化測試。

如需深入了解,請在網絡上參考官方的文檔及相關資料等。



Selenium+藍鯨,可以實現應用功能自動化撥測哦!點擊文章查看是如何實現的?《分享 | 基于藍鯨平臺實現應用功能自動化撥測》


向AI問一下細節

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

AI

曲阳县| 黑龙江省| 满城县| 来安县| 岐山县| 绥阳县| 来凤县| 当阳市| 宽城| 揭西县| 图们市| 青河县| 同心县| 准格尔旗| 靖宇县| 南城县| 南皮县| 崇义县| 化州市| 青海省| 邮箱| 抚松县| 长子县| 乳山市| 佳木斯市| 五华县| 黎川县| 澜沧| 龙江县| 玉龙| 仁寿县| 伊川县| 宁夏| 商河县| 南投市| 舟曲县| 海门市| 宁强县| 宜兰市| 福建省| 黎川县|