Web UI自動化框架搭建

本篇博文只從項目架構角度,提供一些建議供參考。不涉及具體代碼編寫。目前市場上主流的免費開源工具就是Selenium。大家可以根據自己項目技術棧,選擇合適的語言+外加Unit Test框架,來構建自己的Web UI自動化項目。比如:Java+Selenium+JUnit/TestNG,Python+Selenium+UnitTest等。

整體而言,Web UI自動化框架主要包含以下三部分:
1. 頁面元素定義
2. 方法庫
3. 層級結構組織

有了這三部分,一個框架基本就搭起來了。再在層級結構最底層,添加自動化測試用例,讓它繼承自合理的父頁面,並能調用合適的方法庫,完成腳本運行和驗證即可。


頁面元素定義

關於如何做好頁面元素定義,我在之前的博客裏有過一些建議:如何讓Web UI自動化測試更加穩定
這裏還想在補充幾點:

  • 一般來說,一個頁面對應一個類。這個類裏包含了這個頁面的各個控件元素。每個元素,以類的屬性成員方式存在,且這個屬性不能被子類更改(在Java裏,可以定義成private屬性,然後提供public/protected get方法。C#簡單些,定義成public屬性,然後僅提供get方法)
  • 頁面類裏應只包含控件元素定義,不要摻雜方法。頁面對應的方法應新起一個方法庫類,名字可以叫做xXPageFuncLib,與頁面類對應,放在項目同一層。

方法庫

方法庫主要放對應頁面的元素操作方法,方法庫對於構成最終的自動化測試腳本很重要,因爲腳本里的一步步操作,基本要靠方法庫來實現。

方法庫裏的方法,最好保持原子性,完成一些密不可分的基本操作。方法不應過長。過長的最好按照功能步驟,拆分開來。

除了頁面對應的方法類庫以外,每個項目,一般都會有自己的一些公用方法類庫,比如,ExcelUtil類庫,存放excel操作方法;BaseUtil類庫,放一些更加公用基礎的方法,生成唯一的時間戳字符串,字符串合併等。


層級結構組織

層級結構組織,其實就是將頁面元素組織起來,構成頁面。再通過合理的繼承,讓處於類關係圖譜最底層的一個個的auto test case擁有合適的父類頁面,父類方法庫,以完成自身的測驗步驟、測驗點。

一般而言,將瀏覽器的啓動,關閉等操作,放到root class裏,這樣所有的最底層的auto test case就可以僅關注於自身步驟,驗證,不用重複編寫測試前瀏覽器啓動,測試結束後瀏覽器退出等操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章