亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

為Web應用程序創建測試用例的辦法二

2019-11-18 13:08:47
字體:
來源:轉載
供稿:網友

  另一個重要的類是 net.sourceforge.jwebunit.TestContext。它為測試創建上下文??梢杂眠@個類來處理像 cookie、會話和授權之類的信息。表 2 顯示了這個類的一些重要方法:
  
為Web應用程序創建測試用例的辦法二


  表 2. net.sourceforge.jwebunit.TestContext 類的重要方法
  
  下載 jWebUnit,在 Eclipse 中配置 jWebUnit
  
  JWebUnit 是用純 java 代碼實現的,所以可以以 JAR 文件的形式獲得它 (請參閱 參考資料,從中獲得下載鏈接)。在完成下載之后,請按以下步驟在 Eclipse 平臺上配置 JWebUnit 庫:
  
  把下載的文件 jwebunit-1.2.zip 釋放到臨時目錄中(假設是 C:/temp)。
  
  在 Eclipse 中創建新 Java 項目,將其命名為 jWebUnit。
  
  右擊 Package EXPlorer 視圖中的 jWebUnit 項目,然后選擇 PRoperties。
  
  單擊 Java Build Path。單擊 Libraries 標簽中的 Add External JARs。
  
  瀏覽到 C:/temp/jwebunit-1.2/lib 目錄,選擇這個目錄中的所有 JAR 文件。
  
  單擊 OK。
  
  現在可以在 Eclipse 中的 jWebUnit 項目下開發 jWebUnit 測試用例了。
  
  構建示例應用程序
  
  現在就可以查看 jWebUnit API 的實際應用了。我將帶您研究一個示例應用程序,幫助您更好地理解 jWebUnit 的真正威力。這個應用程序是一個測試用例,用于打開一個 Google 搜索頁面并搜索文本 HttpUnit。應用程序需要測試以下場景:
  
  打開 Google 主頁 http://www.google.com。
  
  確定該頁包含一個名為 q 的表單元素。(在 Google 的主頁上,名為 q 的文本框是接受用戶查詢輸入的文本框。)應用程序用這個元素輸入搜索參數。
  
  在搜索文本框中輸入字符串 HttpUnit Home,并提交表單。
  
  獲得結果頁,并確定該頁面包含的鏈接中包含文本 HttpUnit Home。
  
  單擊包含文本 HttpUnit Home 的鏈接。
  
  現在測試場景已經就緒,可以編寫 Java 應用程序,用 jWebUnit 實現這些需求了。
  
  第一步是聲明一個從 WeBTestCase 擴展而來的類,如清單 3 所示:
  
  清單 3. 聲明測試用例類
  
  public class GoogleTest extends WebTestCase {
  static String searchLink = "";
  }
  
  正如我在前面提到過的,jWebUnit 要求每個測試用例都是從 WebTestCase 中擴展而來的。searchLink 保存傳入的搜索參數。這個值以命令行參數的形式傳遞給測試用例。
  
  下一步是聲明入口點 —— main() 方法,如清單 4 所示:
  
  清單 4. main() 方法
  
  public static void main(String[] args) {
  searchLink = args[0];
  junit.textui.TestRunner.run(new
  TestSuite(GoogleTest.class));
  }
  
  main() 方法調用 junit.textui.TestRunner.run() 執行 JTest 測試用例。因為需要運行 GoogleTest 測試用例,所以,作為參數傳遞給 run() 方法的測試套件采用 GoogleTest.class 作為參數。
  
  接下來,JTest 調用 setUp() 方法來設置基本 URL 和代理,如清單 5 所示:
  
  清單 5. 設置
  
  public void setUp() {
  getTestContext().setBaseUrl("http://www.google.com");
  getTestContext().setProxyName("proxy.host.com");
  getTestContext().setProxyPort(80);
  }
  
  清單 5 把基本 URL 設置為 http://www.google.com。這意味著測試用例的啟動是相對于這個 URL 的。下面兩個語句設置連接到 Internet 的代理主機和代理端口。假如是直接連接到 Internet,那么可以忽略代理設置語句。
  
  現在開始瀏覽站點并輸入搜索參數。清單 6 顯示了訪問 Web 頁面,然后測試所有場景的代碼:
  
  清單 6. 測試所有場景
  
  public void testSearch() {
  beginAt("/");
  assertFormElementPresent("q");
  setFormElement("q", "HttpUnit");
  submit("btnG");
  assertLinkPresentWithText(searchLink);
  clickLinkWithText(searchLink);
  }
  
  清單 6 的代碼連接到基本 URL,并相對于 / 開始瀏覽。然后它斷定頁面中包含一個名為 q 的表單元素 —— q 是 Google 主頁上查詢輸入文本框的名稱。下一條語句用值 HttpUnit 設置名為 q 的文本框。
  
  再下一條語言提交表單上名為 btnG 的提交按鈕。(在 Google 的主頁上,名為 btnG 的按鈕是標簽為 Google Search 的按鈕。)表單是在這個對話中提交的,下一頁列出搜索結果。在結果頁面上,代碼首先檢查是否有一個鏈接的文本是 HttpUnit Home。假如該鏈接不存在,那么測試就以 AssertionFailedError 失敗。假如該鏈接存在,則測試執行的下一個操作是單擊鏈接。
  
  運行示例應用程序
  
  現在把示例應用程序投入使用當中:
  
  下載示例應用程序 j-webunitsample.jar 。
  
  在一個目錄中解壓縮 j-webunitsample.jar。例如,假如把它釋放到 C:/temp 中,那么就要把源文件和類文件放在 C:/temp/com/jweb/test 中,而 setclasspth.bat 則放在 C:/temp 中。
  
  編輯 setclasspath.bat:設置 JAR_BASE 指向包含所有必需 JAR 文件的目錄。例如,假如在 C:/temp 中釋放 jwebunit-1.2.zip 文件,那么將 JAR_BASE 設置為 C:/temp/jwebunit-1.2/lib。
  
  打開命令行提示符,切換到 C:/temp 目錄。
  
  執行 setclasspath.bat。這會設置執行測試用例所需的 CLASSPATH。
  
  用命令 java com.jweb.test.GoogleTest "HttpUnit Home" 運行應用程序。
  
  示例輸出
  
  在執行了測試用例之后,會在命令行輸出一個測試用例報告。假如測試失敗,報告看起來如清單 7 中所示:
  
  清單 7. 帶有斷言失敗的輸出
  
  C:/temp>java com.jweb.test.GoogleTest "HttpUnit Hwee"
  .F
  Time: 5.338
  There was 1 failure:
  1) testSearch(com.jweb.test.GoogleTest)junit.
  framework.AssertionFailedError: Link
   with text [HttpUnit Hwee] not found in response.
  at net.sourceforge.jwebunit.WebTester.
  assertLinkPresentWithText(WebTester.java:618)
  at net.sourceforge.jwebunit.WebTestCase.
  assertLinkPresentWithText(WebTestCase.java:244)
  at com.jweb.test.GoogleTest.testSearch(GoogleTest.java:36)
  at sun.reflect.NativeMethodaccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at com.jweb.test.GoogleTest.main(GoogleTest.java:19)
  
  FAILURES!!!
  Tests run: 1, Failures: 1, Errors: 0
  
  正如在清單 7 中可以看到的,可以用 HttpUnit Hwee 作為參數來執行測試用例。這個測試用例碰到斷言的地方會失敗,因為結果頁面中不包含帶有這個文本的鏈接。由此也就產生了junit.framework.AssertionFailedError。
  
  清單 8 執行時用 HttpUnit Home 作為參數。測試用例找到一個帶有這個文本的鏈接,所以測試通過了:
  
  清單 8. 成功測試的輸出
  
  C:/temp>java com.jweb.test.GoogleTest "HttpUnit Home"
  .
  Time: 6.991
  
  OK (1 test)
  
  結束語
  
  本文通過討論 jWebUnit 框架的一些突出特性和最重要的類,介紹如何用它創建簡潔的測試用例,讓您對 jWebUnit 框架有一個熟悉。jWebUnit 還有更多特性可以用在測試用例中。它支持測試 Web 頁面中的鏈接行數。可以對字符串、表或者帶有指定標簽的表單輸入元素是否存在于頁面上進行斷言。此外,jWebUnit 還可以處理 cookie (例如斷言存在某個 cookie、刪除 cookie 等。)測試可以對某個文本之后出現的特定文本的鏈接進行單擊。 假如想為 Web 應用程序構建快而有效的測試用例,jWebUnit 可能是您最好的朋友。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91免费版网站入口| 亚洲欧洲一区二区三区久久| 麻豆国产va免费精品高清在线| 欧洲亚洲免费在线| 亚洲变态欧美另类捆绑| 日韩欧美综合在线视频| 成人av番号网| 91a在线视频| 欧美激情在线有限公司| 97免费在线视频| 国产区亚洲区欧美区| 欧美人与性动交| 久久综合久中文字幕青草| 欧美激情三级免费| 国产精品免费久久久久影院| 一个人看的www欧美| 日韩av综合中文字幕| 国产精品久久久久一区二区| 成人观看高清在线观看免费| 欧美精品亚州精品| 久久久黄色av| 亚洲美女福利视频网站| 亚洲美女av在线| 色偷偷亚洲男人天堂| 91色中文字幕| 精品国产一区二区三区久久狼黑人| 久久久国产在线视频| 欧美日韩午夜视频在线观看| 亚洲精品电影在线观看| 日韩中文在线不卡| 亚洲成人久久网| 欧美一级在线播放| 不卡伊人av在线播放| 久久久久久久久久久人体| 亚洲国产成人91精品| 国产一区视频在线播放| 成人亲热视频网站| 91在线观看欧美日韩| 欧美性理论片在线观看片免费| 国产精品亚洲аv天堂网| 亚洲国产精彩中文乱码av在线播放| 黄色91在线观看| 在线成人中文字幕| 国产精品日韩在线一区| 亚洲一区美女视频在线观看免费| 91av视频导航| 97超视频免费观看| 亚洲自拍高清视频网站| 亚洲一区二区三区sesese| 另类天堂视频在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 91久久嫩草影院一区二区| 国产精品久久久久久久久久久不卡| 97视频人免费观看| 国产偷亚洲偷欧美偷精品| 欧美午夜片欧美片在线观看| 日韩亚洲欧美中文在线| 精品国产乱码久久久久久婷婷| 欧美亚洲一区在线| 午夜精品久久久久久99热| 国产91在线播放| 亚洲最大av网站| 亚洲欧美色婷婷| 亚洲天堂av在线播放| 国产精品久久视频| 国产手机视频精品| 色噜噜狠狠狠综合曰曰曰88av| 国产一区二区成人| 91精品国产91久久久久久不卡| 久久久精品国产亚洲| 国产成人a亚洲精品| 91国内免费在线视频| 成人免费视频xnxx.com| 亚洲最大福利网| 日本欧美在线视频| 中文字幕精品久久久久| 亚洲最大av在线| 国产精品久久久久福利| 日韩av中文字幕在线播放| 一区二区三区视频观看| 日韩在线中文视频| 欧美超级免费视 在线| 一区二区欧美日韩视频| 欧美日韩国产一区中文午夜| 97在线免费观看| 精品视频久久久久久久| 中文字幕日韩精品在线观看| 欧美日韩在线另类| 91精品久久久久久久久久久久久| 久久精品2019中文字幕| 久久久久久网址| 国产综合久久久久| 久久九九国产精品怡红院| 亚洲一区国产精品| 亚洲美女精品久久| 国产精品日韩欧美大师| 中文字幕日韩免费视频| 国产91在线视频| 91视频九色网站| 一二美女精品欧洲| 欧美激情乱人伦| 亚洲精品v天堂中文字幕| 一本色道久久综合狠狠躁篇的优点| 亚洲一区二区久久久久久| 欧美另类69精品久久久久9999| 日韩av在线网页| 国产精品久久久久久久美男| 精品国产老师黑色丝袜高跟鞋| 精品国偷自产在线视频99| 成人黄色免费在线观看| 国产精品96久久久久久| 91美女片黄在线观| www.欧美精品一二三区| 91精品国产综合久久香蕉| 国产成+人+综合+亚洲欧洲| 欧美日韩人人澡狠狠躁视频| 国产精品美女免费看| 日韩成人在线播放| 久久久久久97| 欧美精品情趣视频| 久久久久中文字幕2018| 亚洲在线观看视频| 亚洲国产精品久久久久| 亚洲成人精品视频在线观看| 午夜精品久久久久久99热软件| 国产精品国产三级国产aⅴ9色| 欧美日韩福利视频| 欧美在线视频导航| 国产精品成人播放| 亚洲美腿欧美激情另类| 国产精品wwwwww| 不用播放器成人网| 秋霞av国产精品一区| 成人综合网网址| 欧美日韩精品在线播放| 欧美视频专区一二在线观看| 日韩精品一区二区视频| 92国产精品久久久久首页| 98精品国产高清在线xxxx天堂| 国产午夜精品免费一区二区三区| 一区二区三区无码高清视频| 欧美日韩中文字幕日韩欧美| 国产成人97精品免费看片| 福利二区91精品bt7086| 欧美午夜激情小视频| 欧美亚洲激情视频| 欧美有码在线视频| 久久免费视频这里只有精品| 国产亚洲精品成人av久久ww| xxav国产精品美女主播| 久久久之久亚州精品露出| 久久久av网站| 亚洲国产美女久久久久| 伊是香蕉大人久久| 一本色道久久88综合亚洲精品ⅰ| 夜夜嗨av一区二区三区免费区| 国产一区av在线| 色香阁99久久精品久久久| 91在线色戒在线| 色综合伊人色综合网站| 国产精品看片资源| 亚洲欧洲在线播放| www欧美xxxx| 亚洲色图激情小说|