Watir 试用手记——一个很不错的开源 Web 自动化测试框架

转载 2013年12月03日 15:19:59

Watir 是一个使用 Ruby 实现的开源Web 自动化测试框架,相对于那些庞大的商业工具来说,它很小巧,也很灵活,提供的功能也足够用。最近抽时间试用了一下,感觉还不错,准备下一步在公司推广使用。

因为 Watir 的网站上用户手册、示例代码以及 FAQ 都维护的不错,所以已有的东西我就不重复了,在这里简单介绍一下,如果同行们有兴趣,可以一起研究一下。

1.       脚本示例

先丢一段脚本给大家看看使用 Watir 来书写脚本是多么的方便。下面的例子是 Watir 自带的一段测试 Google 的搜索功能的脚本,不过我只保留了最主要的部分,以使它看起来更简洁一些:

   require 'watir'   # the watir controller

   # open the IE browser

   ie = Watir::IE.new

   # Step 1: go to the test site: http://www.google.com

   ie.goto (http://www.google.com)

   # Step 2: enter 'pickaxe' in the search text field

   ie.text_field(:name, "q").set("pickaxe")       # q is the name of the search field

   # Step 3: click the 'Google Search' button

   ie.button(:name, "btnG").click                 # "btnG" is the name of the Search button

   # Actual Result: Check that the 'Programming Ruby' link appears on the results page

   if  ie.contains_text("Programming Ruby") 

      puts "Test Passed. Found the test string: 'Programming Ruby'. Actual Results match Expected Results."

   else

      puts "Test Failed! Could not find: 'Programming Ruby'"

   end

   # End of test: Google search

这段脚本要做的事情是打开 Google 的主页,然后在 Google 唯一的那个文本框内输入“pickaxe”这个字符串,然后按下“Google 搜索”按钮,之后验证搜索结果的页面中是否包含了“Programming Ruby”这个字符串,并根据结果使用 puts 函数在屏幕上打印不同的信息。脚本中“#”后面的绿色部分是注释的内容。简单吗?说实话要比那些商业工具录制的脚本还要简洁和简单。

2.       所需要的环境

Ruby : 因为是使用 Ruby 实现的,脚本也是 Ruby 的脚本,所以需要在本机安装 Ruby。可以点击这里下载。根据文档中说的,最好选择Ruby 1.8.2-14 或者更高的版本,我安装的是Ruby 1.8.2-15 Stable Release。

Watir : 可以点击从这里下载,我下载的是 Watir 1.4 ,是一个.zip 文件,解压缩以后执行 install.rb 就可以了,具体的安装和配置请参见 Watir 用户手册。不要怕,虽然是英文的,但是很简单。

WINDOWS 2000 或 XP + IE 5.5 以上版本 : 根据 Watir 网站上的描述,这是他们目前支持的环境。

3.       所需的知识背景

因为毕竟还是要写代码的,所以开发经验是必需的,任何语言的开发经验都可以——虽然 Ruby 是一个面向对象的脚本语言,不过你可以暂时不理它那么多(别被面向对象、脚本语言之类的词汇吓倒),如果你写过 VBScript 或者其他什么代码那么 Watir 就是很简单的。不过,需要了解 Web 开发,比如 HTML 的基本语法,因为在开发脚本时需要根据 Web 页面的源代码来确定对 Web 对象的识别方式——当然,也可以借助其他工具来实现,例如 Mozilla Firefox 中提供的“DOM 查看器”(可以在 Mozilla Firefox“工具”菜单下找到,具体的使用方法参见 Mozilla Firefox 帮助)。

另外,测试和自动化测试方面的基本知识还是要有的。

4.       脚本的生成

录制功能就别想了,Watir 没有提供这项功能。如果你非用录制不可,那就选择其他吧。不过就我自己的使用来看,Watir 的脚本写起来比用 QTP 或者 Rational 的工具录制还要方便和快捷。

5.       对象的识别、操作和自动验证

Watir 提供了对多种常见 Web 对象的识别和操作的支持,例如 Hyperlinks 的点击、Checkboxes 的选中和清除、Radio Buttons 的选中和清除、下拉框和列表框的选择、文本框的输入、各种按钮的点击以及 Frame 的访问、弹出窗口的控制等。当然,既然可以识别和操作这些对象,也可以访问这些对象,使测试结果的验证自动化。具体信息可以参见 Watir 用户手册

6.       其他特性

如果你熟悉了 Ruby ,再结合其他一些工具,可以在 Watir 框架的基础上扩展出很多特性。例如:外部文件或数据库的读取、模块化的开发、可重用的函数库、数据驱动、关键字驱动、脚本的版本化控制以及测试结果的管理,等等。

7.       相关链接

Watir 主页:http://wtr.rubyforge.org/

Ruby中文手册:http://www.ruby-cn.org/doc.html

Ruby主页:http://ruby-lang.org/en/

       就如前面所说的,Watir 的用户手册、FAQ等方面维护的很不错,如果完整的看完 Watir 主页上的 sample test 和 User’s Guide 基本上就可以用 Watir 开始测试 Web 应用了。如果有兴趣进一步研究,可以参考一下 Technical Doc ,也可以读一下 Watir 自带的几个示例。当然,也可以在这里留言或者email我,大家一起讨论。

Windows环境搭建Web自动化测试框架Watir(基于Ruby)

web自动化测试一直是一个比较迫切的问题 图1-1 需要安装的工具 http://railsinstaller.org/ 因为安装Ruby还需要用到其他的一些开发工具集,所以...
  • cometwo
  • cometwo
  • 2015年07月03日 14:55
  • 1097

浅谈基于Selenium的Web自动化测试框架

● 面临的挑战   从Google到Facebook,从Twitter到新浪微博,新一轮的互联网热潮正在全世界蔓延。随着云概念的日益清晰,越来越多的企业也已经摆脱了传统的C/S架构的应用框架而转...
  • n8765
  • n8765
  • 2015年11月16日 16:54
  • 3791

几种常见自动化测试框架

因为自己下所使用的
  • u010202588
  • u010202588
  • 2014年08月17日 21:22
  • 16130

自己动手写Web自动化测试框架

记得几年前一本《自己动手写操作系统》在全国的技术范围内引起了学习操作系统的热潮。我不才在这里使用这本书的大名,来分享一下我在写Web自动化测试框架上面的一些经验。 首先定义一下Web自动化测试框架:W...
  • wangyong0921
  • wangyong0921
  • 2013年07月30日 17:50
  • 1749

常见经典开源软件自动化开发测试框架/工具(2015)

STAF(SoftwareTesting Automation Framework)是一个由IBM开发的开源、跨平台、支持多语言且基于可重用的组件来构建的自动化测试框架,而这一系列的组件都是一些可以处...
  • w565911788
  • w565911788
  • 2015年08月14日 14:00
  • 3408

浅析 PHP 官方自动化测试方法

浅析 PHP 官方自动化测试方法 本文将从一个测试人员的角度对 PHP 官方的自动化测试方法,自动化测试框架结构,以及具体的实现进行分析和研究。通过实际的例子,向读者展示 PHP 是...
  • samxx8
  • samxx8
  • 2015年09月26日 10:42
  • 2585

Web自动化测试框架改进

Web自动化测试框架(WebTestFramework)是基于Selenium框架且采用PageObject设计模式进行二次开发形成的框架。 一、适用范围:传统Web功能自动化测试、H5功能自动化测...
  • hexieshangwang
  • hexieshangwang
  • 2015年08月05日 16:46
  • 420547

TestNG 开源自动化测试框架

摘要: TestNG是一个开源自动化测试框架;TestNG表示下一代。 TestNG是类似于JUnit(特别是JUnit 4),但它不是一个JUnit扩展。它的灵感来源于JUnit。它的目的是优于J...
  • Temanm
  • Temanm
  • 2016年06月28日 17:38
  • 3837

基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构)

基于webdriver的web UI自动化测试框架(系统架构+测试脚本应用架构) 自动化测试系统及应用架构...
  • wangxin1982314
  • wangxin1982314
  • 2015年12月08日 16:32
  • 6232

Web自动化工具对比

首先说一下我对Web自动化测试与CS自动化测试的认识。从宏观对比都是通过脚本自动化完成功能的验证,区别不大。Web测试更为显著的浏览器兼容性、安全,以及与Web技术相关的表单测试、链接测试等,其实都是...
  • wanglian2017
  • wanglian2017
  • 2017年05月18日 19:06
  • 2336
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Watir 试用手记——一个很不错的开源 Web 自动化测试框架
举报原因:
原因补充:

(最多只允许输入30个字)