您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源功能測(cè)試工具 > Selenium
使用分層的Selenium框架進(jìn)行復(fù)雜 Web 應(yīng)用的自動(dòng)測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/12/8 16:34:22 ] 推薦標(biāo)簽:Selenium 開源測(cè)試工具

  }
  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方法無(wú)需參數(shù)輸入,因?yàn)槠淙蝿?wù)只是點(diǎn)擊搜索按鈕,在test cases需要時(shí)調(diào)用即可。這里只是以一個(gè)簡(jiǎn)單的例子說(shuō)明如何分解任務(wù),對(duì)于實(shí)際的test case,這個(gè)過(guò)程會(huì)復(fù)雜許多,但其后的復(fù)用與靈活調(diào)用完全值得這些工作的付出。
  Test Cases實(shí)現(xiàn)與Test Tasks調(diào)用
  Test Cases作為一系列測(cè)試步驟的集合,可以通過(guò)調(diào)用若干Test Tasks實(shí)現(xiàn)。以貫穿本文的搜索引擎為例,以此調(diào)用上一部分定義的test taskss,重現(xiàn)整個(gè)測(cè)試過(guò)程。簡(jiǎn)單代碼如下所示。
  清單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測(cè)試框架下,是按照要求調(diào)用已有的Test Tasks。值得注意的是,在上面兩個(gè)代碼列表里的paraMap參數(shù)。這個(gè)哈希表由我們實(shí)現(xiàn)的解析器解析參數(shù)定義文件而得到。TestNG的Parameters參數(shù)機(jī)制,使得Test Cases能夠靈活地指定參數(shù)文件,從而驅(qū)動(dòng)不同的Test Cases。
  清單10.參數(shù)定義文件示例
  developerworks
  developerWorks中國(guó)
  建立輸入?yún)?shù)解析器(parser)及參數(shù)文件
  Test Cases與Test Tasks的順暢工作,需要輸入?yún)?shù)文件及對(duì)應(yīng)的參數(shù)解析器的配合。我們以上面代碼清單的例子說(shuō)明參數(shù)文件的格式。標(biāo)簽在外層,其內(nèi)的子元素為具體的參數(shù)值,如標(biāo)簽表示一個(gè)頁(yè)面元素與其對(duì)應(yīng)的輸入。元素的id屬性與清單6中的.properties文件定義的locators對(duì)應(yīng),而其子元素則表示該locator的輸入值。解析器的具體實(shí)現(xiàn)可以參見(jiàn)所附的示例源代碼。
  回頁(yè)首
  導(dǎo)出可執(zhí)行Jar包以部署到各類測(cè)試服務(wù)器
  為了能夠把Selenium測(cè)試腳本導(dǎo)出成一個(gè)可執(zhí)行Jar包,我們可以把testng.xml中定義的相關(guān)內(nèi)容,在Java代碼中實(shí)現(xiàn),如下所示。
  清單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函數(shù)中,在這個(gè)類的方法中啟動(dòng)并關(guān)閉Selenium服務(wù)器,并把相關(guān)文件打成一個(gè)可執(zhí)行Jar,可以通過(guò)命令行的java–jar命令,執(zhí)行Selenium測(cè)試。當(dāng)然,因?yàn)榫哂型ㄓ眯,也可以部署到各類測(cè)試服務(wù)器,執(zhí)行測(cè)試。
  這里推薦使用Eclipse的插件Fat Jar導(dǎo)出runnalbe Jar。首先,填入輸出Jar的命名,并把SearchEngineSuite設(shè)置為Main-Class。然后,勾選”merge individual-sections of all MANIFEST.MF files”,后一項(xiàng)視需求勾選。

圖2.Fat Jar導(dǎo)出步驟1

  進(jìn)入下一步,選擇要導(dǎo)出的文件,包含源代碼以及用到的Jar文件,點(diǎn)擊完成即可。


  圖3.Fat Jar導(dǎo)出步驟2

上一頁(yè)1234下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd