《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于Geb的Web自動化測試的原理與實踐
基于Geb的Web自動化測試的原理與實踐
2016年微型機與應用第17期
胡荊陵,孫涌,陳建明
蘇州大學 計算機科學與技術學院,江蘇 蘇州 215006
摘要: 隨著互聯網技術在全球范圍內的迅速發展,各種 Web 應用程序已成為系統軟件開發的主流,對應的自動化測試理論和工具日趨重要。基于開源的自動化測試工具 Geb,介紹了它的大致原理,給出了一個簡單可行的實踐步驟。通過準備測試用例,編輯測試腳本,執行測試腳本的步驟,Geb 可調用各子模塊,根據腳本的要求,模仿真正的人手動操作瀏覽器、并得到測試結果。Geb 可以跨瀏覽器,跨平臺運行,進行本地或遠程的測試,值得在真實開發場景中推廣使用。
Abstract:
Key words :

  胡荊陵,孫涌,陳建明
  (蘇州大學 計算機科學與技術學院,江蘇 蘇州 215006)

       摘要:隨著互聯網技術在全球范圍內的迅速發展,各種 Web 應用程序已成為系統軟件開發的主流,對應的自動化測試理論和工具日趨重要。基于開源的自動化測試工具 Geb,介紹了它的大致原理,給出了一個簡單可行的實踐步驟。通過準備測試用例,編輯測試腳本,執行測試腳本的步驟,Geb 可調用各子模塊,根據腳本的要求,模仿真正的人手動操作瀏覽器、并得到測試結果。Geb 可以跨瀏覽器,跨平臺運行,進行本地或遠程的測試,值得在真實開發場景中推廣使用。
  關鍵詞:自動化測試;測試腳本;Geb  

0引言
  隨著我國經濟的飛速發展,軟件行業發展迅速。基于互聯網的 Web 應用程序軟件以易開發、易使用、易擴展和易維護等優點被廣泛使用。而 Web 應用程序的測試往往還是由測試人員手工進行,測試成本高,效率低。并且由于軟件版本的迭代和更新,產生大量回歸測試的工作量。因此對 Web 自動化測試的可行性和效率提出了更高的要求。
  本文介紹的 Geb 開源自動化測試框架,對 WebDriver 進行封裝,可以做到跨瀏覽器測試,利于 Web 應用程序在不同瀏覽器品牌和版本下的兼容性測試;使用 Groovy 語言開發測試腳本,使代碼相對精簡,在提高開發效率的同時,Groovy 運行于 Java 虛擬機中,因此也可以輕松地實現跨平臺運行,極大地擴展了 Web 自動化測試的運行環境。
1測試原理
  Geb 匯集 WebDriver 的力量、優雅的 jQuery 內容選擇、頁面對象模型的魯棒性和 Groovy 語言的表現力,支持 Spock、JUnit、TestNG 等知名測試框架的集成。Geb 總體框架圖如圖1所示。  

圖像 001.png

  所謂自動化測試,其原理很簡單,就是最大程度地模擬人工對頁面進行的各種點擊和輸入操作。WebDriver 用于調用瀏覽器驅動程序,來模擬用戶的各種輸入和操作,比如:在某個文本框中輸入預設的字符串值,或者是點擊當前頁面上的某個指定的按鈕,是 Web 自動化測試的主要實現方式和核心模塊[1];jQuery選擇器的作用是根據CSS的ID標識符定位 Web 頁面上的唯一 HTML 標簽元素,或根據 CSS class 樣式來定位 Web 頁面上的一個或多個 HTML 標簽元素,提供了開發者最熟悉的獲取頁面 HTML 標簽的方式[2];頁面對象模型的作用是將 jQuery 選擇器獲得的各種 HTML 標簽元素映射抽象為 Geb 能理解的各種對象,為面向對象編碼方式奠定基礎,并為后面的一系列抽象做支撐,最大程度地降低測試腳本的冗余度;測試庫的作用是提供對 Spock、JUnit、TestNG 等知名測試框架的集成支持,測試者可以根據使用習慣,選擇熟悉的測試方法;Groovy 腳本的作用是根據測試用例編寫所有的測試腳本,因此占據工作量的主要部分。
2Web應用程序
  為說明問題,需要有一個被測試的對象,也就是前面提到的Web應用程序。由于只是對 Geb 做一個初步了解,無需太復雜的場景,本文以一個簡單實體類的新增、查詢、更新和刪除 Web 應用為例,來檢驗 Geb 自動化測試的效果。
  2.1數據庫設計
  準備一個班級實體類,數據表設計如表1所示。

圖像 003.png

  2.2實現功能
  在這個Web 應用程序中,已提供以下功能:查看班級列表、新增班級、刪除班級、查看班級信息。這些功能都是后面需要進行測試的。
  具體實現過程和細節已省略,實現后通過瀏覽器打開并訪問即可。需要補充的是,由于 Geb 封裝的 WebDriver 使用 FireFox、Chrome 瀏覽器,實踐時請留意安裝。圖2給出了做好的班級列表頁面。  

