• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 使用分層的 Selenium 框架進行復雜 Web 應用的自動測試(3)

    發表于:2014-08-07來源:IBM作者:王晨點擊數: 標簽:selenium
    } public void clickSearchBtn() { utils.waitForElement((String) elemMap.get(TestGoogleConstants.GOOGLE_SEARCH_BTN), 30); selenium.click((String) elemMap.get(TestGoogleConstants.GOOGLE_SEARCH_BTN)); } p

      }

      public void clickSearchBtn() {

      utils.waitForElement((String)

      elemMap.get(TestGoogleConstants.GOOGLE_SEARCH_BTN), 30);

      selenium.click((String) elemMap.get(TestGoogleConstants.GOOGLE_SEARCH_BTN));

      }

      public void verifyResult(HashMap paraMap){

      stc.verifyTrue(selenium.isTextPresent((String)

      paraMap.get(TestGoogleConstants.VERIFY_STRING)));

      }

      clickSearchBtn 方法無需參數輸入,因為其任務只是點擊搜索按鈕,在 test cases 需要時調用即可。這里只是以一個簡單的例子說明如何分解任務,對于實際的 test case,這個過程會復雜許多,但其后的復用與靈活調用完全值得這些工作的付出。

      Test Cases 實現與 Test Tasks 調用

      Test Cases 作為一系列測試步驟的集合,可以通過調用若干 Test Tasks 實現。以貫穿本文的搜索引擎為例,以此調用上一部分定義的 test taskss,重現整個測試過程。簡單代碼如下所示。

      清單 9. Test Case 代碼示例

      @Parameters( { "google_se_para_1" })

      @Test

      public void testGoogle_1(String paraFile) {

      paraMap = (HashMap) XMLParser.getInstance()

      .parserXml(paraFile);

      tgTasks.openSite();

      tgTasks.typeSearchTxtField(paraMap);

      tgTasks.clickSearchBtn();

      tgTasks.verifyResult(paraMap);

      }

      Test Cases 在分層 Selenium 測試框架下,就是按照要求調用已有的 Test Tasks。值得注意的是,在上面兩個代碼列表里的 paraMap 參數。這個哈希表由我們實現的解析器解析參數定義文件而得到。TestNG 的 Parameters 參數機制,使得 Test Cases 能夠靈活地指定參數文件,從而驅動不同的 Test Cases。

      清單 10. 參數定義文件示例

      developerworks

      developerWorks 中國

      建立輸入參數解析器(parser)及參數文件

      Test Cases 與 Test Tasks 的順暢工作,需要輸入參數文件及對應的參數解析器的配合。我們以上面代碼清單的例子說明參數文件的格式。 標簽在最外層,其內的子元素為具體的參數值,如 標簽表示一個頁面元素與其對應的輸入。 元素的 id 屬性與清單 6 中的 . properties 文件定義的 locators 對應,而其子元素 則表示該 locator 的輸入值。解析器的具體實現可以參見所附的示例源代碼。

      回頁首

      導出可執行 Jar 包以部署到各類測試服務器

      為了能夠把 Selenium 測試腳本導出成一個可執行 Jar 包,我們可以把 testng.xml 中定義的相關內容,在 Java 代碼中實現,如下所示。

      清單 11. testng.xml 的 Java 表示

      //suite tag

      XmlSuite suite = new XmlSuite();

      //set suite name

      suite.setName("Test Search Engine");

      //set parameter tag

      HashMap para = new HashMap();

      para.put("google_se_para_1", "/src/resources/google_se_para_1.xml");

      suite.setParameters(para);

      //test tag

      XmlTest testGoogle = new XmlTest(suite);

      testGoogle.setName("LDAP configuration template");

      List classes = new ArrayList();

      classes.add(new XmlClass(TestGoogleTestCase.class));

      testGoogle.setXmlClasses(classes);

      這份代碼列表的功能與前文的 testng.xml 完全相同,把這些代碼添加到新定義的類 SearchEngineSuite 的 main 函數中,在這個類的方法中啟動并關閉 Selenium 服務器,并把相關文件打成一個可執行 Jar,就可以通過命令行的 java – jar 命令,執行 Selenium 測試。當然,因為具有通用性,也可以部署到各類測試服務器,執行測試。

      這里推薦使用 Eclipse 的插件 Fat Jar 導出 runnalbe Jar。首先,填入輸出 Jar 的命名,并把 SearchEngineSuite 設置為 Main-Class。然后,勾選”merge individual-sections of all MANIFEST.MF files”,后一項視需求勾選。

      圖 2. Fat Jar 導出步驟 1

    圖 2. Fat Jar 導出步驟 1

      進入下一步,選擇要導出的文件,包含源代碼以及用到的 Jar 文件,點擊完成即可。

      圖 3. Fat Jar 導出步驟 2

    圖 3. Fat Jar 導出步驟 2

    原文轉自:http://www.ibm.com/developerworks/cn/java/j-lo-selenium/index.html

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>