您的位置:软件测试 > 开源软件测试 > 开源功能测试工具 > Selenium
使用分层的Selenium框架进行复杂 Web 应用的自动测试
作者:网络转载 发布时间:[ 2014/12/8 16:34:22 ] 推荐标签:Selenium 开源测试工具

  }
  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

上一页1234下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd