Ruby Watir是一款基于Ruby语言的自动化测试框架,这款框架的功能也是异常强大的,它可以灵活方便的帮助我们完成各种需求。#t#
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 用户手册。
知识背景
编写Ruby Watir脚本时为了确定页面上的元素,需要察看网页的源文件,所以在编写watir自动化测试脚本仅仅需要了解HTML的基础知识和基本编程基础。为了方便查找和定义页面元素可以安装IE Developer Toolbar, 这个工具可以帮你轻松定位网页上的每个元素。下载地址可以从微软网站上去找。