更新時(shí)間:2021-09-13 來源:黑馬程序員 瀏覽量:
在上一節(jié)中我們講解了如何測試Web網(wǎng)頁的登錄和退出功能,除此之外,多級網(wǎng)頁跳轉(zhuǎn)、多級導(dǎo)航欄、后退等功能也是Web自動(dòng)化測試的重點(diǎn)內(nèi)容。下面以測試博學(xué)谷網(wǎng)頁跳轉(zhuǎn)功能為例進(jìn)行講解。
通常一個(gè)網(wǎng)站會依據(jù)自身產(chǎn)品的特點(diǎn)對網(wǎng)頁進(jìn)行功能區(qū)域的劃分,每個(gè)欄目里邊會包含多級頁面、導(dǎo)航欄、超鏈接等,為保證數(shù)據(jù)提交、頁面跳轉(zhuǎn)顯示等正常,需要進(jìn)行測試。博學(xué)谷有很多子頁面以及功能頁面,下面以查找問答庫子欄目中的“軟件測試”標(biāo)簽為例講解網(wǎng)頁跳轉(zhuǎn)測試。
使用火狐瀏覽器打開博學(xué)谷主頁,博學(xué)谷導(dǎo)航欄和問答庫子欄目頁面分別如圖6-10和圖6-11所示。
在圖6-11中可以觀察到在導(dǎo)航欄目下邊包含大數(shù)據(jù)、Java、Ul等,通過單擊發(fā)現(xiàn)這些欄目下HTML布局致。設(shè)計(jì)測試用例時(shí),要注意測試用例覆蓋率問題,測試用例編寫需要考慮以下問題。
(1)對包含多個(gè)子頁的界面進(jìn)行測試時(shí),需要對測試用例進(jìn)行規(guī)劃。
(2)問答庫的測試只需要關(guān)注向答庫下的子欄目,對共同點(diǎn)進(jìn)行提取,這些子欄目里網(wǎng)頁布局是一樣的,測試時(shí)僅僅需要測試查找的信息是否能正確打開。
(3)問答庫下的[軟件測試]欄目測試包含翻頁、網(wǎng)頁移動(dòng)顯示、查找信息是否顯示正常。
(4)[軟件測試]欄目的測試用例僅僅修改幾行代碼就可用于同級下的大數(shù)據(jù)、Java、UI等欄目測試,實(shí)現(xiàn)了測試用例重復(fù)使用。
根據(jù)測試內(nèi)容編寫測試腳本,代碼如下所示。
#打開博學(xué)谷主頁 driver.get("https://www.boxuegu.com/") #在導(dǎo)航欄中打開[問答庫]欄目 driver.find element by_id("ask href").click() #打開[軟件測試]欄目 driver.find_element_by_link text(u”軟件測試").click() #保存需要查找的信息“測試計(jì)劃編寫的六要素”到findItem findItem=driver.find_element_by_link_text(u”測試計(jì)劃編寫的六要素”) #將滾動(dòng)條移動(dòng)事件結(jié)果保存到moveBar " " " while moveBar=driver.execute:script("arguments[0].scrolIntoView();",findItem) 查找的信息可能在當(dāng)前打開頁面未顯示區(qū)域或者不在當(dāng)前打開頁面,需要進(jìn)行查找、翻頁等操作 " " " while moveBar: #以滾動(dòng)條返回狀態(tài)作為條件 #判斷是否在當(dāng)前頁面查找到了需要的信息,找到則退出 if findItem==moveBar: break #如果沒有則進(jìn)行翻頁,繼續(xù)進(jìn)行查找,找到則退出 else: driver.find element_by_link text ("2").click() if findItem == moveBar: break #打開需要查找的信息 driver.find element.by_link_text(u"測試計(jì)劃編寫的六要素") .click()
由于[軟件測試]欄下的標(biāo)簽是隨機(jī)的,重新打開后都會隨機(jī)排列標(biāo)簽信息,因此使用while循環(huán)對查找頁面進(jìn)行移動(dòng)、翻頁操作,查找到需要的信息就停止網(wǎng)頁移動(dòng)操作,此時(shí)定位到需要查找信息的顯示界面,進(jìn)行單擊操作查看頁面顯示是否正常。
單元測試,Spring Boot項(xiàng)目單元測試的使用方法?