自動(dòng)化測試框架封裝大揭秘!你還在為招聘要求發(fā)愁嗎?
軟件測試領(lǐng)域里,自動(dòng)化測試正變得愈發(fā)重要。Selenium這款自動(dòng)化測試工具框架,它的特性以及使用時(shí)需留意的細(xì)節(jié)有哪些?下面,我將逐一為大家詳細(xì)介紹。
核心框架構(gòu)成
該自動(dòng)化框架主要采用了分層加PO模式進(jìn)行設(shè)計(jì)。具體來說,它包括基礎(chǔ)封裝層,即BasePage;頁面對象層,即PO;以及測試用例層,即TestCase。在電商項(xiàng)目中,基礎(chǔ)封裝層主要負(fù)責(zé)常規(guī)操作,例如打開瀏覽器等。而PO頁面對象層則專注于商品詳情頁、購物車頁等頁面的元素定位和操作編寫。測試用例層主要承擔(dān)著設(shè)計(jì)多樣化流程測試案例的任務(wù),比如設(shè)計(jì)商品加入購物車的測試流程。
測試用例設(shè)計(jì)
自動(dòng)化測試工程師負(fù)責(zé)編寫測試腳本,起初主要針對的是基礎(chǔ)的業(yè)務(wù)流程進(jìn)行測試,例如登錄、操作業(yè)務(wù)流程和退出等環(huán)節(jié)。以某社交軟件的自動(dòng)化測試為例,測試過程首先會(huì)設(shè)定用戶登錄的操作步驟,然后進(jìn)行發(fā)布動(dòng)態(tài)等業(yè)務(wù)操作,最后完成賬號(hào)的注銷。之所以這樣安排,是因?yàn)楸仨毾葘緲I(yè)務(wù)流程進(jìn)行測試,以確保軟件的核心功能能夠正常運(yùn)行。接下來,才會(huì)逐步進(jìn)行對更復(fù)雜功能的測試。
測試結(jié)果處理
若自動(dòng)化測試工具提供了覆蓋率數(shù)據(jù),Jenkins便會(huì)按照時(shí)間先后的順序創(chuàng)建文件夾,以便存放測試處理后的結(jié)果。在大型項(xiàng)目的測試環(huán)節(jié),若多個(gè)腳本同時(shí)運(yùn)行,或者同一腳本多次執(zhí)行,每個(gè)時(shí)間段的測試結(jié)果都會(huì)被分別保存在不同的文件夾中。這樣的處理方式便于我們對比不同時(shí)間點(diǎn)的測試狀況,從而能更迅速地定位問題。
自動(dòng)化用例選取
挑選自動(dòng)化測試案例時(shí),應(yīng)優(yōu)先考慮那些穩(wěn)定可靠的接口或內(nèi)容。以支付接口為例,若其穩(wěn)定性不足,自動(dòng)化測試容易出現(xiàn)錯(cuò)誤,從而造成時(shí)間和資源的浪費(fèi)。對于頁面類方法,分析時(shí)需從用戶的使用習(xí)慣出發(fā)。以在線教育課程的購買頁面為例,我們可以將登錄、選課、支付、查看課程等環(huán)節(jié)分別處理,無需將它們合并為一個(gè)整體操作。這樣操作有利于后續(xù)的維護(hù)和功能的擴(kuò)展。
元素定位優(yōu)化
測試時(shí)會(huì)有元素發(fā)生變化,因此我們需要調(diào)整定位方法。可以嘗試用部分元素進(jìn)行定位,或者通過查找父元素和同級(jí)別元素來達(dá)成目的。比如在論壇頁面上,評(píng)論按鈕可能包含變動(dòng)參數(shù),我們首先定位到評(píng)論區(qū)域的上級(jí)元素,然后就能精確地找到評(píng)論按鈕。在使用網(wǎng)頁日歷插件前,需審視前端代碼,看是否能夠通過定位特定元素來選取日期。若此方法行不通,則需考慮借助JavaScript來完成功能。
等待機(jī)制與其他操作
在規(guī)定的時(shí)間內(nèi),系統(tǒng)會(huì)持續(xù)查找目標(biāo)元素,若成功找到或時(shí)間已到,必須確保頁面完全加載完畢。與之不同,顯式等待是通過編寫特定指令來控制的,只有當(dāng)所需元素完全加載,程序才會(huì)繼續(xù)執(zhí)行后續(xù)代碼。在Selenium工具里,無論是關(guān)閉瀏覽器還是退出會(huì)話,都可以用來結(jié)束瀏覽器的使用。關(guān)閉當(dāng)前活動(dòng)標(biāo)簽頁的操作用“close”完成,而“quit”則是關(guān)閉所有標(biāo)簽頁并徹底退出。通常情況下,“quit”用于測試結(jié)束前的清理工作,“close”則適用于測試過程中關(guān)閉特定頁面。使用get_screenshot_as_file()函數(shù),結(jié)合try/except機(jī)制,我們能夠捕捉到異常并制作截圖;若成功定位到目標(biāo)元素,send_keys()函數(shù)便派上用場,實(shí)現(xiàn)文件傳輸。
在使用Selenium進(jìn)行自動(dòng)化測試時(shí),大家是否遇到過特別麻煩的情況?歡迎大家來交流你們的經(jīng)歷。同時(shí),也請給這篇文章點(diǎn)贊,并分享給可能需要幫助的朋友。
作者:小藍(lán)
鏈接:http://www.m13746.cn/content/9104.html
本站部分內(nèi)容和圖片來源網(wǎng)絡(luò),不代表本站觀點(diǎn),如有侵權(quán),可聯(lián)系我方刪除。