如何實現(xiàn)前端項目的自動化測試?

PS:本文轉(zhuǎn)載自黑馬測試知乎高贊文章
鏈接:https://www.zhihu.com/question/37977930/answer/3198226504

針對這個問題,我先告知答題思路如下:
1、什么是UI自動化?有什么優(yōu)勢?
2、UI自動化實踐中會遇到什么難題?
3、如何解決難題,將UI落實到實踐中?【重點】
4、UI自動化學(xué)習(xí)資料推薦
一、什么是UI自動化?為什么使用UI自動化?
1、什么是UI自動化?
本質(zhì)上來說,UI自動化測試,就是通過腳本或工具代替人工去執(zhí)行功能測試用例,自動完成測試用例的執(zhí)行工作。常用于驗證用戶界面的功能、兼容和穩(wěn)定性等,主要用于執(zhí)行回歸測試。
UI自動化測試,可以模擬用戶與應(yīng)用程序或網(wǎng)站的交互,自動執(zhí)行用戶界面上的操作,如點擊按鈕、輸入文本、選擇選項等,并檢查應(yīng)用程序或網(wǎng)站的響應(yīng)和行為是否符合預(yù)期,在軟件開發(fā)過程中幫助檢測是否存在bug。
2、UI自動化有什么優(yōu)勢?
UI自動測試可以模擬人工執(zhí)行測試,是最接近用戶真實操作的測試方法,這是UI自動化測試最吸引人的地方,那么UI自動化測試還有下面這些優(yōu)勢:
優(yōu)勢1:提高測試效率。
相比手動測試,UI自動化測試可以快速、準(zhǔn)確地執(zhí)行大量的測試用例,提高測試效率,減少人工測試的工作量。
優(yōu)勢2:提高測試覆蓋率。
UI自動化測試可以覆蓋應(yīng)用程序或網(wǎng)站的各個功能和頁面,確保每個功能都經(jīng)過測試,提高測試覆蓋率,減少漏測的風(fēng)險。
優(yōu)勢3:提高測試一致性。
UI自動化測試可以確保在不同平臺、瀏覽器或設(shè)備上的測試執(zhí)行一致,減少人工測試的主觀因素,提高測試的一致性和可靠性。
優(yōu)勢4:提高軟件質(zhì)量。
UI自動化測試可以幫助檢測和修復(fù)應(yīng)用程序或網(wǎng)站中的錯誤和缺陷,提高軟件質(zhì)量,減少軟件發(fā)布后的問題。
但UI自動化測試在實戰(zhàn)中卻像是“帶刺的玫瑰”。因為它能模擬用戶真實的操作應(yīng)用程序或前端網(wǎng)站,是最貼近用戶真實行為的模擬測試,但是因為實踐中的一些難題,導(dǎo)致UI自動化容易投入很大,卻沒有取的很好的效果。
二、UI自動化實踐中會遇到什么難題?
有些人說UI自動化沒有啥用,主要是UI自動化在實際應(yīng)用中會遇到一些難題,導(dǎo)致沒有取的很好的效果,UI自動化測試目前主要面臨下列這些挑戰(zhàn):
1.UI自動化測試的投入產(chǎn)出比低。
想要取得好的效果,必須前期投入較大在資源進(jìn)行腳本開發(fā),但是往往后期使用時沒有取的預(yù)想的效果,容易導(dǎo)致投入中斷?
2.保障腳本的維護(hù)是個大問題。
項目頻繁的迭代,導(dǎo)致前端頁面變化很快,對應(yīng)的腳本得不斷的修改,如何保障腳本的維護(hù)是個大問題。
3.UI自動化測試的穩(wěn)定性也是個挑戰(zhàn).
腳本執(zhí)行時經(jīng)常遇到各種奇奇怪怪的Bug,如何保障腳本的穩(wěn)定性是個頭疼的問題。
三、實踐中如何解決以上4個難題?【重點】
實際過程中,以上4個難題該如何進(jìn)行優(yōu)化呢?咱們以前端的web UI自動化為項目,以Python+Selenium框架為背景,來看下項目若要執(zhí)行自動化測試,應(yīng)該怎么搞。
優(yōu)化1:如何保障投入產(chǎn)出比?
很多人搞UI自動化測試沒有想清楚到底要怎么搞?上來就拿個框架,先搞起來再說,投入了很多人力物力,然后搞到一半時卻發(fā)現(xiàn)很多問題,最后就完犢子了。。。
所以開始前,需要做好規(guī)劃,要明確目標(biāo)。如果是新起動的UI自動化測試,建議可以先選好框架,然后選擇一個業(yè)務(wù)流程作為案例,以該案例為目標(biāo)去執(zhí)行框架的搭建和腳本的開發(fā),完成開發(fā)后主要投入回歸測試當(dāng)中,看看實際執(zhí)行的效果如何,然后統(tǒng)計投入的時間和人力成本,然后再進(jìn)行下一步的推進(jìn)。
優(yōu)化2:如何保障腳本的維護(hù)?
當(dāng)前項目都是頻繁迭代的,這是不可改變的事實,所以腳本寫完后一定需要維護(hù)修改。
基于這個事實,我們能優(yōu)化的就是減少修改的次數(shù),在UI自動化中,最常用的優(yōu)化方法就是使用PO模式進(jìn)行封裝。
那什么是PO模式呢?
PO,是Page Object的縮寫,簡單來說,就是將前端項目中的每個頁面封裝為一個“類”,頁面上的元素都封裝為實例的“屬性”,頁面上的功能操作都封裝為實例的“方法”。
這樣封裝后,無論將來頁面怎么變化,我們只需要修改一次即可,可以大大的提升維護(hù)的效率。

