Selenium自動(dòng)化測(cè)試框架入門整理-創(chuàng)新互聯(lián)

Selenium自動(dòng)化測(cè)試框架入門整理

成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元武漢做網(wǎng)站,已為上家服務(wù),為武漢各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

關(guān)注嘉為科技,獲取運(yùn)維新知

本文主要針對(duì)Selenium自動(dòng)化測(cè)試框架入門整理,只涉及總體功能及框架要點(diǎn)介紹說(shuō)明,以及使用前提技術(shù)基礎(chǔ)要求整理說(shuō)明。作為開發(fā)人員、測(cè)試人員入門參考。

本文參考:Selenium框架最新技術(shù)規(guī)范及相關(guān)資料

簡(jiǎn)介

Selenium也是一款同樣使用Apache License 2.0協(xié)議發(fā)布的開源框架。Selenium也是一套完整的Web應(yīng)用程序測(cè)試系統(tǒng)工具,它包含了:

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

  • 測(cè)試的錄制(Selenium IDE);

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

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

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

Selenium整體產(chǎn)品結(jié)構(gòu)如下:(3.x以后版本去除了SeleniumRC)

Selenium IDE: 

是一個(gè)用于構(gòu)建腳本的初級(jí)工具,其實(shí)是FireFox的一個(gè)插件,擁有一個(gè)易于使用的界面。它擁有記錄功能,能夠記錄用戶執(zhí)行的操作,并可以導(dǎo)出為可重復(fù)使用的腳本。如果沒(méi)有編程經(jīng)驗(yàn),可以通過(guò)Selenium IDE來(lái)快速熟悉Selenium的命令。該工具實(shí)際使用不多。Selenium-core 是使用HTML的方式來(lái)編寫測(cè)試腳本,你也可以使用 Selenium-IDE來(lái)錄制腳本,但是目前Selenium-IDE只有 FireFox 版本。

Selenium-RC(Selenium3.X 移除):

selenium-remote control 縮寫,是使用具體的語(yǔ)言來(lái)編寫測(cè)試類。Selenium RC支持多種不同的語(yǔ)言編寫自動(dòng)化測(cè)試腳本,通過(guò)SeleniumRC的服務(wù)器作為代理服務(wù)器去訪問(wèn)應(yīng)用,從而達(dá)到測(cè)試的目的。主要包含以下兩大部分:

  • ClientLibraries庫(kù)主要用于編寫測(cè)試腳本,用來(lái)控制SeleniumServer的庫(kù)。

  • SeleniumServer負(fù)責(zé)控制瀏覽器行為。SeleniumServer包含三部分:Launcher,Http Proxy和Core。其中,Selenium Core是被Selenium Server嵌入到瀏覽器頁(yè)面中的,其實(shí)SeleniumCore就是一堆JavaScript函數(shù)的集合,即通過(guò)這些JavaScript函數(shù),我們才可以實(shí)現(xiàn)用程序?qū)g覽器進(jìn)行操作。Launcher用于啟動(dòng)瀏覽器,把Selenium Core加載到瀏覽器頁(yè)面當(dāng)中,并把瀏覽器的代理設(shè)置為SeleniumServer的HttpProxy。

WebDriver: 

Selenium2.x提出了WebDriver的概念之后,它提供了完全另外的一種方式與瀏覽器交互。那就是利用瀏覽器原生的API,封裝成一套更加面向?qū)ο蟮腟eleniumWebDriver API,直接操作瀏覽器頁(yè)面里的元素,甚至操作瀏覽器本身(截屏,窗口大小,啟動(dòng),關(guān)閉,安裝插件,配置證書之類的)。由于使用的是瀏覽器原生的API,速度大大提高,而且調(diào)用的穩(wěn)定×××給了瀏覽器廠商本身,顯然是更加科學(xué)。然而帶來(lái)的一些副作用就是,不同的瀏覽器廠商,對(duì)Web元素的操作和呈現(xiàn)多少會(huì)有一些差異,這就直接導(dǎo)致了Selenium WebDriver要分瀏覽器廠商不同,而提供不同的實(shí)現(xiàn)。例如Firefox就有專門的FirefoxDriver,Chrome就有專門的ChromeDriver等等。(甚至包括了AndroidDriver和iOS WebDriver)

Selenium Grid:

實(shí)現(xiàn)測(cè)試的并行處理。

基于Selenium進(jìn)行測(cè)試的方式及流程

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

  • 測(cè)試用例通過(guò)Http請(qǐng)求建立與 Selenium-RC server 的連接;

  • Selenium RC Server 驅(qū)動(dòng)一個(gè)瀏覽器,把Selenium Core加載入瀏覽器頁(yè)面當(dāng)中,并把瀏覽器的代理設(shè)置為Selenium Server的Http Proxy;

  • 執(zhí)行用例向Selenium Server發(fā)送Http請(qǐng)求,Selenium Server對(duì)請(qǐng)求進(jìn)行解析,然后通過(guò)Http Proxy發(fā)送JS命令通知Selenium Core執(zhí)行操作瀏覽器的動(dòng)作并注入 JS 代碼;

  • Selenium Core執(zhí)行接受到的指令并操作;

  • 當(dāng)瀏覽器收到新的請(qǐng)求時(shí),發(fā)送http請(qǐng)求;

  • Selenium Server接收到瀏覽器發(fā)送的Http請(qǐng)求后,自己重組Http請(qǐng)求,獲取對(duì)應(yīng)的Web頁(yè)面;

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

WebDriver(目前主流方式):

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

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

現(xiàn)在支持的WebDriver:AndroidDriver,ChromeDriver, FirefoxDriver,  HtmlUnitDriver, EventFiringWebDriver,InternetExplorerDriver,  IPhoneDriver,  IPhoneSimulatorDriver,  RemoteWebDriver。

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

傳統(tǒng)的無(wú)Grid的模式,只能在一臺(tái)機(jī)器上進(jìn)行測(cè)試。Selenium可以在上面兩種方式下進(jìn)行執(zhí)行,第一種是每臺(tái)機(jī)器都是一致的,第二種是可以指定特定的瀏覽器或者特定的操作系統(tǒng)執(zhí)行。

自動(dòng)化測(cè)試腳本編制要求
  • 前提熟悉:HTML /XML/...

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

  • 開發(fā)語(yǔ)言:Java/Python/C#/PHP/…,最起碼熟悉一種開發(fā)語(yǔ)言。

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

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

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

  • 建立測(cè)試用例腳本的編制規(guī)范(針對(duì)WebDriver模式)

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

測(cè)試結(jié)果報(bào)告展現(xiàn)方式

要結(jié)合其他框架的測(cè)試報(bào)告模板,例如TestNG的測(cè)試結(jié)果報(bào)告、ReportNg等;

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

可結(jié)合自主開發(fā)測(cè)試結(jié)果展現(xiàn)處理平臺(tái),關(guān)聯(lián)到任務(wù)平臺(tái)當(dāng)中。

集成成本及方式

需進(jìn)行Selenium腳本的學(xué)習(xí)以及相關(guān)技術(shù)的學(xué)習(xí);

基于Selenium的WebDriver模式,測(cè)試用例的編制要求具備數(shù)據(jù)一種開發(fā)語(yǔ)言(主流模式);

如結(jié)合TestNG,則需熟悉Java。

我們可采用Jenkins + Selenium + TestNG  + Selenium report (ReportNG) 集成的模式進(jìn)行Web應(yīng)用的自動(dòng)化測(cè)試。在DevOps產(chǎn)品研發(fā)中,可融合封裝使用Selenium進(jìn)行WEB應(yīng)用自動(dòng)化測(cè)試。

如需深入了解,請(qǐng)?jiān)诰W(wǎng)絡(luò)上參考官方的文檔及相關(guān)資料等。


Selenium+藍(lán)鯨,可以實(shí)現(xiàn)應(yīng)用功能自動(dòng)化撥測(cè)哦!點(diǎn)擊文章查看是如何實(shí)現(xiàn)的?《分享 | 基于藍(lán)鯨平臺(tái)實(shí)現(xiàn)應(yīng)用功能自動(dòng)化撥測(cè)》

文章題目:Selenium自動(dòng)化測(cè)試框架入門整理-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://muchs.cn/article6/hegog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)移動(dòng)網(wǎng)站建設(shè)、ChatGPT域名注冊(cè)、企業(yè)網(wǎng)站制作靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名