背景
當(dāng)前測(cè)試的BI產(chǎn)品瘦材,前端邏輯非常復(fù)雜仿畸,而且改動(dòng)頻繁,導(dǎo)致經(jīng)常出現(xiàn)一些regression bug簿晓。所以UI自動(dòng)化測(cè)試就十分有必要了千埃。
時(shí)隔六年,再次開展UI自動(dòng)化測(cè)試谒臼,對(duì)此做了一些總結(jié)耀里。
原理
自動(dòng)化測(cè)試是把人對(duì)軟件的測(cè)試行為轉(zhuǎn)化為由機(jī)器執(zhí)行測(cè)試行為的實(shí)踐。
通過代碼的方式測(cè)試被測(cè)對(duì)象底哥。
?行為模擬—UI自動(dòng)化測(cè)試
?協(xié)議模擬—接口自動(dòng)化測(cè)試织堂、性能測(cè)試
優(yōu)點(diǎn)
代替大量的手工機(jī)械重復(fù)性操作,測(cè)試工程師可以把更多的時(shí)間花在更全面的用例設(shè)計(jì)和新功能的測(cè)試易阳;
自動(dòng)化測(cè)試可以大幅提升回歸測(cè)試的效率,非常適合敏捷開發(fā)過程拒课;
可以更好地利用無人值守時(shí)間事示,去更頻繁地執(zhí)行測(cè)試,特別適合非工作時(shí)間執(zhí)行測(cè)試肖爵,工作時(shí)間分析測(cè)試結(jié)果;
自動(dòng)化測(cè)試可以保證每次測(cè)試執(zhí)行及驗(yàn)證的一致性和可重復(fù)性冀自,避免人為的遺漏和疏忽
缺點(diǎn)
自動(dòng)化測(cè)試不能取代手工測(cè)試,只能替代手工測(cè)試中執(zhí)行頻率高熬粗、機(jī)械化的重復(fù)步驟;
自動(dòng)化測(cè)試遠(yuǎn)比手工測(cè)試脆弱灌诅,對(duì)于執(zhí)行過程中的明顯錯(cuò)誤和意外事件含末,自動(dòng)化測(cè)試沒有處理能力;
開發(fā)工作量遠(yuǎn)大于單次的手工測(cè)試答渔,當(dāng)開發(fā)好的自動(dòng)化測(cè)試用例執(zhí)行次數(shù)大于5次時(shí),才能收回成本宋雏;
自動(dòng)化測(cè)試一般用于回歸測(cè)試务豺,能發(fā)現(xiàn)的缺陷數(shù)量比較少;
測(cè)試項(xiàng)目成功與否很大程度依賴自動(dòng)化測(cè)試用例的設(shè)計(jì)以及實(shí)現(xiàn)的質(zhì)量笼沥;
UI或需求變更后,通常自動(dòng)化測(cè)試程序也需要變更馆纳,維護(hù)成本比較高;
業(yè)務(wù)測(cè)試和自動(dòng)化測(cè)試團(tuán)隊(duì)分離鲁驶,前者懂業(yè)務(wù)不懂自動(dòng)化技術(shù)舞骆,后者懂自動(dòng)化技術(shù)不懂業(yè)務(wù);
自動(dòng)化測(cè)試開發(fā)人員必須具備一定的設(shè)計(jì)和開發(fā)能力
綜上所述脆霎,UI自動(dòng)化測(cè)試缺點(diǎn)比優(yōu)點(diǎn)多狈惫,所以我們?cè)陂_始自動(dòng)化測(cè)試之前需要判斷,該產(chǎn)品是否適合做自動(dòng)化測(cè)試。
是否適合做自動(dòng)化測(cè)試
1 需求和UI總體穩(wěn)定菠红,需求頻繁變化會(huì)導(dǎo)致自動(dòng)化測(cè)試的維護(hù)成本直線上升难菌;UI如果發(fā)生大的變動(dòng)蔑滓,自動(dòng)化測(cè)試程序也需要跟著變更郊酒。
2 自動(dòng)化測(cè)試更適合運(yùn)行維護(hù)周期長的產(chǎn)品键袱,不適合短期的項(xiàng)目。因?yàn)橹芷陂L的產(chǎn)品褐健,自動(dòng)化測(cè)試用例需要多次運(yùn)行澜汤,而短期的項(xiàng)目開展自動(dòng)化測(cè)試往往投入產(chǎn)出比過低,得不償失俊抵。
3 如果產(chǎn)品支持多瀏覽器,如Chrome刹帕、Firefox谎替、IE、Edge等钱贯,測(cè)試工作量直接放大好幾倍,采用自動(dòng)化測(cè)試收益就比較大砍濒。同樣地硫麻,有些企業(yè)級(jí)產(chǎn)品有定制化版本,同一個(gè)改動(dòng)需要在多個(gè)定制化版本上回歸測(cè)試拿愧,也非常適合自動(dòng)化測(cè)試。
4 有些測(cè)試場(chǎng)景手動(dòng)無法測(cè)試券敌,比如7*24的穩(wěn)定測(cè)試。
5 產(chǎn)品具有可測(cè)試性待诅,對(duì)于UI自動(dòng)化來說,可測(cè)試性是指頁面元素的命令募书、結(jié)構(gòu)有規(guī)律测蹲,方便定位。同時(shí)扣甲,開發(fā)預(yù)留了可測(cè)試性接口,例如圖片驗(yàn)證碼启泣,自動(dòng)化測(cè)試環(huán)境可以通過預(yù)留的方法不顯示圖片驗(yàn)證碼粹排,從而避免自動(dòng)化測(cè)試中的障礙。
6 測(cè)試團(tuán)隊(duì)有一定的設(shè)計(jì)和編程能力顽耳。
自動(dòng)化測(cè)試實(shí)施原則
既然UI自動(dòng)化測(cè)試有這么多的坑射富,實(shí)施的時(shí)候需要遵循一定的原則膝迎,這樣才能揚(yáng)長避短胰耗,充分發(fā)揮自動(dòng)化測(cè)試的優(yōu)勢(shì)。
1 大道至簡
自動(dòng)化測(cè)試用例要簡單卖漫,不要有復(fù)雜的場(chǎng)景或流程赠群。因?yàn)閺?fù)雜的場(chǎng)景,如果執(zhí)行過程中出錯(cuò)查描,無法知道精確的錯(cuò)誤;會(huì)降低可維護(hù)性匀油,設(shè)想一下,其他人接管你的代碼敌蚜,需要先花很長時(shí)間梳理你的業(yè)務(wù)流程。
2 走投無路
是指只有必須在瀏覽器中完成的操作该园,才會(huì)打開瀏覽器帅韧,因?yàn)闉g覽器操作是不穩(wěn)定的啃勉,這樣可以提高自動(dòng)化測(cè)試的穩(wěn)定性。例如淮阐,創(chuàng)建用戶、準(zhǔn)備數(shù)據(jù)等可以通過接口或者DB的方式泣特,沒有必要通過瀏覽器來做。
3 獨(dú)立自主
自動(dòng)化測(cè)試用例應(yīng)該是獨(dú)立勒叠,不相互依賴的膏孟。
4 步步為營
自動(dòng)化測(cè)試的推進(jìn),不應(yīng)該因?yàn)楦采w率的要求而急于求成柒桑。如果在已有測(cè)試還不穩(wěn)定的情況下,急于推進(jìn)新的測(cè)試飘诗,會(huì)導(dǎo)致技術(shù)債務(wù)越來越多界逛,老板對(duì)于自動(dòng)化測(cè)試的信心大打折扣。
技術(shù)棧
本次自動(dòng)化測(cè)試中的技術(shù)棧
編程語言:Java
測(cè)試框架:TestNG
測(cè)試報(bào)告:Allure
持續(xù)集成:Jenkins