背景
為什么要設(shè)計(jì)自動化測試框架,主要是由于以下幾點(diǎn)原因:
- 統(tǒng)一不同的測試技術(shù),協(xié)同工作
- 降低測試人員編寫自動化測試用例的門檻
- 對測試流程實(shí)現(xiàn)統(tǒng)一的管理
- 方便測試腳本的維護(hù)鸥滨,代碼復(fù)用
設(shè)計(jì)
構(gòu)建通用的Web自動化測試框架弦叶,這里我們選用了一些技術(shù)和工具,整體架構(gòu)圖如下:
上圖抱环,是兩個(gè)技術(shù)棧實(shí)現(xiàn)的測試框架,后面分別進(jìn)行詳細(xì)的介紹纸巷。
W3C規(guī)范:The WebDriver Wire Protocol (RESTful)
下圖镇草,以IE瀏覽器為例,說明原理瘤旨。
這里有幾個(gè)概念需要理解:
頁面對象模型(Page Object Model)
“Page Object模式是Selenium中的一種測試設(shè)計(jì)模式梯啤,主要是將每一個(gè)頁面設(shè)計(jì)為一個(gè)Class,其中包含頁面中需要測試的元素(按鈕存哲,輸入框因宇,標(biāo)題 等),這樣在Selenium測試頁面中可以通過調(diào)用頁面類來獲取頁面元素祟偷,這樣巧妙的避免了當(dāng)頁面元素id或者位置變化時(shí)察滑,需要改測試頁面代碼的情況。 當(dāng)頁面元素id變化時(shí)肩袍,只需要更改測試頁Class中頁面的屬性即可杭棵。
頁面對象模型的好處如下:
- Page Object將測試對象及單個(gè)的測試步驟封裝在每個(gè)Page對象中,以page為單位進(jìn)行管理
- Page Object的主要價(jià)值體現(xiàn)在對界面交互細(xì)節(jié)的封裝氛赐,這樣可以使測試案例可以更關(guān)注與業(yè)務(wù)而非界面細(xì)節(jié)魂爪,提高測試案例的可讀性
- 減少由于頁面結(jié)構(gòu),元素屬性變化而導(dǎo)致的大量測試用例重構(gòu)
構(gòu)建頁面對象模型:
第一步艰管,構(gòu)建頁面對象模型
第二步滓侍,進(jìn)行業(yè)務(wù)抽象
關(guān)鍵字模板( Keywords Template)
to do