selenium2支持通過各種driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驅(qū)動真實瀏覽器完成測試。 除此之外,selenium也是支持無界面瀏覽器操作的。比如說HtmlUnit和PhantomJs。他們都不是真正的瀏覽器,運行時不會渲染頁面顯示內(nèi)容,但是支持頁面元素查找,js的執(zhí)行等;由于不進(jìn)行css和gui渲染,運行效率要比真實的瀏覽器要快很多。
1.htmlUnit是java實現(xiàn)的類瀏覽器程序,包含在selenium server中,無須驅(qū)動,直接實例化就行。 用法如下:
WebDriver driver = new HtmlUnitDriver();//
HtmlUnitDriver driver = new HtmlUnitDriver(true);//支持js(實際還是支持的不夠好,因為htmlUnit使用的js引擎(Rhinojs)不是主流的瀏覽器支持的)
2.PhantomJS 是一個基于 WebKit(WebKit是一個開源的瀏覽器引擎,Chrome,Safari就是用的這個瀏覽器引擎) 的服務(wù)器端JavaScript API,主要應(yīng)用場景是:無需瀏覽器的 Web 測試,頁面訪問自動化,屏幕捕獲,網(wǎng)絡(luò)監(jiān)控
用法如下:
PhantomJS driver = new PhantomJSDriver();
3.為了看以上兩個無界面瀏覽器是否適合當(dāng)前項目組前端自動化,做了一些預(yù)研,結(jié)果如下:
最終的預(yù)研結(jié)果是這兩者不適合我們的系統(tǒng),因為我們的系統(tǒng)中有很多Alert,只能忍痛放棄
4.總結(jié)HtmlUnitDriver,PhantomJS與真實瀏覽器driver的優(yōu)缺點比較
總結(jié): 如果你要測試的頁面js不是很多,并且不需要做兼容性測試的話,HtmlUnitDriver無遺是最好的選擇 如果你需要做兼容性測試的話,還是應(yīng)該選擇真實的瀏覽器driver(如果你想提高自動化運行速率,可以考慮用testng,selenium grid并行測試)
|
|