Ruby Watir提供WEB对象支持

Ruby Watir是一款基于Ruby语言的自动化测试框架,这款框架的功能也是异常强大的,它可以灵活方便的帮助我们完成各种需求。

Watir是基于Ruby这种面向对象的脚本语言的,它用的是一种纯粹的编程语言,并且它是一个开源的产品,同时它还允许对网页 上的对象的直接操作,例如html和JavaScript 。不过Watir仅仅是对IE进行控制的,如果想要操控其他的浏览器例如Firefox或Safari就需要安装相应的Watir库,参考这里。总之,Watir是一个面向浏览器来开发和运行的一个自动化测试工具。

Ruby简介

ruby 是一种完全的面向对象的语言,语法简单,是解释执行的脚本语言,代码的可读性高,号称“最接近自然语言的编程语言”。Ruby语言起源于日本,它的研发者是日本人松本行弘(Matsumoto Yukihiro)。松本行弘在1993年开始着手Ruby语言的研发工作,他开发Ruby语言的初衷是为了提高编程的效率。ruby语言的一些特点包括(1)动态载入。可以在运行时候重定义自己,类也可以在运行时继承或取消继承。 (2)自动内存管理机制。 (3)多精度整数。 (4)迭代器和闭包。 (5)开源项目。有大量活跃的社区支持Ruby语言。

构建环境

因为Ruby Watir是由Ruby实现的,所需要的脚本也是Ruby的脚本,所以你需要在本机先安装Ruby。安装在Windows上面的Ruby可以点击这里下载,我安装的是1.8.6版本的,也就是最新版的。当你完成Ruby的安装后,打开命令行窗口,输入gem install watir 就会将watir安装到相应的文件夹下面,这个命令是将整个watir及相关的一些文档和文件一起安装,如果只想安装某个特定的gem的话,后面可以加上参数- -ignore-dependencies 。这样开发环境就很简单的搭建完成。

脚本示例

下面是我写的一个应用watir对passport测试站点自动注册邮箱的一个例子,在搭建完环境以后你可以将下面的代码拷贝到Ruby自带的解释器SciTE中保存为test_passport.rb, 只要是后缀名为.rb就可以,然后点F5运行调试就能看到结果。下面的代码只是实现了最基础的一些功能,主要是通过这个例子能够对Ruby Watir有个直观的认识。

require 'watir'  


include Watir  


#生成一个随机的邮件地址  



@mail_address=Array.new(3){(rand
(122-97)+97).chr}.join+Array.new(6)
{(rand{10}*10).to_i.abs}.join+"@easi.com"  



#密码这一块为了方便管理可以写死一个好
记得密码,例如‘123456‘  



@mail_pwd="123456" 




ie=IE.new  



#passport测试站点  


ie.goto ('accountservices.
passport-int.net/reg.srf?')  


#选中radio button  


ie.radio(:name,"HasEmail").set  


#点击continue按钮  


ie.button(:name, “Continue").click  



ie=IE.attach(:title, “Sign Up")  



#在text field中填写所需要的信息  


ie.text_field(:name,"p4181")
.set(@mail_address)  


puts 'Email address: '+@mail_address  


ie.text_field(:name,"p3e8").set(@mail_pwd)  


puts 'Password: '+@mail_pwd  


ie.text_field(:name,"p10000000").set(@mail_pwd)  


#在下拉列表中选中需要的选项  


ie.select_list(:name,"p200000000000bb8")
.select("Mother's birthplace")  


ie.text_field(:name,"p200000000000bb9"
).set("11111")  


ie.text_field(:name,"p10000002").set("0")  


ie.button(:name,” Continue").click  


ie.text_field(:name,"p1000000e").set
(@mail_address)  


ie.button(:name, “Continue").click  


ie.button(:name,” Continue").click  



ie=IE.attach(:title, “Account Services")  



ie.goto ("http://login.live-int
.com/logout.srf?")  


ie.close 

上面这段脚本主要做的事情就是通过‘goto‘语句来到一个测试passport的注册站点,然后通过查找指定页面元素的填上所需要的信息例如用户名,密码等,在通过点击几次确定以后,就完成注册,其间用puts语句在屏幕上打印注册完成所用的用户名和密码。脚本中#后面的绿色语句都是注释。通过这个例子可以很直观的看到Ruby Watirr用来做web测试的易用性,而且语句非常接近自然语言,十分容易上手。

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

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

相关推荐