近幾年,Web技術(shù)發(fā)展勢(shì)頭迅猛,瀏覽器市場(chǎng)群雄爭(zhēng)霸、各種UI組件庫(kù)也如雨后春筍。中培偉業(yè)《軟件自動(dòng)化測(cè)試與持續(xù)集成實(shí)踐》培訓(xùn)專(zhuān)家陸老師指出,現(xiàn)在互聯(lián)網(wǎng)上已經(jīng)很少有僅支持一種瀏覽器,并且不基于任何可復(fù)用的UI組件庫(kù)進(jìn)行開(kāi)發(fā)的應(yīng)用了。
UI組件庫(kù)的廣泛采用在提高開(kāi)發(fā)效率的同時(shí),也極大的提升了用戶(hù)體驗(yàn)。基于UI組件庫(kù)之所以能快速開(kāi)發(fā)出功能強(qiáng)大的頁(yè)面,是因?yàn)閁I組件庫(kù)可以自動(dòng)生成海量、結(jié)構(gòu)類(lèi)似的HTML源碼。
開(kāi)發(fā)人員是幸福的,因?yàn)檫@一切對(duì)于他來(lái)說(shuō)完全透明。于是只剩下自動(dòng)化測(cè)試人員獨(dú)自面對(duì)這樣“恐怖”的頁(yè)面源碼。
業(yè)界常見(jiàn)測(cè)試工具的腳本本質(zhì)上還是針對(duì)頁(yè)面源碼的,因此原本就舉步維艱的自動(dòng)化測(cè)試在開(kāi)發(fā)使用UI組件庫(kù)之后變得雪上加霜。
因此即使開(kāi)發(fā)人員沒(méi)對(duì)代碼做任何改動(dòng),測(cè)試腳本也會(huì)因?yàn)閁I框架的升級(jí)變得無(wú)法回放。
控件ID是自動(dòng)生成的,甚至在每次刷新頁(yè)面后都會(huì)變化。大部分自動(dòng)化測(cè)試工具在“錄制”腳本時(shí),都會(huì)優(yōu)先使用ID定位策略,自動(dòng)生成的ID會(huì)導(dǎo)致這種關(guān)鍵的控件定位策略變得無(wú)效。UI框架在各種瀏覽器下自動(dòng)生成頁(yè)面源碼可能不完全相同,為了在不同瀏覽器下“看起來(lái)一樣”,實(shí)際的DOM結(jié)構(gòu)有時(shí)也可能是不同的,因此所錄制腳本的瀏覽器兼容性會(huì)比較差。
技術(shù)的發(fā)展是為了讓生活變得越來(lái)越輕松。從用戶(hù)的角度來(lái)看確實(shí)如此:Web應(yīng)用的功能覆蓋范圍越來(lái)越廣、操作越來(lái)越方便、界面越來(lái)越美觀。
為什么自動(dòng)化測(cè)試人員沒(méi)有感覺(jué)工作變得輕松呢?
要回答這個(gè)問(wèn)題,首先要分析“用戶(hù)使用軟件”與“自動(dòng)化測(cè)試軟件”之間的一些重要差異:
用戶(hù)使用軟件時(shí)只關(guān)注界面上能“看”到的,而不用總是“查看頁(yè)面源碼”。用戶(hù)會(huì)更關(guān)注整體業(yè)務(wù)的正確性、穩(wěn)定性,而不僅僅是每個(gè)孤立頁(yè)面功能的正確性;
用戶(hù)對(duì)頁(yè)面樣式、響應(yīng)時(shí)間、瀏覽器兼容性要求越來(lái)越高; 如果我們能像用戶(hù)使用軟件一樣進(jìn)行自動(dòng)化測(cè)試,測(cè)試就會(huì)變得更敏捷。
最后陸老師總結(jié)道,自動(dòng)化測(cè)試中最關(guān)鍵的兩部分是“腳本”和“斷言”。至此,自動(dòng)化測(cè)試腳本的編寫(xiě)、維護(hù)以及執(zhí)行已經(jīng)可以跟上敏捷開(kāi)發(fā)的步伐了。