selenium2支持無界面操作(HtmlUnit和PhantomJs)


selenium2支持通過各種driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驅動真實瀏覽器完成測試。

除此之外,selenium也是支持無界面瀏覽器操作的。比如說HtmlUnit和PhantomJs。他們都不是真正的瀏覽器,運行時不會渲染頁面顯示內容,但是支持頁面元素查找,js的執行等;由於不進行css和gui渲染,運行效率要比真實的瀏覽器要快很多。

 

1.htmlUnit是java實現的類瀏覽器程序,包含在selenium server中,無須驅動,直接實例化就行。

用法如下:
WebDriver driver = new HtmlUnitDriver();//
HtmlUnitDriver driver = new HtmlUnitDriver(true);//支持js(實際還是支持的不夠好,因為htmlUnit使用的js引擎(Rhinojs)不是主流的瀏覽器支持的
 
2.PhantomJS 是一個基於 WebKit(WebKit是一個開源的瀏覽器引擎,Chrome,Safari就是用的這個瀏覽器引擎) 的服務器端JavaScript API,主要應用場景是:無需瀏覽器的 Web 測試,頁面訪問自動化,屏幕捕獲,網絡監控
 
用法如下:
PhantomJS driver = new PhantomJSDriver();
 
3.為了看以上兩個無界面瀏覽器是否適合當前項目組前端自動化,做了一些預研,結果如下:
 
行為描述  行為 HtmlUnitDriver HtmlUnitDriver(true) PhantomJSDriver FirefoxDriver
文本框input 輸入文本 yes yes yes yes
按鈕button 點擊按鈕 yes yes yes yes
           
下拉列表select 選擇選項 yes yes  yes yes
復選框checkbox 點擊 yes yes  yes yes
Alert(顯示帶有一條指定消息和一個 OK 按鈕的警告框) 點擊 no no  no yes
Promprt(顯示可提示用戶進行輸入的對話框) 點擊 no no  no  yes
 
 最終的預研結果是這兩者不適合我們的系統,因為我們的系統中有很多Alert,只能忍痛放棄
 
 
4.總結HtmlUnitDriver,PhantomJS與真實瀏覽器driver的優缺點比較


driver類型 優點 缺點 應用
真實瀏覽器driver 真實模擬用戶行為 效率、穩定性低 瀏覽器兼容性測試
HtmlUnit 速度快 js引擎(Rhinojs)不是主流的瀏覽器支持的,故對js支持的不夠好 包含少量js的頁面測試
PhantomJS 速度中等、模擬行為接近真實 不能模擬不同/特定瀏覽器的行為 非GUI的功能性測試
 

總結:

如果你要測試的頁面js不是很多,並且不需要做兼容性測試的話,HtmlUnitDriver無遺是最好的選擇

如果你需要做兼容性測試的話,還是應該選擇真實的瀏覽器driver(如果你想提高自動化運行速率,可以考慮用testng,selenium grid並行測試)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM