自動化測試在軟件測試項目團隊中發揮著重要的作用,同時合理地開展自動化測試,可以有效降低錯誤修復成本,提高工作效率。
下面就以web自動化測試為例來說明POM模式:python+Selenium+pytest框架下,完成自動化測試用例的編寫,管理,運行和出報告,似乎是一項非常簡單的工作過程,隨在項目進展,特別是迭代頻繁的敏捷項目研發方式下,有些自動化測試人員實現的那些低質量測試腳本往往會引發后期高昂的代碼維護成本,隨著時間的推移所謂的自動化測試變得好像忘了初衷了。
POM模式中解決測試腳本質量低下的一種很實用的方法。下面我來向大家介紹一下POM分離模式的思維:
pom分離:
POM分離 page- object-module--是一種思維
采用POM目的:為了解決前端中UI變化頻繁,從而造成測試自動化腳本維護的成本越來越大
POM思路:把頁面元素和業務邏輯和測試腳本分離開到兩個不同的類文件。class A只寫頁面元素定位,和業務邏輯代碼操作的封裝,class B只寫測試腳本,
POM主要有以下優點:
1.把web ui對象倉庫從測試腳本分離,業務代碼和測試腳本分離。
2.每一個頁面對應一個頁面類,頁面的元素寫到這個頁面類中。
3.頁面類主要包括該頁面的元素定位,和和這些元素相關的業務操作代碼封裝的方法。
4.代碼復用,從而減少測試腳本代碼量。
5.層次清晰,同時支持多個編寫自動化腳本開發,例如每個人寫哪幾個頁面,不影響他人。
6.建議頁面類和業務邏輯方法都給一個有意義的名稱,方便他人快速編寫腳本和維護腳本。
實例如下:
1.測試腳本
2.業務邏輯
3.界面元素
4.再次封裝
5.使用最新封裝內容
都說良好的開端是成功的一半,自動化測試框架的落地也是如此,在測試框架實現之前,我們需要全方位考濾后才能設計出面對避無可避的UI元素變更的好的框架。有時候我們第一個想到的是如何將那些變更頻率不高的功能模塊實現自動化,而對那些變更頻率高的功能模塊有什么方式能夠降低我們未來對于代碼調整帶來的高昂成本呢?要做到“子落而滿盤活”,而不是“牽一發而動全身”。我們是否能對變更進行限制,只動一個地方,并且讓每個與之相關的測試腳本都能使用它?答案一定是完全一致肯定的-------POM模式可以幫我們實現。
如果該web頁面元素發生了變化,我們只需要在其對應的類文件中進行修改就可以了,而不必在多個不同的腳本去搜索查找并一一更新。這種方法就是頁面對象模型(POM),它有助于提高代碼的可讀性、可維護性和可重用性。