Python + Selenium Page Object頁面對象設計模式

前面提到過 UI 自動化測試最大的障礙或者成本最大的地方就在于頁面的頻繁變化奋隶。UI 自動化測試過于依賴于界面,界面變化意味著你的代碼無法使用啊胶,需要更新維護潭苞。

雖然我們可以通過選擇更有效的用例來達到降低維護成本的目的,但是畢竟以涉及到 UI 元素變化,我們的代碼就需要改變雌团。

目前 UI 自動化測試中最流行和達成共識的做法是是采用 Page Object (簡稱 PO) 設計模式燃领,使用這種模式可以有效降低 UI 自動化測試代碼的維護量。

那么它是如何降低代碼維護量的呢锦援?

基本思想:
在 UI 自動化測試中對頁面元素的處理引入面向對象思想猛蔽。從測試用例中剝離頁面元素操作,并以頁面為單位的類將頁面元素上的定位方式及操作進行封裝灵寺。

什么意思呢曼库?不采用 PO 模式的時候,我們相當于在測試用例中直接調用 Selenium 中的各種 API略板,由這些 API 去操作頁面元素毁枯。而 PO 模式相當于在測試用例和 Selenium 之間增加了一層 PO 層。通過自定義的頁面元素叮称,再去調用 Selenium 中的 API种玛,同時也將測試用例與 Selenium 的元素操作做了分離。

image

也就是說颅拦,你的測試用例 TestCase 中不會再出現(xiàn)諸如 find_element() 之類的方法了蒂誉。

通過對頁面元素的封裝,將頁面涉及到的元素定位和操作全部集中到了一起距帅,不會再零散的出現(xiàn)在各個測試用例中右锨。

當頁面發(fā)生變化時,你不需要到各個測試用例中去查找需要修改的代碼碌秸,只需要在對應的頁面類中去修改其定位方式和操作即可绍移。


比如首頁上有一個菜單,每個模塊的頁面入口都在這里讥电。也就是你的幾乎每個測試用例中都會涉及到去點擊菜單蹂窖。

突然某一天,產(chǎn)品經(jīng)理要求修改這種菜單(可能因為太難看恩敌,可能因為用戶不太喜歡這種模式瞬测、也許老板覺得不夠高大上等等),菜單中的標簽類型和屬性變的面目全非纠炮。

當修改完成后月趟,你去運行你的測試腳本,突然一片紅色的 Fail恢口,讓你有點不知所措孝宗。然后逐個去修改頁面中關于菜單點擊的代碼,共修改了 xx 個文件 nxx 個用例 nxx 行代碼耕肩。

好不容易處理完畢了吧因妇!產(chǎn)品經(jīng)理說了问潭,要改回去,因為...??

image

如果你采用了 PO 模式婚被,不用關心自己有沒有第三方責任險了狡忙,因為不用動手了。

為什么會有這么大的改觀呢址芯?這得益于你將菜單的元素定位和點擊操作全部寫在了mainpage.py文件去枷,因為你只需要修改 1 個文件 x 行代碼即可,那些 xx 數(shù)量級的文件和用例都不用去動了是复。

通過在 UI 自動化測試中引入 PO 設計模式,可以大大提高自動化測試代碼的可維護性竖螃。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末淑廊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子特咆,更是在濱河造成了極大的恐慌季惩,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腻格,死亡現(xiàn)場離奇詭異画拾,居然都是意外死亡,警方通過查閱死者的電腦和手機菜职,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門青抛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酬核,你說我怎么就攤上這事蜜另。” “怎么了嫡意?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵举瑰,是天一觀的道長。 經(jīng)常有香客問我蔬螟,道長此迅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任旧巾,我火速辦了婚禮耸序,結果婚禮上,老公的妹妹穿的比我還像新娘菠齿。我一直安慰自己佑吝,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布绳匀。 她就那樣靜靜地躺著芋忿,像睡著了一般炸客。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戈钢,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天痹仙,我揣著相機與錄音,去河邊找鬼殉了。 笑死开仰,一個胖子當著我的面吹牛,可吹牛的內容都是我干的薪铜。 我是一名探鬼主播众弓,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼隔箍!你這毒婦竟也來了谓娃?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤蜒滩,失蹤者是張志新(化名)和其女友劉穎滨达,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體俯艰,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡捡遍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了竹握。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片画株。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖涩搓,靈堂內的尸體忽然破棺而出污秆,到底是詐尸還是另有隱情,我是刑警寧澤昧甘,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布良拼,位于F島的核電站,受9級特大地震影響充边,放射性物質發(fā)生泄漏庸推。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一浇冰、第九天 我趴在偏房一處隱蔽的房頂上張望贬媒。 院中可真熱鬧,春花似錦肘习、人聲如沸际乘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脖含。三九已至罪塔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間养葵,已是汗流浹背征堪。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留关拒,地道東北人佃蚜。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像着绊,于是被迫代替她去往敵國和親谐算。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內容