圖像 002.png

3測試腳本
  在準備了 Web 應用程序后,接著就需要準備測試用例和測試腳本。
  3.1測試用例
  測試用例通常與功能用例成正比關系,本文準備以下5個測試用例,詳見表2。
  3.2編輯腳本
  測試人員需要根據已制定的測試用例,編寫測試腳本,再由程序自動化測試。由于篇幅有限,本文僅提供其中一個測試用例對應的腳本,代碼如下所示。

圖像 004.png

  class Sit01ClassListToAdd extends GebReportingSpec{
  def "測試用例01-班級列表到新增班級"() {
  given: "班級列表頁面"
  to ClassListPage
  when: "點擊新增按鈕"
  classAddBtn.click()
  then: "新增班級頁面"
  at ClassAddPage
  }
  }
  測試腳本是使用 Groovy 語言編寫的,再結合Spock測試庫的使用。其具有以下特點:Groovy 是面向對象編程語言,相對 Java 代碼更加精簡,更加靈活。在同樣熟悉的情況下,使用 Groovy 可以顯著提高編碼效率;Spock 是行為驅動開發的典型代表,得益于敏捷開發提供的新理念,代碼風格屬于自然語言,可讀性極強,可以簡化設計人員與測試人員之間的交流成本[3]。
  筆者已將全部的測試用例示例代碼上傳至因特網,讀者如有興趣了解更多,可以通過網絡下載和查看,地址是:http://pan.baidu.com/s/1slKMe9v,期間如遇任何疑問,也可以再做進一步交流。
4測試方式和結果
  在執行之前,確保Web 應用程序已啟動,并可通過瀏覽器訪問相應的頁面。
  本文使用的 PC 配置如下:操作系統 Windows 7,處理器 i3 4170 3.7 GHz,內存4 GB DDR3 1 600 MHz,硬盤160 GB,主板P8B75。這個配置是非常普通的,大多數軟件公司都可以輕松采購和配置,也就是說大范圍推廣 Web 自動化測試的硬件成本不高。
  測試方式采用的是黑盒測試,分別進行3次手動測試和3次自動測試,對比結果如表3所示。

圖像 005.png

  可看到,自動測試可以縮短約 50% 的測試時間,并且無需人為干預。這一特性對于 Web 應用程序的回歸測試的貢獻尤其重要,測試腳本可以一次開發多次運行。
5結論
  Geb 為 Web 應用程序的自動化測試提供了一種切實可行的方案,實踐結果表明,可以極大節約測試成本。也可用于 Web 應用程序的通用自動化處理,有著非常廣闊的應用場景。
  目前,Geb版本為0.13.1,還在不斷發展中,期待后續版本發布后,能為各方面帶來提升。
  參考文獻
  [1] CHANDRAPRABHA C, KUMAR A, SSXENA S. Data driven testing framework using selenium WebDriver [J]. International Journal of Computer Applications, 2015, 118(18):18 23.
  [2] 王晶, 溫向彬. 利用jQuery操作HTML元素 [J]. 農業網絡信息, 2008(4):98 99.
  [3] SOEKEN M, WILLE R, DRECHSLER R. Assisted behavior driven development using natural language processing[C]. International Conference on Objects, Models, Components, Patterns. SpringerVerlag, 2012:269 287.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 97天天做天天爱夜夜爽 | 欧美中文字幕一二三四区 | 午夜爱爱影院 | 日韩 视频在线播放 | 2020在线不卡观看视频 | 男女午夜爽爽 | 日韩精品 欧美 | 亚洲人成网男女大片在线播放 | 日日夜夜爽 | 国产xx做受视频国语对白 | 欧美怡春院 | 一本大道久东京 | 性片网址 | 最近中文日本字幕免费完整 | 美国一级大黄一片免费的网站 | 99国内视频| 美女一级毛片免费不卡视频 | 免费看午夜高清性色生活片 | 欧美 中文字幕 | 成人国产精品免费视频 | 久久er国产精品免费观看2 | 好男人午夜www视频在线观看 | 第一页综合 | 午夜爽视频 | 公又粗又长又大又深好爽日本 | 日本一区二区三区在线 视频 | 欧美人成一本免费观看视频 | 亚洲国产m3u8在线观看 | 亚洲线精品久久一区二区三区 | 性放荡的三级小说 | 精品午夜寂寞影院在线观看 | 成人免费黄色小视频 | 免费国产成人高清在线观看视频 | 国产精品久久久亚洲 | 国产乱人伦精品一区二区 | 日韩天堂在线观看 | 男女www视频在线看网站 | 青草欧美 | 天天爽天天干天天操 | 美日韩精品| 两性色午夜视频免费网 |