DaggerWebUI自動化測試框架
Dagger是網(wǎng)易杭州研究院QA團隊開發(fā)的一個輕量級、運行穩(wěn)定的WebUI自動化測試框架,主要基于Selenium及TestNg可以認為是對Selenium進行二次封裝的一個框架(俗稱 造輪子 )。之所以把這個輪子開源出來,主要在于經(jīng)過了公司內(nèi)部多個項目的實踐,也取得了不錯的成效,因此,希望開源以后可以對大家有所幫助及參考。
設(shè)計理念
Dagger首先是一個WebUI自動化框架,提供了賴以操縱瀏覽器的一些API。API數(shù)量不多,少于20個,但從實踐上,已經(jīng)基本涵蓋95%的應(yīng)用場景了(其余5%比較 個性 的自動化操作一般是封裝在業(yè)務(wù)邏輯層面,有時候甚至?xí)氁猦ack)
Dagger其次是一個測試框架,使用TestNg管理和運行用例,TestNg相關(guān)斷言內(nèi)嵌于上述API中。因此,在我們的測試用例里面不應(yīng)該看到單獨的TestNg斷言的
Dagger還是一種設(shè)計風(fēng)格:簡約。無論是Dagger框架本身還是基于Dagger編寫的測試用例,都是十分light及straightforward的,以至于會讓人感覺有點土。但實踐中,這兩者確保了低成本、易用性、可維護性
WebUI自動化從業(yè)界看,難推進,易爛尾,原因基本在于:維護成本高、運行速度慢、穩(wěn)定性差
Dagger專注于WebUI自動化,從技術(shù)上克服了速度與穩(wěn)定問題(見下文)。只封裝夠用的瀏覽器操作為API,并充分簡化/強化這些API,以簡約的風(fēng)格去降低自動化的學(xué)習(xí)及使用成本。同時,在實踐中,我們主要使用Dagger編寫冒煙用例、其次是主干用例,少寫邏輯復(fù)雜功能,不寫邊邊角角功能,讓用例也保持清爽(在整個自動化實施過程中,會定期進行用例Review),同樣易于后期維護
主要特性
API極少,易于上手,詳見這里.
提供比較完備的文檔,便于快速入門,詳見這里.
支持單機多瀏覽器并發(fā)執(zhí)行,大大縮短用例執(zhí)行時間,詳見這里
通過修改TestNg源碼實現(xiàn)失敗用例自動重運行(詳見這里)由此幾乎消除WebUI自動化中常見的虛假失敗
默認使用Chrome瀏覽器,原因詳見這里
失敗用例自動截屏
后續(xù)工作
加入Flex/Flash自動化支持
如何使用
Dagger十分適合中小型團隊從零開始WebUI自動化,這樣的話,只須要直接下載整個Dagger代碼就行了,Dagger本身都已經(jīng)配置好了,下載后看一下使用文檔就可以直接開始寫用例了
也可以把Dagger打成Jar包,導(dǎo)入已有的自動化框架中,詳見這里
