}
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
進入下一步,選擇要導出的文件,包含源代碼以及用到的 Jar 文件,點擊完成即可。
圖 3. Fat Jar 導出步驟 2
原文轉自:http://www.ibm.com/developerworks/cn/java/j-lo-selenium/index.html