Selenium是(shi)(shi)一個(ge)用于Web應用程(cheng)序測(ce)(ce)(ce)試(shi)(shi)(shi)的(de)工具。Selenium測(ce)(ce)(ce)試(shi)(shi)(shi)直接(jie)運行(xing)在(zai)瀏(liu)(liu)覽(lan)器(qi)中,就像真正的(de)用戶(hu)在(zai)操作(zuo)一樣(yang)。支持的(de)瀏(liu)(liu)覽(lan)器(qi)包括(kuo)IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等(deng)。這個(ge)工具的(de)主要(yao)功(gong)能(neng)包括(kuo):測(ce)(ce)(ce)試(shi)(shi)(shi)與(yu)瀏(liu)(liu)覽(lan)器(qi)的(de)兼容性(xing)——測(ce)(ce)(ce)試(shi)(shi)(shi)應用程(cheng)序看是(shi)(shi)否能(neng)夠(gou)很好得(de)工作(zuo)在(zai)不同(tong)瀏(liu)(liu)覽(lan)器(qi)和(he)操作(zuo)系統(tong)之上。測(ce)(ce)(ce)試(shi)(shi)(shi)系統(tong)功(gong)能(neng)——創建(jian)回(hui)歸測(ce)(ce)(ce)試(shi)(shi)(shi)檢驗軟件功(gong)能(neng)和(he)用戶(hu)需求。支持自(zi)動錄制動作(zuo)和(he)自(zi)動生成.Net、Java、Perl等(deng)不同(tong)語言的(de)測(ce)(ce)(ce)試(shi)(shi)(shi)腳本。
2004年,Thoughtworks的(de)員工Jason Huggins編寫(xie)了(le)一(yi)(yi)個名為JavaScriptTestRunner的(de)測(ce)試工具(ju),并于當年向多位同事展示,該工具(ju)進一(yi)(yi)步進化為一(yi)(yi)個可(ke)以復用的(de)測(ce)試框架并開源。
同時Bea, Dan Fabulich和Nelson Sproul等人(ren)修改架(jia)構為(wei)獨(du)立服務模式,期間有(you)多位開發人(ren)員加入(ru)開發并推出了Selenium RC和Selenium-IDE。
Jason Huggins 2007年(nian)從(cong)Thoughtworks離職(zhi)并(bing)加(jia)入Selenium support團隊,同年(nian)Google多(duo)名員工加(jia)入開發,并(bing)在GTAC會議上介紹了Selenium在Google的使(shi)用情(qing)況。
Selenium是一個(ge)成功的開(kai)源軟件,其發展獲得(de)很多公司和(he)獨立開(kai)發者的支持。
Selenium IDE:一個Firefox插件,可以(yi)(yi)錄(lu)制(zhi)用(yong)戶的基(ji)本(ben)操作(zuo),生成測試(shi)用(yong)例(li)。隨后可以(yi)(yi)運(yun)行(xing)這些測試(shi)用(yong)例(li)在瀏覽器里回(hui)放,可將(jiang)測試(shi)用(yong)例(li)轉換為其(qi)他(ta)語言(yan)的自動化腳本(ben)。
Selenium Remote Control (RC):支持多(duo)(duo)種平臺(Windows,Linux,Solaris)和多(duo)(duo)種瀏覽器(IE,Firefox,Opera,Safari),可(ke)以用多(duo)(duo)種語言(Java,Ruby,Python,Perl,PHP,C#)編寫測試用例。
Selenium Grid:允許Selenium-RC針(zhen)對(dui)規模龐大的測試案例集或者(zhe)需要在不同環(huan)境中運行的測試案例集進行擴(kuo)展。
能把Selenium RC腳本(ben)和JUnit單(dan)元測試結合起來,既能涵蓋(gai)功(gong)能測試,又能涵蓋(gai)數(shu)據或后臺Java類(lei)測試,從而構成(cheng)一個完(wan)整的Web應用(yong)測試解決方案。
首(shou)先安裝JRE,從官(guan)網(文后參考資料)下載Selenium RC的程序(xu)Jar包,存放在硬盤的某(mou)個目錄(lu)中,如E:/Selenium/。
啟動(dong)Selenium RC服務,啟動(dong)cmd模式,進入到(dao)selenium RC所在的目錄后,輸入:java -jar selenium-server.jar。啟動(dong)完成后,可以看到(dao)以下信息,即表示啟動(dong)成功。
框架底層使(shi)用JavaScript模(mo)擬真實(shi)(shi)用戶對瀏覽器(qi)進行操作。測試(shi)(shi)腳本(ben)執行時,瀏覽器(qi)自動按照腳本(ben)代碼做出點擊(ji),輸入(ru),打開,驗證等操作,就像真實(shi)(shi)用戶所做的(de)一樣,從終端用戶的(de)角度測試(shi)(shi)應(ying)用程序。
使瀏覽器兼容性(xing)測試自動化成為可能,盡管(guan)在不同(tong)的(de)瀏覽器上依然有細微的(de)差別。
使(shi)(shi)用簡單,可使(shi)(shi)用Java,Python等多種語(yu)言編寫用例腳本(ben)。
據Selenium主頁所(suo)說,與其(qi)他(ta)測試工具相比,使用Selenium的最大(da)好處是:
Selenium測(ce)(ce)試直(zhi)接在(zai)瀏(liu)覽器中運(yun)行(xing),就像真實用(yong)戶所做的(de)一樣。Selenium測(ce)(ce)試可以在(zai)Windows、Linux和(he)Macintosh上的(de)Internet Explorer、Chrome和(he)Firefox中運(yun)行(xing)。其他(ta)測(ce)(ce)試工具都不能覆蓋如(ru)此多的(de)平臺(tai)。使(shi)用(yong)Selenium和(he)在(zai)瀏(liu)覽器中運(yun)行(xing)測(ce)(ce)試還有(you)很多其他(ta)好處。
Selenium完全開源,對(dui)商業(ye)用(yong)戶也沒有任何(he)限制,支持分布式,擁(yong)有成熟(shu)的社區與(yu)學習文檔
下面是主要的(de)幾(ji)大好(hao)處:
通過編(bian)寫模(mo)仿(fang)用戶操作的(de)(de)(de)(de)Selenium測(ce)試(shi)腳本(ben)(ben),可以從終端(duan)用戶的(de)(de)(de)(de)角度(du)來測(ce)試(shi)應用程(cheng)序。通過在不同瀏覽器中(zhong)運行測(ce)試(shi),更容易(yi)發現瀏覽器的(de)(de)(de)(de)不兼(jian)容性。Selenium的(de)(de)(de)(de)核心,也稱browser bot,是用JavaScript編(bian)寫的(de)(de)(de)(de)。這使得測(ce)試(shi)腳本(ben)(ben)可以在受支持的(de)(de)(de)(de)瀏覽器中(zhong)運行。browser bot負(fu)責執行從測(ce)試(shi)腳本(ben)(ben)接(jie)收到的(de)(de)(de)(de)命令,測(ce)試(shi)腳本(ben)(ben)要(yao)么(me)是用HTML的(de)(de)(de)(de)表布局編(bian)寫的(de)(de)(de)(de),要(yao)么(me)是使用一(yi)種受支持的(de)(de)(de)(de)編(bian)程(cheng)語言編(bian)寫的(de)(de)(de)(de)。
Selenium 2.0適用于(yu)以(yi)下(xia)瀏覽器(qi):
Google Chrome
Internet Explorer 7, 8, 9, 10, 11
Firefox
Safari
Opera
Edge
HtmlUnit
phantomjs
Android
iOS