一.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文件看似來自相同的遠程服務器,從而符合同源策略;代理服務器欺騙瀏覽器,讓它認為這里的確有像http://www.google.com/selenium/這樣的目錄。
3.支持HTTPS/SSL:
這里不說了,都支持。Selenium RC在“是”后面加*因為它是在最近版本支持的,僅此而已。
4.需要Java:準確的說是需要JRE
這項只有Selenium RC需要,上面2中所說的“代理服務器”是一個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等),不懂程序的測試人員都可以輕松地編寫測試案例。
原文轉自:http://www.anti-gravitydesign.com