蔡建華 章曉琳
摘要:軟件產(chǎn)業(yè)的不斷發(fā)展使得軟件測試在軟件的開發(fā)和推廣使用中的地位越來越大,發(fā)展自動化的軟件測試工具是軟件測試長期發(fā)展的必然趨勢。本文對自動化的測試工具Selenium進行研究分析。
關鍵詞:Selenium;軟件自動化測試;測試工具;測試腳本
中圖分類號:TP311.56 文獻標識碼:A 文章編號:1007-9416(2018)09-0088-01
當今時代背景下軟件自身的質(zhì)量受到人們的廣泛關注,軟件測試作為保障軟件實際質(zhì)量的重要手段在軟件開發(fā)的生命周期中具有不可忽視的地位。軟件的自動化測試需要測試工具給予必要的輔助,除了那些功能完備的商業(yè)測試框架之外,很多開源工具也有廣泛的應用基礎,Selenium就是很好用的功能性Web自動化測試框架之一。相對于傳統(tǒng)的人工測試而言,合理使用自動化測試技術你能節(jié)省大量的人力和物力,在測試效率上也有較大提升,在自動化腳本和編程語言的支持下能夠縮短軟件的測評周期。
1 Selenium技術介紹
Selenium是一整套的開源自動化測試技術的實現(xiàn)平臺,Selenium支持IE、Chrome等多種瀏覽器,在當前普遍推廣使用的Windows操作系統(tǒng)上可以穩(wěn)定的運行,腳本對不同的編程語言均可轉(zhuǎn)換識別[1]。
1.1 Selenium IDE
Selenium IDE是編寫和運行測試腳本的集成開發(fā)環(huán)境。它隸屬于火狐瀏覽器上的一種插件,能夠方便錄制和回放用戶的操作。隨后生成測試用例,并將其轉(zhuǎn)換為其他語言的自動化腳本,進而開展對軟件的測試。在需要時可以查看記錄的回放,幫助相關測試技術人員進行預期的軟件測試工作,進而降低軟件測試工作對測試人員的技術性要求,以現(xiàn)代化的信息技術作為支持,提高操作的精準性和效率[2]。Selenium IDE 還能夠?qū)⒛_本語言根據(jù)需要轉(zhuǎn)化,類似于將HTML的腳本轉(zhuǎn)化為Java和C#等其他語言的腳本,滿足后續(xù)各項測試工作的實際需要。
1.2 Selenium Server
Selenium Server負責控制瀏覽器行為,在自動化測試過程中就是要保證Selenium Remote Control的腳本穩(wěn)定運行。在Selenium Server經(jīng)優(yōu)化改善之后,可以將Selenium Grid的各項功能應用到Selenium Server中,使分布式測試軟件成為可能。它可以把測試用例同時發(fā)送到具有不同瀏覽器和操作系統(tǒng)的多臺服務器上去,通過這種方式能優(yōu)化軟件測試的過程和步驟,進而縮短軟件測試階段需要花費的時間。Selenium Server是兼容應用的基礎架構(gòu),通過不斷的優(yōu)化改善,對Selenium RC API和WebDriver API提供必要的支持。
1.3 Selenium WebDriver
Selenium2.0后引入WebDriver,為Web應用程序提供編程接口,使兼容性得到增強,并支持更多瀏覽器。Selenium WebDriver采用的基礎架構(gòu)和傳統(tǒng)方式并不相同,它可以讓測試工具直接調(diào)用瀏覽器的原生方法,支持更多語言,驅(qū)動不同平臺,突破了原有架構(gòu)的局限性。Selenium WebDriver支持例如Java、C#、Ruby、Python等多種編程語言,具有充分的靈活性和多元性,其并不依賴于任何特定測試框架開展工作,因此單元測試或者main方式都能夠很好地使用Selenium WebDriver技術,該技術能夠廣泛的運用到生產(chǎn)檢測當中。
2 Selenium WebDriver的工作方式
WebDriver在設計上是按照軟件/委托方的模式進行設計并工作的,其中軟件端允許測試代碼啟動瀏覽器,它主要負責等待委托方發(fā)出請求訊號并對訊號及時反映。委托方為測試代碼,其各項工作均以HTTP請求方式發(fā)送給被測試瀏覽器,以遠程服務器方式等待回應。軟件端在接收到請求之后立刻執(zhí)行規(guī)范化的操作,在Response中返回執(zhí)行的實時狀態(tài)和執(zhí)行的返回值等重要信息。軟件端的各項功能的合理運行是由于網(wǎng)頁內(nèi)驅(qū)動軟件(WebDriver)對一些主流瀏覽器例如IE、Firefox、Chrome等都能夠?qū)崿F(xiàn)正常工作,當下支持大部分主流瀏覽器,因此委托方能以統(tǒng)一的restful的接口對瀏覽器進行自動化操作,以編輯好的腳本控制Web,進而完成一系列的工作[2]。
在網(wǎng)頁測試上采用了和語言編寫測試類的Selenium Remote Control的代理服務器差異較大的實現(xiàn)機制,只需要使用網(wǎng)頁內(nèi)驅(qū)動軟件按照實際運行即可,不需提前啟動進程或安裝程序,進而優(yōu)化了工作步驟,網(wǎng)頁內(nèi)驅(qū)動軟件主要通過瀏覽器自身的支持或者瀏覽器的擴展達到控制瀏覽器的目的,從而起到彌補傳統(tǒng)的Selenium測試軟件的弊端,跳出JavaScript沙箱的目的。HtmlUnit Driver使用HtmlUnit時并不會打開真實的瀏覽器,而是在內(nèi)存中執(zhí)行代碼,進而運行速度較快,是當前相關技術中運行較快的一種,它也支持Android和iPhone的移動端軟件測試,具有廣泛的應用推廣價值。
3 案例分析
以對智能教學云平臺的開發(fā)測試來分析應用Selenium技術,對軟件測試的編程以及自動化的軟件測試步驟進行詳細分析[3]。
采用Selenium IDE技術錄制腳本。Selenium IDE在火狐瀏覽器中通過添加組件的方式將其自身安裝到工具欄當中,安裝后打開測試軟件即可在火狐瀏覽器中單獨運行。在GUI的自動化測試工具支持下,可以先錄制需要的腳本,之后采取一定的操作完善自動化測試的工作要求。測試該系統(tǒng)的登錄功能的時候,在網(wǎng)站中的登錄頁面,其中在火狐瀏覽器中打開智能教學系統(tǒng)登錄的網(wǎng)頁,在Selenium IDE的Base URL中填入指定的網(wǎng)頁地址,登錄之后在Selenium IDE中新建名為“systemLogin”的測試,點擊錄制按鈕對操作內(nèi)容實施錄制。
在火狐瀏覽器中已打開的登錄頁面上按照測試要求填寫用戶名和密碼信息之后登錄系統(tǒng)內(nèi)部,可通過對應網(wǎng)頁里的命令快捷鍵添加斷言方便測試。在實際的填寫和登錄過程中,Selenium IDE將記錄相應操作的各個步驟,轉(zhuǎn)換為腳本保存。在錄制完成之后,通過查看測試的用例部分可以獲得Selenium IDE記錄的命令及參數(shù)。
腳本錄制完成之后還要及時檢查錄制的科學性和正確性,將錯誤的代碼及時進行修正,之后可以按需轉(zhuǎn)化為Java或C#等語言的程序,為后續(xù)的編程提供相應便利。
4 結(jié)語
綜上所述,Selenium是現(xiàn)代化的一種完整的開源軟件測試工具,其本身具備腳本錄制功能,并且能夠快速的將腳本轉(zhuǎn)換為編程語言,在生成語言的開發(fā)環(huán)境下測試用例。自動化測試技術的出現(xiàn)提高了軟件測試的效率,這能減少行業(yè)開發(fā)成本,提高生活體驗和工作效率,促進軟件開發(fā)產(chǎn)業(yè)的不斷健康發(fā)展。
參考文獻
[1]陳斌仙,陳佳麗,陳阿妹.基于Selenium的自動化測試研究[J].赤峰學院學報(自然版),2016,(9):19-21.
[2]吳瑩.基于Selenium的Web自動化測試框架[J].科技傳播,2011,(18):223-224.
[3]辛慶.基于Selenium的Web UI自動化測試[D].華南理工大學,2012.