標籤:style blog http os io 使用 java strong ar
一.Selenium是什嗎?
Selenium是ThroughtWorks公司一個強大的開源Web功能測試工具系列,本系列現在主要包括以下4款:
1.Selenium Core:支援DHTML的測試案例(效果類似資料驅動測試),它是Selenium IDE和Selenium RC的引擎。
2.Selenium IDE:FireFox的一個外掛程式,支援指令碼錄製。
3.Selenium RC:Selenium Remote Control。後續的系列文章我會主要針對Selenium RC展開介紹。
4.Selenium Grid:允許同時並行地、在不同的環境上運行多個測試工作,極大地加快Web應用的功能測試。
二.選擇合適的Selenium工具
既然Selenium工具有4款這麼多,那到底如何選擇呢??我從"Selenium官網"這裡找了一個表:
|
Selenium IDE |
Selenium Remote Control |
Selenium Core |
Selenium Core HTA |
瀏覽器支援 |
僅Firefox |
很多 |
所有 |
僅IE |
需要遠程安裝 |
否 |
否 |
是 |
否 |
支援 HTTPS/SSL |
是 |
是* |
是 |
是 |
支援跨域 |
是 |
是* |
否 |
是 |
需要Java |
否 |
是 |
否 |
否 |
將測試結果儲存到磁碟 |
是 |
是 |
否 |
是 |
多語言支援 |
僅Selenese |
很多 |
僅Selenese |
僅Selenese |
這裡沒有介紹Selenium Grid,但介紹了另外一個Selenium Core HTA,Selenium Core HTA其實是Selenium Core的額外模式,你只要Selenium Core配置稍加修改,即為HTA模式,Selenium Core HTA可以在IE最高安全等級(特權)下工作,這意味著它僅能在IE下工作,由於限制較大,下面將排除對Selenium Core HTA的討論。
1.瀏覽器支援:
(1).Selenium IDE僅可以在Firefox中工作。
(2).Selenium Remote Control支援很多瀏覽器,包括最常用的:firefox,ie,safari等N款瀏覽器。
(3).Selenium Core支援的瀏覽器是最廣的,這點和它的實現有關。作為IDE和RC的引擎,Selenium Core幾乎可以在任何瀏覽器中工作。
2.需要遠程安裝:是否需要在被測網站的服務端安裝?
這裡只有Selenium Core需要,這是出於同源策略的原因。這也是Selenium Core一個很大的限制,試問,如果你要測試Google.com,還得在google的伺服器上裝一個Selenium Core,那是多搞笑的一件事。
而Selenium IDE和Selenium Core HTA不會被同源策略所限制,因為他們對瀏覽器延伸了。
Selenium RC提供一個代碼伺服器來保證Selenium JS檔案看似來自相同的遠程伺服器,從而符合約源策略;Proxy 伺服器欺騙瀏覽器,讓它認為這裡的確有像http://www.google.com/selenium/這樣的目錄。
3.支援HTTPS/SSL:
這裡不說了,都支援。Selenium RC在“是”後面加*因為它是在最近版本支援的,僅此而已。
4.需要Java:準確的說是需要JRE
這項只有Selenium RC需要,上面2中所說的“Proxy 伺服器”是一個Java程式,需在跑測試案例前啟動。
5.將測試結果儲存到磁碟
只有Selenium Core不能將任何測試結果寫到磁碟上(因為它是用javascript寫的,它不允許向磁碟寫資料),其解決方案是當然你可以將測試結果發送到另外一台伺服器儲存。這也是Selenium Core的一大限制。
6.多語言支援
(1).Selenium IDE僅支援Selenium語言。
(2).Selenium RC支援很多語言,如:C#,Java,Python,Ruby等。
(3).Selenium Core也是僅支援Selenium語言。
Selenium語言的測試案例如下:
它的優點是:簡單,用(Command,Target,Value)三種元素組成一個行為,並且有輔助錄製指令碼工具(如:Firefox IDE,Selenium Core等),不懂程式的測試人員都可以輕鬆地編寫測試案例。
它的缺點是:Selenese有一些嚴格的限制:它沒有條件(沒有"if"運算式),並且它沒有迴圈(沒有"For"運算式)。這會使編寫複雜的測試變得困難甚至不可能。
OK,現在我們來研究下到底該使用哪款工具開展測試!
(1).Selenium IDE支援並且只支援Firefox瀏覽器,支援的瀏覽器太少,而依附於Firefox也不便於日後開展自動化測試,但是,它的錄製快捷好用!並且有代碼轉換功能,可以把Selenium語言測試案例轉為C#,Java等語言的測試案例,我建議使用Selenium IDE + FireBug進行測試案例的編寫,然後轉為其他語言的測試案例後,再調用Selenium RC運行測試案例。
(2).Selenium Core,它的優點是編寫測試案例簡單,並且支援絕大多數的瀏覽器,但缺點也同樣明顯,Selenium Core需要遠程安裝,Selenese語言也限制了複雜案例的可能性,並且沒有良好的外部擴充,這是些都會是致命的問題。因為一個款測試載入器不可能100%滿足你測試需求的,當它不能滿足你測試需求時候,它必須有一個擴充機制可以讓你可以使用其他的方式滿足你需求,否則這款測試軟體即使功能強大,也請三思慎用,否則當投入大量資源後才發現某些問題不能解決,那時候已經晚了,這是我的切身體會。
(3).Selenium RC是我推薦使用的工具,它支援很多瀏覽器,可以使用C#,Java等語言編寫測試案例,易於維護,同時提供了很好的擴充性,所以後續的文檔我會以Selenium RC作為預設的測試載入器。
[轉]Selenium私房菜系列1 -- Selenium簡介