自己動手寫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自動化測試框架-06 如何快速編寫自動化指令碼Web框架指令碼
- 自動化測試框架指南框架
- 利用tox打造自動自動化測試框架框架
- 測試開發之自動化篇-自動化測試框架設計框架
- Python 自動化測試框架unittestPython框架
- 介面自動化測試框架 HttpFPT框架HTTP
- Python自動化測試框架-pytestPython框架
- T框架介紹(自動化測試框架)框架
- 自動化測試框架的AW模式框架模式
- Web自動化-Selenium自動化測試-4-編寫測試用例Web
- 2023年好用的自動化測試框架有哪些?如何提高自動化測試效果?框架
- UI自動化測試框架Cypress初探UI框架
- Python自動化測試框架介紹Python框架
- Robot Framework自動化測試框架核心指南-如何做好自動化測試平臺框架的設計Framework框架
- 介面自動化測試框架搭建的思路框架
- 構建高效的自動化測試框架框架
- 基於Selenium+Python的web自動化測試框架PythonWeb框架
- 自動化測試系列 —— UI自動化測試UI
- 軟體自動化測試有什麼優勢?自動化測試框架有哪些?框架
- android 5個自動化測試Ui框架AndroidUI框架
- HamronyOS 自動化測試框架使用指南框架
- pytest_BDD + allure 自動化測試框架框架
- 淺談自動化測試框架開發框架
- 介面自動化測試框架搭建總結框架
- 移動端 UI 自動化測試框架對比UI框架
- Selenium Web Driver自動化測試(java版)系列下半部分(37) - 關鍵字驅動自動化測試框架(2)-測試過程...WebJava框架
- 常見的自動化測試框架有哪些?框架
- Web自動化-Selenium自動化測試-1-主要學習計劃Web
- 如何利用tox打造自動自動化測試框架,看完就懂框架
- 【自動化測試入門】自動化測試思維
- H5 自動化測試框架推薦H5框架
- “自動化測試解放雙手”,測試自動化好處大盤點!
- 自動化測試框架Selenium的使用——安裝Selenium框架
- 自動化測試如此容易!多語言自動化測試框架 Selenium 程式設計(C#篇)框架程式設計C#
- 自動化裝置測試與自動化測試的區別
- web自動化測試框架-05 建立資料驅動的測試用例,Doc String與Data TableWeb框架
- 測者的測試技術手冊:自動的自動化EvoSuite 自動生成JUnit的測試用例UI
- 如何做自動化測試?什麼是自動化測試?