文章目錄
【1】提出問(wèn)題
【2】PO設(shè)計(jì)模式
【3】PO設(shè)計(jì)模式優(yōu)勢(shì)
【1】提出問(wèn)題
當(dāng)有上百個(gè)用例荤西,幾十個(gè)頁(yè)面的時(shí)候芋类,我們會(huì)在測(cè)試用例中重復(fù)的使用到頁(yè)面當(dāng)中的元素和操作敢朱。當(dāng)其中的頁(yè)面發(fā)生變化時(shí)位喂,我們需要在多個(gè)用例中去修改疗垛。這種情況下,代碼多且亂,維護(hù)成本也不低溯饵。
【2】PO設(shè)計(jì)模式
在做web 測(cè)試時(shí)侵俗,無(wú)論是什么業(yè)務(wù),都是在頁(yè)面上去操作丰刊,即所有的測(cè)試用例都是在頁(yè)面中操作的隘谣。比如一個(gè)用例是由5個(gè)頁(yè)面的功能串行組成的。
假設(shè)一個(gè)產(chǎn)品有30個(gè)頁(yè)面啄巧,有500個(gè)功能測(cè)試用例寻歧。那么這500個(gè)功能測(cè)試用例就是有30個(gè)頁(yè)面的功能組成。
如此秩仆,如果能夠把30個(gè)頁(yè)面的功能封裝起來(lái)码泛,500個(gè)用例按照業(yè)務(wù)場(chǎng)景從30個(gè)頁(yè)面當(dāng)中調(diào)用需要的頁(yè)面即可。
這種方式叫做PO模式澄耍,全稱 Page object ,頁(yè)面對(duì)象模型噪珊。
將頁(yè)面的元素定位和元素行為封裝成一個(gè) Page 類。
實(shí)現(xiàn)頁(yè)面對(duì)象和測(cè)試用例分離齐莲。
在測(cè)試用例中痢站,調(diào)用所需頁(yè)面對(duì)象中的行為,組成測(cè)試用例选酗。
【3】PO設(shè)計(jì)模式優(yōu)勢(shì)
1瑟押、當(dāng)某個(gè)頁(yè)面的元素發(fā)生變化,只需要修改該頁(yè)面對(duì)象中的代碼即可星掰,測(cè)試用例不需要修改。
2嫩舟、提高代碼重用率氢烘。結(jié)構(gòu)清晰,維護(hù)代碼更容易家厌。
3播玖、測(cè)試用例發(fā)生變化時(shí),不需要或者只需要修改少數(shù)頁(yè)面對(duì)象代碼饭于。
面向?qū)ο蟮奶匦裕悍庋b蜀踏、繼承、多態(tài)掰吕。在自動(dòng)化中一樣適用果覆,自動(dòng)化測(cè)試中有一個(gè)名字常常被提及PageObject,通過(guò)PO模式可以大大提高測(cè)試用例的維護(hù)效率殖熟。
1.對(duì)比
傳統(tǒng)測(cè)試腳本的弊端:
測(cè)試腳本分離局待,維護(hù)成本高
可擴(kuò)展性差
復(fù)用性低等
2.圖解
PageObject設(shè)計(jì)模式
圖片
3.PO核心
PO的核心要素:
在PO模式中抽象封裝成一個(gè)BasePage類,該基類應(yīng)該擁有一個(gè)只實(shí)現(xiàn)webdriver實(shí)例的屬性。
每個(gè)一個(gè)Page都繼承BasePage钳榨,通過(guò)driver來(lái)管理本Page中元素舰罚,將Page中的操作封裝成一個(gè)個(gè)的方法。
TestCase繼承unittest.Testcase類薛耻,并且依賴Page類营罢,從而實(shí)現(xiàn)相應(yīng)的測(cè)試步驟。