PageObject 顧名思義就是 面向頁面對象的設(shè)計(jì)
從UI自動化結(jié)合page(頁面)對象來說胀溺,編寫用例需要幾個(gè)要素裂七?
- 數(shù)據(jù)(例如賬號密碼瘫镇,可選)
- 定位(元素定位)
- 基礎(chǔ)操作(點(diǎn)擊汞斧、輸入等)
- 邏輯(基礎(chǔ)操作組成的邏輯瞪浸,例如輸入賬號密碼點(diǎn)擊登錄按鈕)
那么生真,這么設(shè)計(jì)的好處在于什么沉噩?
- 解耦,每一層之間互不影響
- 高維護(hù)性柱蟀,實(shí)踐中發(fā)現(xiàn)川蒙,業(yè)務(wù)的邏輯層是基本不會變的,唯一經(jīng)常會變得只有定位长已,所以將定位與用例分離畜眨,日常只要維護(hù)定位即可
- 結(jié)構(gòu)清晰明了,層次分明
- 復(fù)用性高
PageObject框架分層
- 公用方法層(我們第八章講的將基礎(chǔ)操作封裝模塊术瓮、日志康聂、讀取配置、數(shù)據(jù)庫胞四、接口等)
- 頁面數(shù)據(jù)層(原則以page為單位恬汁,儲存用例所需數(shù)據(jù))
- 頁面定位層(原則以page為單位,儲存用例所需定位辜伟,建議采用(By.XXX, "")這種元組形式的定位)
- 頁面邏輯層(原則以page為單位氓侧,用例所需的基礎(chǔ)邏輯操作,例如:輸入賬號密碼點(diǎn)擊登錄按鈕)
- 用例層(多用數(shù)據(jù)驅(qū)動的用例設(shè)計(jì)游昼,數(shù)據(jù)+定位+邏輯+斷言)
demo源碼:http://www.reibang.com/p/18042b13470d
python package分層