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