優(yōu)化3:如何保障腳本執(zhí)行的穩(wěn)定性?
UI自動化腳本執(zhí)行時可能會遇到各種問題,比如瀏覽器啟動時間過長,比如頁面加載過長,比如圖片被擋住等等,你無法預(yù)知。
優(yōu)化方法,除了我們常用的各種顯式或隱式等待處理外,我們還可以對原始的api進(jìn)行封裝。比如以Web UI常用的Selenium框架為例,當(dāng)我們等待某個元素出現(xiàn)時,為了保障成功性,需要對“等待”做一個封裝。除了顯示等待外,還可以進(jìn)一步優(yōu)化,做個循環(huán)處理,就是等待3次,每次等待失敗后可以重新刷新等待。
比如封裝一個“等待元素”出現(xiàn),確保可以點擊的方法,如下所示:
當(dāng)然,除了以上的實踐經(jīng)驗,其他比如還可以找開發(fā)配合,對要測試的常用UI元素進(jìn)行id的編碼,這樣也可以大大提升成功的效率,輕松解決定位的問題等。
四、UI自動化學(xué)習(xí)資料推薦
UI自動化分為web自動化和app自動化。
如果想深入學(xué)習(xí)UI自動化,建議可以看下列4套視頻進(jìn)行系統(tǒng)學(xué)習(xí),如下所示:





若你是對測試不太了解的測試小萌新,有太多太多對測試的疑惑(前途、薪資、技術(shù)含量、男生是否可以干.....),強(qiáng)烈推薦你觀看《測試小白必看:學(xué)習(xí)軟件測試必問的100個問題,從此貼開始》,相信能掃除掉你心目中90%以上的常見問題。
《100個常見問題鏈接》:http://bbs.itheima.com/thread-507947-1-1.html

包括軟件學(xué)習(xí)路線圖,黑馬50多天的上課視頻、16個突擊實戰(zhàn)項目,80余個軟件測試用軟件,37份測試文檔,70個軟件測試相關(guān)問題,40篇測試經(jīng)驗級文章,上千份測試真題分享,還有2020軟件測試面試寶典,還有軟件測試求職的各類精選簡歷,希望對大家有所幫助…..?
《2023黑馬測試學(xué)習(xí)路線圖鏈接》:http://bbs.itheima.com/thread-405757-1-1.html
