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