自己動手寫Web自動化測試框架(6):自動化測試框架的規劃
首先我們先進行需求分析:我們到底要什麼樣的自動化測試框架?
正如第一篇《自己動手寫Web自動化測試框架(1):概述》 中提到的,我們要做的是一個簡單的自動化測試框架,沒有Ajax,沒有框架,沒有Windows對話方塊,我們捨棄這些較為複雜的功能,目的就在於,我們想要把注意力集中在自動化測試框架的架構上,以後我們可以慢慢加入這些功能,但是第一次,我們不要。
這裡規劃一下,我們想要的自動化測試框架是什麼樣子的,那麼要從我們的自動化測試說起了。自動化測試程式碼一般是在什麼時候寫的呢?在微軟裡,自動化測試程式碼應該和被測試的網站的程式碼同步開發,因為有了Spec(Specification),我們就可以根據Spec來測試用例,然後把我們認為重要的,必須經常重複的用例自動化起來。
但是問題在於,我們在沒有網站的情況下,如何進行自動化測試的開發呢?我們面臨的困難主要有以下的方面:
* 沒有網站,就沒有網頁元素的ID之類的標識,沒有辦法按照上面的辦法獲取我們想要的網頁元素。
* 網站建設初期,頁面元素不穩定,一個小小的ID的變更就可以使我們的自動化程式碼變的無用。
* 即使是頁面元素不變,一個小小的業務邏輯的改變,也可能會很大的影響到我們的自動化測試程式碼。
我們的自動化測試框架,一定要可以比較好的解決上面的問題。
我想很多的讀者已經明白了,我們要做的就是把網頁的元素和網站的業務邏輯分開,這樣就可以比較好的解決這些問題。
我們最終的目標是在一個類裡面去定義整個網站的架構,比如這個網頁上有一個文字框,有幾個按鈕。就像下面的這段程式碼:
public class Baidu { WebBrowser wb = new WebBrowser("www.baidu.com"); private Button submit; private TextBox keyword; public Button Submit { get{ if (submit == null) { submit = new Button(wb, "sb"); } return submit; } } public TextBox Keyword { get { if (keyword == null) { keyword = new TextBox(wb, "kw"); } return keyword; } } } |
上面的程式碼,我們定義了兩個屬性,一個是Button Submit,另一個是Textbox Keyword。這兩個屬性定義了百度首頁的兩個最重要的元素,我們也可以定義更多的比如登入的HyperLink或者其他的一些元素,但是我們現在以這個為例子來定義。
這裡的程式碼定義並不是最簡單的,讀者完全可以通過自己的努力對測試框架進行修改,把這個程式碼做到更簡單,不過我們這裡以這個程式碼為例,來講述自動化測試框架的架構等比較高層的東西。我們可以以後來細化這裡。
經過以上的定義,我們的業務邏輯程式碼就可以被簡略到如下的語句:
Baidu b = new Baidu(); b.Keyword.Text = "生生不息"; b.Submit.Click(); |
這裡我想很簡單,就是我們開啟一個百度的例項,然後輸入生生不息,然後點搜尋按鈕。我們以後還可以更多的建模,把驗證也放在裡面。
怎麼樣?如果我們的的自動化測試框架可以達到這樣的效果,我們就可以很好的解決上面提出的問題,當Web的開發還沒有完全成型的時候,我們可以定義頁面的元素,空著ID不填,然後把業務邏輯做好,一旦Web開發完成,我們只需要填補上網頁元素的定義,自動化測試程式碼就可以完成。
是不是已經摩拳擦掌了?我們從下一節開始,自動動手來做出這樣一個自動化的測試框架來。
相關文章
- 自己動手寫Web自動化測試框架Web框架
- 自己動手寫Web自動化測試框架(1) :概述Web框架
- 自己動手寫Web自動化測試框架(7):框架架構的設計Web框架架構
- 自己動手寫Web自動化測試框架(3):操縱Web控制元件Web框架控制元件
- 自己動手寫Web自動化測試框架(4):驗證Web控制元件Web框架控制元件
- 自動化測試框架框架
- 自己動手寫Web自動化測試框架(2):開啟和操縱IEWeb框架
- 軟體測試框架——自動化測試框架框架
- web自動化測試框架-06 如何快速編寫自動化指令碼Web框架指令碼
- 自動化測試框架思路框架
- 自動化測試框架指南框架
- 利用tox打造自動自動化測試框架框架
- 測試開發之自動化篇-自動化測試框架設計框架
- 自動化測試框架比較框架
- 自動化測試框架介紹框架
- Selenium自動化測試框架框架
- 軟體測試自動化框架框架
- 介面自動化測試框架 HttpFPT框架HTTP
- 自己動手寫Web自動化測試框架(5):判斷瀏覽器是否載入完成Web框架瀏覽器
- T框架介紹(自動化測試框架)框架
- 自動化測試框架的AW模式框架模式
- UI自動化測試框架Cypress初探UI框架
- Python 自動化測試框架unittestPython框架
- 自動化測試QTP知識框架QT框架
- 自動化測試框架:擁抱Ruby框架
- Web自動化-Selenium自動化測試-4-編寫測試用例Web
- 自動化測試系列 —— UI自動化測試UI
- 四種常用的自動化測試框架框架
- 自動化測試框架:日誌的分析框架
- 介面自動化測試框架搭建的思路框架
- 構建高效的自動化測試框架框架
- Robot Framework自動化測試框架核心指南-如何做好自動化測試平臺框架的設計Framework框架
- Web自動化之Headless Chrome測試框架整合WebChrome框架
- 軟體自動化測試有什麼優勢?自動化測試框架有哪些?框架
- 加速Web自動化測試Web
- 淺談自動化測試框架開發框架
- 介面自動化測試框架搭建總結框架
- HamronyOS 自動化測試框架使用指南框架