《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久噜噜噜久久| 欧美大片专区| 亚洲国产日韩美| 亚洲视频视频在线| 亚洲区国产区| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲天天影视| 亚洲精品四区| 亚洲高清资源| 性欧美办公室18xxxxhd| 亚洲视频日本| 99re亚洲国产精品| 亚洲国产专区| 在线精品国精品国产尤物884a| 国产欧美日韩在线| 国产精品美女一区二区在线观看| 欧美日本不卡高清| 蜜臀久久久99精品久久久久久 | 欧美在线不卡| 99国产精品久久久久老师| 欧美在线观看网址综合| 午夜精品久久久久久久男人的天堂 | 亚洲毛片av在线| 亚洲日本电影| 亚洲精美视频| 亚洲国产一区二区a毛片| 国内精品写真在线观看| 国产视频一区二区在线观看| 国产精品在线看| 国产精品婷婷午夜在线观看| 国产精品老牛| 国产精品电影在线观看| 国产精品久久一卡二卡| 国产精品日本一区二区| 国产精品国产精品| 国产精品色午夜在线观看| 欧美日韩dvd在线观看| 欧美久久久久久久久| 欧美日韩国产精品自在自线| 欧美日韩国产大片| 欧美日韩国产美女| 欧美日韩午夜在线| 国产精品久久久久久久午夜 | 亚洲一区精品电影| 亚洲欧美日韩在线播放| 欧美一区二区三区另类 | 亚洲蜜桃精久久久久久久| 99re6热只有精品免费观看| 一区二区欧美日韩| 亚洲一区二区三区四区在线观看| 亚洲午夜高清视频| 亚洲欧美偷拍卡通变态| 欧美在线视频免费观看| 91久久精品网| 99在线精品视频| 亚洲男人第一网站| 久久精品国产99国产精品| 欧美一区二区免费视频| 久久精品国产免费| 欧美成人激情在线| 欧美日韩午夜剧场| 国产欧美精品一区| 在线观看av不卡| 99国产精品99久久久久久粉嫩 | 亚洲激情视频在线| 一区二区三区成人精品| 亚洲欧美日韩国产成人| 亚洲成人在线视频播放 | 欧美一区二区三区免费视频| 亚洲精品美女免费| 亚洲一级二级在线| 久久精品久久综合| 久久夜色精品一区| 欧美高清不卡| 国产精品久久9| 精品二区视频| 一区二区欧美激情| 亚洲电影免费在线观看| 在线视频欧美精品| 久久精品青青大伊人av| 欧美另类一区二区三区| 欧美v日韩v国产v| 国产精品vvv| 一区二区亚洲精品国产| 99精品热视频只有精品10| 亚洲一区二区三区激情| 亚洲国产欧美久久| 亚洲欧美另类在线观看| 欧美~级网站不卡| 国产精品一页| 亚洲欧洲精品一区二区三区 | 中文网丁香综合网| 最新日韩中文字幕| 午夜综合激情| 欧美二区不卡| 国产一区二区日韩精品欧美精品 | 亚洲国产精品福利| 一区二区冒白浆视频| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲欧美bt| 欧美激情综合五月色丁香| 国产区二精品视| 亚洲乱码一区二区| 亚洲国产精品成人一区二区 | 亚洲欧美日韩中文视频| 欧美成人中文字幕| 国产精品婷婷午夜在线观看| 1204国产成人精品视频| 午夜精品美女自拍福到在线| 亚洲视频第一页| 欧美成人精品1314www| 国产日韩欧美一区二区三区四区| 日韩一区二区精品| 亚洲毛片av| 久久性天堂网| 国产精品自拍网站| av成人天堂| 99视频精品| 欧美成人激情视频免费观看| 国外视频精品毛片| 亚洲欧美日韩高清| 一区二区高清视频| 欧美成人按摩| 一区二区三区在线观看欧美| 小黄鸭精品密入口导航| 午夜精品视频在线| 欧美日韩在线高清| 亚洲免费高清| 日韩视频免费| 欧美成人免费视频| …久久精品99久久香蕉国产| 99在线|亚洲一区二区| 99re8这里有精品热视频免费| 狂野欧美激情性xxxx| 国产一区二区三区久久| 亚洲欧美中文在线视频| 欧美亚洲视频在线观看| 国产精品成人国产乱一区| 亚洲免费精彩视频| 一区二区欧美日韩视频| 欧美激情第六页| 亚洲韩日在线| 日韩亚洲一区二区| 欧美精品亚洲| 亚洲精品日韩欧美| 夜夜精品视频| 欧美天堂亚洲电影院在线播放| 亚洲人久久久| 一本色道**综合亚洲精品蜜桃冫 | 永久免费精品影视网站| 99在线观看免费视频精品观看| 国产精品都在这里| 久久国产欧美精品| 欧美国产综合一区二区| 在线一区视频| 久久天天狠狠| 亚洲理伦在线| 欧美一区二区三区婷婷月色 | 亚洲在线视频免费观看| 久久久久久9999| 亚洲日本成人网| 欧美亚洲视频| 亚洲激情一区二区| 亚洲国产精品小视频| 欧美日韩国产一区| 欧美亚洲在线观看| 欧美好吊妞视频| 亚洲一区二区在线| 欧美aⅴ一区二区三区视频| 在线亚洲观看| 老司机一区二区三区| 夜色激情一区二区| 久久综合图片| 中国日韩欧美久久久久久久久| 久久精品国产免费| 亚洲巨乳在线| 久久久久国产一区二区三区| 日韩视频中午一区| 久久久久久久综合色一本| 日韩一区二区精品葵司在线| 久久久精品国产一区二区三区| 亚洲精品资源| 久久亚洲二区| 亚洲一区二区3| 欧美激情在线有限公司| 校园春色国产精品| 欧美日韩午夜剧场| 亚洲国产婷婷| 国产精品一区免费视频| 亚洲精品网站在线播放gif| 国产精自产拍久久久久久| 一本色道精品久久一区二区三区 | 久久国产欧美| 国产精品视频xxxx| 亚洲免费av网站| 精品9999| 久久精品国产亚洲a| 亚洲在线电影| 欧美日韩一区二区三区在线| 亚洲清纯自拍|