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

来源: 作者: 发表时间:2011-02-08 11:54 点击:获取本文网址二维码
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

转播到腾讯微博
填写您的邮件地址,订阅我们的精彩内容:
微博分享与邮件订阅:

    本文标题:使用jwebunit编写页面级自动化测试用例http://www.ltesting.net/ceshi/ceshijishu/dycs/dycsdm/2011/0208/202064.html
    (注:本文章只代表作者观点。部分文章内容来自于互联网,如您享有版权可直接联系我们。欢迎登陆领测软件测试论坛参与讨论)
    官方微博求关注:官方新浪微博 官方腾讯微博 官方QQ空间 官方博客 热门推荐订阅 填写您的邮件地址,订阅我们的精彩内容:

    软件测试视频

  • 讲解软件测试流程图
  • 讲解软件测试流程图

    软件测试整体过程 单元测试过程图 集成测试过程图 系统测试过程图 软件[详细]

  • 什么是黑盒,白盒,灰盒测试?
  • 什么是黑盒,白盒,灰盒测试?

    什么是黑盒测试? 黑盒测试一般方法? 什么是白盒测试? 什么是灰盒测试?[详细]

    社区精华

    qrcode

    二维码生成需要几秒~点击左键返回页面~!
    什么是二维码?


    _×
    推荐新闻