Watij 与 Selenium 的比较

来源:http://developer.51cto.com/art/201111/302564_1.htm

下面本文将介绍 Watij 和 Selenium 的异同。Watij 和 Selenium 都是可用于网页自动化测试的开源工具,两者都具有各自的特点及优势,它们之间有何异同,到底要如何取舍?首先,Watij 和 Selenium 都是直接在浏览器中运行脚本,并允许在脚本运行时将浏览器最小化,这意味着不需要因为自动化测试而占用一台机器的资源。其次,两者都需要运用 XPath 去编写脚本,所以要求使用者必备 XPath 的基本知识。但是,它们在编写脚本是有一些地方是有区别的,下面本文将执行相同功能的代码比较进行简单说明。

清单 2 是用 Watij 执行网页登陆操作的代码:

清单 2. 执行登陆网页操作的代码清单

 
 
  1. import junit.framework.TestCase;   
  2.  import static watij.finders.SymbolFactory.name;   
  3.  import watij.runtime.ie.IE;   
  4.  
  5.  public class TestConcord extends TestCase {   
  6.  public void testconcordfunction() throws Exception{   
  7.  IE ie = new IE();   
  8.  // 打开 IE 浏览器  
  9.  ie.start();   
  10.  // 转到 concord77   
  11.  ie.goTo("http://concord77.cn.ibm.com/files/app?lang=en_US#/pinnedfiles");   
  12.  // 窗口最大化  
  13.  ie.maximize();   
  14.  // 安全认证  
  15.  ie.link(name, "overridelink").click();   
  16.  // 在输入框内输入用户名和密码  
  17.  ie.textField(name,"j_username").set("Abdul_000_006");   
  18.  ie.textField(name, "j_password").set("passw0rd");   
  19.  // 点击登陆  
  20.  ie.button("登录").click();   
  21.  // 保存结果图  
  22.  ie.screenCapture(“D:\\Savelogin.png”);   
  23.  }   
  24.  }  

由于本文主要介绍 Watij 的自动化测试框架,故不涉及完整的 Selenium 的执行代码。如果用 Selenium 脚本语言编写上述功能,最大的不同在于 Selenium 必须用完整的 XPath 语句输入才可以编写执行。

例如:

Watij 脚本语言执行点击某个 link: ie.link(name, "overridelink").click();

Selenium 脚本语言执行点击某个 link: Selenium.click("//a[@name='overridelink']");

相比这下 Watij 的代码会显得更为清晰、灵活,易于理解。

此外相比于 Selenium,Watij 具有更快的执行速度。因为 Watij 是直接调用 .dll 的文件,不用多加一个容器去加载,而需要启动一个 jetty 容器。故 Watij 比 Selenium 调用过程更为直接,所以运行速度要超过 Selenium。此外,Selenium 对弹出窗口、上传、下载等功能支持的并不好,常常需要借助第三方工具包,如 AutoIt3,Watij 在这方面的处理上要好于 Selenium;另外,Watij 提供了截图的方法,这是 Selenium 目前所不具备的。但是,Watij 目前只对 IE 浏览器有较好的支持,这正是 Selenium 的优势所在,Selenium 可以支持多浏览器,如 IE,Firefox, Safari 等等,另外,Selenium 提供了录制和回放脚本的功能,并可以将录制好的脚本转换成各种主流编程语言,Watij 则未提供此功能。

所以,当测试人员测试的产品是基于 IE 浏览器的,Watij 显然更具优势,但当测试人员测试的产品是基于多浏览器的,或者需要测试浏览器之间的兼容性,显然 Selenium 会成为更好的选择。

Watij 的特点及优势

Watij 提供了一套基于 Watir 的纯 Java API 用于 Web 应用程序自动测试。Watij 通过一个真实的浏览器来实现自动化测试。

Web 自动化测试大致采用两种方法实现:第一种方法是协议测试,这种方法是建立在 HTTP 协议上的测试,通过 get 或 post 等方式向服务器发送请求,然后对从服务器返回的结果数据进行解析、验证等操作;第二种方法是基于浏览器端的测试,这种测试是通过启动真实浏览器环境并自动执行浏览器端的相关操作(如点击按钮、文本框的输入及选择列表框等 )进行测试。Watij 作为 sourceforge 上一个纯 Java API 的 Web 自动化测试工具,它以第二种测试方法为原理进行工作,它是完全开源免费的软件包,并且在网页元素定位和跨平台部署等方面有着出色的表现。

Watij 自动化测试框架还有如下优势:

◆ 它像是模仿真实的用户对网页进行操作的,而且具有较快的运行速度。

◆ Watij 对网页进行操作时是得到网页的原始数据,这样就可以更为准确地,客观地进行自动化脚本的开发及验证工作。

◆ Watij 可结合任何的 Java IDE 进行使用,它们的配置过程非常简单,免去了开发人员由于配置环境的问题而浪费大量的时间和精力。

◆ Watij 相比于其他的基于 Web 的自动化测试工具有很好的执行结果,提高了开发人员的工作效率。

◆ Watij 提供了很好的 Debug 工具,为开发人员进行调试工作提供了方便。

◆ Watij 程序在运行时,允许测试人员在该测试机器上访问其他网页或者进行其他操作而不会影响到对象识别的结果。

本文向读者介绍了 Web 应用的自动化测试工具 Watij,文章介绍了 Watij 的主要特点和优势,如何安装配置 Watij 的开发运行环境,以及通过一个实例来重点介绍 Watij 的开发流程。相信采用 Watij 自动化测试工具,会提高自动化测试的效率,可以有效地加速自动化测试的程序开发。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值