亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
使用 Selenium 和 TestNG 進行編程式測試
作者:網絡轉載 發布時間:[ 2012/12/7 15:15:54 ] 推薦標簽:

Selenium 是一種測試框架,它使您可在 Web 應用程序上輕松地運行用戶驗收測試(user acceptance test)。本月,Andrew Glover 將向您展示如何以編程的方式運行 Selenium 測試,并使用 TestNG 作為測試驅動程序。在將 TestNG 靈活的測試特性(包括參數化 fixture)添加到 Selenium 固有的工具包后,您需要做的是借助 DbUnit 和 Cargo 的幫助編寫完全自動化、邏輯可重復的驗收測試。

Selenium 是一種 Web 測試框架,它搭建了驗證 Web 應用程序的新途徑。與大多數嘗試模擬 HTTP 請求的 Web 測試工具不同,Selenium 執行 Web 測試時,仿佛它本身是瀏覽器。當運行自動的 Selenium 測試時,該框架將啟動一個瀏覽器,并通過測試中描述的步驟實際驅動瀏覽器,用戶將使用這種方式與應用程序交互。

由于開發人員和非開發人員都能夠使用 Selenium 輕松地編寫測試,使得它從眾多測試框架應用程序中脫穎而出。在 Selenium 中,可以通過編程的方式編寫測試,或者使用 Fit 樣式的表,并且編寫了測試后,可以使測試完全自動化。使用一個 Ant 構件(比方說)運行完整的 Selenium 套件非常簡單,并且還可以在持續集成(Continuous Integration,CI)環境中運行 Selenium 測試。

這個月,我將介紹 Selenium,并逐一查看使它成為 Web 測試框架的一些特性 —— 尤其是在結合使用 TestNG、DbUnit 和 Cargo 這樣的軟件時。

 
驗收測試
由于 Selenium 能夠很好地模擬用戶的行為,它常常用于進行驗收測試,即在完成的系統上運行一整套測試。驗收測試通常需要運行整個應用程序,以使測試發揮作用。如果您要測試一個 Web 應用程序,則需要訪問應用程序數據庫,以及一臺 Web 服務器,一個容器和運行應用程序所需的任何配置元素。

使用 Selenium 進行編程式測試

在 Selenium 中,您可以使用自己喜愛的語言或者 Fit 樣式的表通過編程來編寫測試。從測試的角度來說,不管使用什么語言,測試過程和結果都不會有顯著的差別。在此,我希望研究 Selenium 的編程方法,因為在結合使用 TestNG 時,它提供了一些有趣的可行方法能性。

使用具有類似 TestNG 這樣的框架的 Selenium 進行編程式測試具有這樣一個優點,它允許您創建智能 fixture,而使用 Fit 樣式的表則很難做到這一點。TestNG 尤其適合與 Selenium 結合使用,因為它使您能夠完成其他框架無法做到的測試,例如使用依賴項進行測試,重新運行失敗了的測試,以及使用單獨文件中定義的參數進行參數化測試。所有這些特性結合在一起,當然能夠使它在眾多 Web 應用程序測試框架中脫穎而出,但是,正如您將看到的,在完全自動化的驗收測試中使用這些特性令它更加出眾。

配置第一個測試

Selenium 架構實際上由兩個邏輯實體組成:您編寫的代碼以及能夠簡化與測試中的應用程序的交互的 Selenium 服務器。要成功地執行測試,必須要啟動并運行 Selenium 服務器實例以及要測試的應用程序。(當然,測試結果取決于您編寫的應用程序是否!)

幸運的是,Selenium 服務器是一種輕量級程序,可以在實際的測試范圍內通過編程啟動和停止它。Selenium 服務器(使用 Selenium 對象嵌入)的啟動和停止由一個 fixture 來執行。

要通過編程的方式啟動 Selenium 服務器,必須創建一個新的 Selenium 對象,并告訴它要使用哪一種兼容的瀏覽器 —— 我在下面的示例中使用的是 Firefox。您還必須提供運行服務器實例的位置(通常是 localhost,但不是必須的),以及被測試的應用程序使用的基 URL。

在清單 1 中,我配置了一個本地 Selenium 實例,使用它在本地安裝的 Web 應用程序上驅動 Firefox(http://localhost:8080/gt15/)。正如您從參數中推斷的一樣,Selenium 是作為被測試的應用程序的代理,并相應地促進測試。


清單 1. 配置 SeleniumServer

                Selenium driver =   new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(),    "*firefox", "http://localhost:8080/gt15/");driver.start();//go to web pages and do stuff...driver.stop(); 


