开源Web自动化测试框架——Watir试用手记

上一篇 / 下一篇  2009-09-03 15:31:18 / 个人分类:Ruby && Watir

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

JN:J{9p:` ^0

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

/RFI@Rt)}0A0

1.      脚本示例51Testing软件测试网 T(Ox]fb7k

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

f RZ0ApH8@;E(KW0

  require 'watir'  # the watir controller51Testing软件测试网XC I@"]B)_9O

  # open the IE browser51Testing软件测试网 x~{5R;CM/{0O

  ie = Watir::IE.new51Testing软件测试网*y C$Cx"Lz

  # Step 1: go to the test site: http://www.google.com51Testing软件测试网!B0])wM[Y`!W

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

'XfpSi0og0f0

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

IcU,oz/Z0

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

[MFwk+t:{0

  # Step 3: click the 'Google Search' button51Testing软件测试网2bcM.F5Ah,A7s

  ie.button(:name, "btnG").click              # "btnG" is the name of the Search button51Testing软件测试网*boFpl!i

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

cw"lR#l^0

  if ie.contains_text("Programming Ruby") 

P AKd#L0

     puts "Test Passed. Found the test string: 'Programming Ruby'. Actual Results match Expected Results."51Testing软件测试网b6fR*u1?^'I"K

  else51Testing软件测试网P#K s)[d}W

     puts "Test Failed! Could not find: 'Programming Ruby'"51Testing软件测试网%\?t.hJ9m4Z(x"M

  end51Testing软件测试网)CaB j~0P"^

  # End of test: Google search51Testing软件测试网.a%k O$F,fLh

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

2.      所需要的环境51Testing软件测试网|-^ WEo|

Ruby :因为是使用Ruby实现的,脚本也是Ruby的脚本,所以需要在本机安装Ruby。可以点击这里下载。根据文档中说的,最好选择Ruby 1.8.2-14或者更高的版本,我安装的是Ruby 1.8.2-15 Stable Release51Testing软件测试网`S/J'[S Mo3T

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

9}ig&FMM~V1K0

WINDOWS 2000XP + IE 5.5以上版本:根据Watir网站上的描述,这是他们目前支持的环境。51Testing软件测试网1KiH Lk_ M

3.      所需的知识背景51Testing软件测试网 Se)A*\!DL

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

/M%p&RQk P;d5V0

另外,测试和自动化测试方面的基本知识还是要有的。51Testing软件测试网O5M#X0s4U3K:RT

4.      脚本的生成

G;yOpDE'Y0

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

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

NYxz/af0|0

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

6.      其他特性51Testing软件测试网&M6p{y fq

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

7.      相关链接51Testing软件测试网4aI-\ F fH |Ip

Watir主页:http://wtr.rubyforge.org/51Testing软件测试网W-T6vg%F$t)v

Ruby中文手册:http://www.ruby-cn.org/doc.html51Testing软件测试网^,\)s^`Uj

Ruby主页:http://ruby-lang.org/en/51Testing软件测试网:o#K"ms p5Th/^ E

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


TAG: Watir 自动化测试

 

评分:0

我来说两句

日历

« 2022-01-21  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

数据统计

  • 访问量: 38006
  • 日志数: 47
  • 建立时间: 2009-09-03
  • 更新时间: 2010-06-10

RSS订阅

Open Toolbar