应用HttpUnit进行Web测试(下)

发表于:2009-3-19 16:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

  5、如何使用httpunit进行测试

  5.1 对页面内容进行测试

  httpunit中的这部分测试完全采用了JUnit的测试方法,即直接将你期望的结果和页面中的输出内容进行比较。

  比如你期望中的页面显示是中有一个表格,它是页面中的第一个表格,而且他的第一行第一列的数据应该是显示username,那么你可以使用下面的代码进行自动化测试

  // 建立一个WebConversation实例

  WebConversation wc = new WebConversation();

  // 获取响应对象

  WebResponse resp = wc.getResponse( "http://www.sqalab.com/article/html/article_59.html" );

  // 获得对应的表格对象

  WebTable webTable = resp.getTables()[0];

  // 将表格对象的内容传递给字符串数组

  String[][] datas = webTable.asText();

  // 对表格内容进行测试

  String expect = "中文";

  // 增加 assertEquals 判断

  Assert.assertEquals(expect,datas[0][0]);

  5.2 对Servlet进行测试

  除了对页面内容进行测试外,有时候(比如开发复杂的Servlets的时候),你需要对 Servlet本身的代码块进行测试,这时候你可以选择HttpUnit,它可以提供一个模拟的Servlet容器,让你的Servlet代码不需要发布到Servlet容器(如tomcat)就可以直接测试。

  5.2.1 原理简介

  使用httpunit测试Servlet时,请创建一个ServletRunner的实例,他负责模拟Servlet容器环境。如果你只是测试一个Servlet,你可以直接使用registerServlet方法注册这个Servlet,如果需要配置多个Servlet,你可以编写自己的web.xml,然后在初始化ServletRunner的时候将它的位置作为参数传给 ServletRunner的构造器。

  在测试Servlet时,应该记得使用ServletUnitClient类作为客户端,他和前面用过的WebConversation差不多,都继承自WebClient,所以他们的调用方式基本一致。要注意的差别是,在使用 ServletUnitClient时,他会忽略URL中的主机地址信息,而是直接指向他的ServletRunner实现的模拟环境。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号