創建了 Selenium 實例后,您可以 啟動并在運行時 停止它。這意味著您可以通過編程與 Selenium 服務器交互,并通過一個測試程序使它驅動瀏覽器。

驅動應用程序

通過編程與 Web 頁面進行交互是一種使用本地 id 的應用。(一些讀者可能對這種源自 本系列二月份關于 TestNG-Abbot 的文章 的概念比較熟悉)。與頁面元素進行交互的第一步是查找該元素,通?梢允褂 HTML 元素 ID 進行查找。Selenium 還允許您使用 XPath、正則表達式,甚至是 JavaScript 來查找特定的元素(如果您希望這樣做)。

清單 2 所示的 HTML 是使用 Groovlet 的簡單 Web 應用程序的一部分。這段代碼定義了包含輸入和提交按鈕的表單。如果希望 Selenium 與該表單交互,我必須為輸入按鈕提供 ID 以及相應的值。我還需要為提交按鈕提供一個 ID,這樣 Selenium 才能 “單擊” 它。單擊按鈕后,表單將被提交給 Groovlet —— 本例中為 FindWidget.groovy。

清單 2. 簡單的 HTML 表單

                <form method=post action="./FindWidget.groovy"> <table border="0" style="border-style: dotted">  <tr>   <td  class="heading">Widget:</td>   <td class="value"><input type="text" name="widget"></td>  </tr>  <tr>   <td></td>   <td class="value"><input type="submit" value="Find Description" name="submit"></td>  </tr> </table></form> 


現在可以通過使用 ID widget(輸入值)和 submit(單擊按鈕)與該 HTML 表單進行編程式交互,如清單 3 所示:

清單 3. 驅動簡單的 Web 頁面

driver.type("widget", "pg98-01");  driver.click("submit");driver.waitForPageToLoad("10000");//assert some return value... 


Selenium 中用于和 Web 頁面元素進行交互的 API 非常的直觀。對于輸入字段,我可以使用 type() 方法將值與 ID 關聯起來。如果需要的話,可以通過編程 click 按鈕。在清單 3 中,我將 click 設置為 10 秒的等待時間 —— 足夠表單提交請求完成處理。當 FindWidget.groovy 中的代碼運行其內容并返回響應后,我可以使用該響應來查找特定頁面元素,并驗證所有內容是否正常工作。

Selenium 和 TestNG

TestNG 以其靈活性和參數化 fixture 成為定義 Selenium 的驅動驗收測試的。TestNG 能夠定義測試依賴項并返回失敗的測試,以及其易用性,使得 Selenium-TestNG 成為吸引人的組合。

讓我們首先從一個能夠允許用戶創建、查找、更新或刪除小部件的 Web 應用程序開始。創建一個小部件需要三個屬性:名稱、類型和定義。圖 1 顯示了創建小部件的表單:

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲首页国产精品丝袜 | 黑人一区二区三区中文字幕 | 最近最新好看的中文字幕2019 | 天天搞夜夜 | 97夜夜澡人人爽人人喊中国片 | 三级黄色片免费看 | 最刺激黄a大片免费观看下截 | 国产高清精品久久久久久久 | 黄片毛片免费 | 中文字幕巨乱亚洲 | 欧美日韩国产不卡在线观看 | yy4080午夜理论一级毛片 | 国产精亚洲视频 | 99精品视频在线播放2 | 欧美三级成人理伦 | 亚洲欧洲日韩 | 日韩免费视频一区二区 | 青娱乐伊人 | 一级做a爱片特黄在线观看 一级做a爱片就在线看 | 亚洲精品成人中文网 | 一级片黄色免费 | 国产精品天天操 | 欧美成人观看免费完全 | 九九色网站 | 宠文肉细致高h一对一 | 二级特黄绝大片免费视频大片 | 国产亚洲精品自在线亚洲情侣 | 日韩欧美手机在线 | 国产高清视频一区二区 | 黄篇免费看 | 日本操操| 黄色男女网站 | 欧美午夜在线视频 | 亚欧乱色视频网站大全 | 亚洲午夜精品一区二区 | t66y永久入口 | 国产欧美网站 | 日韩美女一区二区三区 | 2015xxx小明永久免费 | 激情黄网 | 亚洲狼人香蕉香蕉在线28 |