您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源功能測(cè)試工具 > Selenium
Selenium私房菜系列全集
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/28 13:48:19 ] 推薦標(biāo)簽:

一.Selenium是什么?

Selenium是ThroughtWorks公司一個(gè)強(qiáng)大的開源Web功能測(cè)試工具系列,本系列現(xiàn)在主要包括以下4款:

1.Selenium Core:支持DHTML的測(cè)試案例(效果類似數(shù)據(jù)驅(qū)動(dòng)測(cè)試),它是Selenium  IDE和Selenium  RC的引擎。

2.Selenium IDE:FireFox的一個(gè)插件,支持腳本錄制。

3.Selenium RC:Selenium Remote Control。后續(xù)的系列文章我會(huì)主要針對(duì)Selenium RC展開介紹。

4.Selenium Grid:允許同時(shí)并行地、在不同的環(huán)境上運(yùn)行多個(gè)測(cè)試任務(wù),極大地加快Web應(yīng)用的功能測(cè)試。

二.選擇合適的Selenium工具

既然Selenium工具有4款這么多,那到底如何選擇呢??我從"Selenium官網(wǎng)"這里找了一個(gè)表:

Selenium IDE Selenium Remote Control Selenium Core Selenium Core HTA
瀏覽器支持 僅Firefox 很多 所有 僅IE
需要遠(yuǎn)程安裝 否 否 是 否
支持 HTTPS/SSL 是 是* 是 是
支持跨域 是 是* 否 是
需要Java 否 是 否 否
將測(cè)試結(jié)果保存到磁盤 是 是 否 是
多語(yǔ)言支持 僅Selenese 很多 僅Selenese 僅Selenese

這里沒有介紹Selenium Grid,但介紹了另外一個(gè)Selenium Core HTA,Selenium Core HTA其實(shí)是Selenium Core的額外模式,你只要Selenium Core配置稍加修改,即為HTA模式,Selenium Core HTA可以在IE高安全等級(jí)(特權(quán))下工作,這意味著它僅能在IE下工作,由于限制較大,下面將排除對(duì)Selenium Core HTA的討論。

1.瀏覽器支持:

(1).Selenium IDE僅可以在Firefox中工作。

(2).Selenium Remote Control支持很多瀏覽器,包括常用的:firefox,ie,safari等N款瀏覽器。

(3).Selenium Core支持的瀏覽器是廣的,這點(diǎn)和它的實(shí)現(xiàn)有關(guān)。作為IDE和RC的引擎,Selenium Core幾乎可以在任何瀏覽器中工作。

2.需要遠(yuǎn)程安裝:是否需要在被測(cè)網(wǎng)站的服務(wù)端安裝?

這里只有Selenium Core需要,這是出于同源策略的原因。這也是Selenium Core一個(gè)很大的限制,試問,如果你要測(cè)試Google.com,還得在google的服務(wù)器上裝一個(gè)Selenium Core,那是多搞笑的一件事。

而Selenium IDE和Selenium Core HTA不會(huì)被同源策略所限制,因?yàn)樗麄儗?duì)瀏覽器擴(kuò)展了。

Selenium RC提供一個(gè)代碼服務(wù)器來(lái)保證Selenium JS文件看似來(lái)自相同的遠(yuǎn)程服務(wù)器,從而符合同源策略;代理服務(wù)器欺騙瀏覽器,讓它認(rèn)為這里的確有像http://www.google.com/selenium/這樣的目錄。

3.支持HTTPS/SSL:

這里不說(shuō)了,都支持。Selenium RC在“是”后面加*因?yàn)樗窃诮姹局С值,僅此而已。

4.需要Java:準(zhǔn)確的說(shuō)是需要JRE

這項(xiàng)只有Selenium RC需要,上面2中所說(shuō)的“代理服務(wù)器”是一個(gè)Java程序,需在跑測(cè)試案例前啟動(dòng)。

5.將測(cè)試結(jié)果保存到磁盤

只有Selenium Core不能將任何測(cè)試結(jié)果寫到磁盤上(因?yàn)樗怯胘avascript寫的,它不允許向磁盤寫數(shù)據(jù)),其解決方案是當(dāng)然你可以將測(cè)試結(jié)果發(fā)送到另外一臺(tái)服務(wù)器保存。這也是Selenium Core的一大限制。

6.多語(yǔ)言支持

(1).Selenium IDE僅支持Selenium語(yǔ)言。

(2).Selenium RC支持很多語(yǔ)言,如:C#,Java,Python,Ruby等。

(3).Selenium Core也是僅支持Selenium語(yǔ)言。

Selenium語(yǔ)言的測(cè)試案例如下:

它的優(yōu)點(diǎn)是:簡(jiǎn)單,用(Command,Target,Value)三種元素組成一個(gè)行為,并且有輔助錄制腳本工具(如:Firefox IDE,Selenium Core等),不懂程序的測(cè)試人員都可以輕松地編寫測(cè)試案例。

它的缺點(diǎn)是:Selenese有一些嚴(yán)格的限制:它沒有條件(沒有"if"表達(dá)式),并且它沒有循環(huán)(沒有"For"表達(dá)式)。這會(huì)使編寫復(fù)雜的測(cè)試變得困難甚至不可能。

OK,現(xiàn)在我們來(lái)研究下到底該使用哪款工具開展測(cè)試!

(1).Selenium IDE支持并且只支持Firefox瀏覽器,支持的瀏覽器太少,而依附于Firefox也不便于日后開展自動(dòng)化測(cè)試,但是,它的錄制快捷好用!并且有代碼轉(zhuǎn)換功能,可以把Selenium語(yǔ)言測(cè)試案例轉(zhuǎn)為C#,Java等語(yǔ)言的測(cè)試案例,我建議使用Selenium IDE + FireBug進(jìn)行測(cè)試案例的編寫,然后轉(zhuǎn)為其他語(yǔ)言的測(cè)試案例后,再調(diào)用Selenium RC運(yùn)行測(cè)試案例。

(2).Selenium Core,它的優(yōu)點(diǎn)是編寫測(cè)試案例簡(jiǎn)單,并且支持絕大多數(shù)的瀏覽器,但缺點(diǎn)也同樣明顯,Selenium Core需要遠(yuǎn)程安裝,Selenese語(yǔ)言也限制了復(fù)雜案例的可能性,并且沒有良好的外部擴(kuò)展,這是些都會(huì)是致命的問題。因?yàn)橐粋(gè)款測(cè)試工具不可能滿足你測(cè)試需求的,當(dāng)它不能滿足你測(cè)試需求時(shí)候,它必須有一個(gè)擴(kuò)展機(jī)制可以讓你可以使用其他的方式滿足你需求,否則這款測(cè)試軟件即使功能強(qiáng)大,也請(qǐng)三思慎用,否則當(dāng)投入大量資源后才發(fā)現(xiàn)某些問題不能解決,那時(shí)候已經(jīng)晚了,這是我的切身體會(huì)。

(3).Selenium RC是我推薦使用的工具,它支持很多瀏覽器,可以使用C#,Java等語(yǔ)言編寫測(cè)試案例,易于維護(hù),同時(shí)提供了很好的擴(kuò)展性,所以后續(xù)的文檔我會(huì)以Selenium RC作為默認(rèn)的測(cè)試工具。

上一頁(yè)12345678910下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd