使用jwebunit编写页面级自动化测试用例

发表于:2011-02-08来源:作者:点击数: 标签:
jWebUnit简介 jWebUnit是以 HttpUnit JUnit 单元测试 框架为基础,用于为Web应用程序 开发 测试用例 ,对 Web应用程序自动进行测试意味着跳过Web浏览器,通过程序来处理Web站点。jWebUnit提供了导航Web应用程序的高级API,并组合了一组断言,用它们来验证url

  jWebUnit简介

  jWebUnit是以HttpUnitJUnit 单元测试框架为基础,用于为Web应用程序开发测试用例,对 Web应用程序自动进行测试意味着跳过Web浏览器,通过程序来处理Web站点。jWebUnit提供了导航Web应用程序的高级API,并组合了一组断言,用它们来验证url、页面文本、按钮、表单项、cookie等页面元素。可以简单快捷的实现页面级自动化测试用例。

  与automan框架比较的优缺点

  优点1. 编码简单,API直观。在eclipse里编写简单的语句调用API,可以实现基本的页面操作。

  优点2. 运行速度快。由于是程序模拟浏览器进行运行,相比automan框架真实进行浏览器操作来说,用例执行的速度相当快。可快速进行回归测试

  优点3. 基于java,易于扩展兼容。

  缺点1. 对部分页面js无法支持

  缺点2. 浏览器无法支持支付宝控件,在需要控件的页面无法进行用例编写

  下载 jWebUnit,在Eclipse中配置jWebUnit

  1. 把下载的文件jwebunit-2.5-release.zip释放到任意目录中(假设是d:\temp)直接下载或访问jwebunit网站

  2. 在 Eclipse 中创建新 Java 项目,将其命名为TaobaoJWebUnit。

  3. 右击 Package Explorer 视图中的TaobaoJWebUnit项目,然后选Properties。

  4. 单击Java Build Path。单击Libraries 标签中的 Add External JARs。

  5. 浏览到 d:\temp\jwebunit-2.5\lib 目录,选择这个目录中的所有 JAR 文件。

  6. 单击 OK。

  现在可以编写测试用例。以下举例说明验证登录功能的一个简单用例

  1. 新建LoginTest.class

  2. 编码如下

  public class LoginTest extends WebTestCase{

  public void testlogin(){

  this.beginAt(“此处应该为测试环境的登录url,以防泄密,所以不写在这里”);

  this.setTextField(“TPL_username”, “wtx0000″);

  this.setTextField(“TPL_password”,”testpw”);

  this.clickButtonWithText(“登录”);

  this.assertLinkPresentWithText(“退出”);

  3. 右键——run as ——Junit Test

  4. 查看运行结果

  代码解析:

  1.从代码我们可以看出,jwebunit提供的API非常直观。通常情况下,我们可以通过html控件的name或者id来定位。除此之外,还可以通过xpath语法对控件进行定位,xpath语法是一种非常简单的语法。

  2.不支持https

  以下是jwebunit核心类的几个重要方法

  每个 jWebUnit 测试的核心都是 net.sourceforge.jwebunit.WebTestCase 类,它代表测试用例。每个测试用例都必须是从这个类扩展而来。(net.sourceforge.jwebunit.WebTestCase 类本身则是从 junit.framework.TestCase 类扩展而来的,它在 JUnit 中代表测试用例。)

  net.sourceforge.jwebunit.WebTestCase 类的重要方法

  public TestContext getTestContext() 得到测试用例的上下文。可以用它访问像地区、基本 URL 和 cookie 之类的项目

  public void beginAt(String relativeURL) 在相对于基本 URL 的 URL 处开始对话

  public void setWorkingForm(String nameOrId) 与指定的表单开始交互。如果当前页面只有一个表单,就不需要调用这个方法

  protected void submit() 提交表单 —— 等同于单击表单的 提交 按钮

  public void gotoFrame(String frameName) 激活命名帧

  另一个重要的类是 net.sourceforge.jwebunit.TestContext。它为测试创建上下文。可以用这个类来处理像 cookie、会话和授权之类的信息。

  net.sourceforge.jwebunit.TestContext 类的重要方法

  public void addCookie(String name, String value) 向测试上下文中添加 cookie。在 HttpUnitDialog 开始时,添加的 cookie 被设置到 WebConversation 上

  public void setResourceBundleName(String name) 为测试上下文设置一个使用的资源绑定。用于按照 WebTester 中的键查找期望的值

  public void setProxyName(String proxyName) 为测试上下文设置代理服务器名称

  public void setBaseUrl(String url) 为测试上下文设置基本 URL

原文转自:http://www.ltesting.net