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

一.Selenium是什么?

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

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

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

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

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

二.選擇合適的Selenium工具

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

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

這里沒有介紹Selenium Grid,但介紹了另外一個Selenium Core HTA,Selenium Core HTA其實(shí)是Selenium Core的額外模式,你只要Selenium Core配置稍加修改,即為HTA模式,Selenium Core HTA可以在IE高安全等級(特權(quán))下工作,這意味著它僅能在IE下工作,由于限制較大,下面將排除對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)程安裝:是否需要在被測網(wǎng)站的服務(wù)端安裝?

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

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

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

3.支持HTTPS/SSL:

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

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

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

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

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

6.多語言支持

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

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

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

Selenium語言的測試案例如下:

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

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

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

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

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

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

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