python po设计模式_Python Selenium设计模式 - PO设计模式
整理一下python selenium自動(dòng)化測(cè)試實(shí)踐中使用較多的po設(shè)計(jì)模式。
為什么要用PO
基于python selenium2開(kāi)始開(kāi)始ui自動(dòng)化測(cè)試腳本的編寫(xiě)不是多么艱巨的任務(wù)。只需要定位到元素,執(zhí)行對(duì)應(yīng)元素的操作即可。
下面我們看一下這個(gè)簡(jiǎn)單的腳本實(shí)現(xiàn)百度搜索。
從上述代碼來(lái)看,我們所能做的就是元素的定位,然后進(jìn)行鍵盤(pán)輸入或鼠標(biāo)動(dòng)作。就這個(gè)小程序而已,維護(hù)起來(lái)看起來(lái)是很容易的。
但隨著時(shí)間的遷移,測(cè)試套件將持續(xù)的增長(zhǎng)。腳本也將變的越來(lái)越多。如果我們需要維護(hù)10個(gè)頁(yè)面,100個(gè)頁(yè)面,甚至1000個(gè)呢?
那么頁(yè)面元素的任何改變都會(huì)讓我們的腳本維護(hù)變得繁瑣復(fù)雜,而且變得耗時(shí)易出錯(cuò)。
那怎么解決呢?ui自動(dòng)化中,常用的一種方式,引入Page Object(PO):頁(yè)面對(duì)象模式來(lái)解決,po能讓我們的測(cè)試代碼變得可讀
性更好,可維護(hù)性高,復(fù)用性高。
PO是什么:
1、頁(yè)面對(duì)象模型(PO)是一種設(shè)計(jì)模式,用來(lái)管理維護(hù)一組web元素的對(duì)象庫(kù)
2、在PO下,應(yīng)用程序的每一個(gè)頁(yè)面都有一個(gè)對(duì)應(yīng)的page class
3、每一個(gè)page class維護(hù)著該web頁(yè)的元素集和操作這些元素的方法
4、page class中的方法命名最好根據(jù)對(duì)應(yīng)的業(yè)務(wù)場(chǎng)景進(jìn)行,例如通常登錄后我們需要等待幾秒鐘,
我們可以這樣命名該方法:waitingForLoginSuccess()。
下面我們看下PO的代碼目錄組織示例:
PO的優(yōu)勢(shì)
1、PO提供了一種業(yè)務(wù)流程與頁(yè)面元素操作分離的模式,這使得測(cè)試代碼變得更加清晰。
2、頁(yè)面對(duì)象與用例分離,使得我們更好的復(fù)用對(duì)象。
3、可復(fù)用的頁(yè)面方法代碼會(huì)變得更加優(yōu)化
4、更加有效的命名方式使得我們更加清晰的知道方法所操作的UI元素。例如我們要回到首頁(yè),
方法命名為:gotoHomePage(),通過(guò)方法名即可清晰的知道具體的功能實(shí)現(xiàn)。
PO實(shí)現(xiàn)示例
下面看下使用PO設(shè)計(jì)模式構(gòu)建的百度搜索用例,先看下代碼組織結(jié)構(gòu)如下:
#basePage.py代碼如下
#searchPage.py代碼如下
#testSearchPage.py代碼如下
總結(jié)
以上是生活随笔為你收集整理的python po设计模式_Python Selenium设计模式 - PO设计模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php 检测编码函数,自己写了一个php
- 下一篇: pythonrequest得替代_pyt