1 回答

TA貢獻1995條經(jīng)驗 獲得超2個贊
一般前端自動化測試大致包括
類庫單元測試自動化
UI組件測試自動化
類庫單元測試自動化
較好實現(xiàn)
基本思路是讓不同的瀏覽器可以自動根據(jù)指令跑一些JS函數(shù)
結(jié)果與預(yù)期比對后返回是否通過case測試標(biāo)志
其中一般有兩種實現(xiàn)方式:
其一:
1.打開目標(biāo)瀏覽器,運行測試框架站點
2.測試框架站點通過ajax 輪詢、websocket 等方式,將待測 js 的 case 在瀏覽器內(nèi)運行(通過eval 、createElement("script") 等方式)
3.比對測試結(jié)果,將結(jié)果 post 到遠端
4.遠端接受測試結(jié)果
5.遠端等待所有瀏覽器返回結(jié)果完成
6.marge 所有瀏覽器數(shù)據(jù)顯示最終通過與否結(jié)果。
這種方式弊端:
人工開啟一次所有瀏覽器
需要排隊測試,瀏覽器只能一次運行完一組測試后才能再運行下一組
如果中間某testcase導(dǎo)致瀏覽器異常,返回結(jié)果將缺失,需要人工去服務(wù)器上檢查下瀏覽器狀態(tài)
好處:
可以覆蓋所有想覆蓋到的瀏覽器
另一種方式:
1.將常用瀏覽器內(nèi)核放進一個或多個相互有關(guān)聯(lián)的進程內(nèi)
2.用例通過系統(tǒng)消息發(fā)送到各個包裝的內(nèi)核中
3.每次開啟一個新內(nèi)核進程運行JS用例
4.用例結(jié)果發(fā)送給包裝進程
5.包裝進程匯集所有用例結(jié)果后post到遠端保存
6.包裝進程連帶內(nèi)核進程一起退出
優(yōu)點:
無序人工開啟一次瀏覽器
獨立進程運行,無需排隊
不怕內(nèi)核異常,異常后包裝進程可以直接恢復(fù)內(nèi)核或者通知測試失敗
缺點:
前端實現(xiàn)太困難,需要C++開發(fā)
無法覆蓋到所有瀏覽器
常用內(nèi)核覆蓋更新勞心勞力
添加回答
舉報