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