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