致力于测试团队建设和自动化测试开发,欢迎有兴趣者一起研究讨论
开源Web自动化测试框架—Watir试用
上一篇 /
下一篇 2008-08-05 00:33:37
/ 个人分类:Watir
u4xf_G @&m0Watir 是一个使用 Ruby 实现的开源Web 自动化测试框架,相对于那些庞大的商业工具来说,它很小巧,也很灵活,提供的功能也足够用。最近抽时间试用了一下,感觉还不错。因为 Watir 的网站上用户手册、示例代码以及 FAQ 都维护的不错,所以已有的东西我就不重复了,在这里简单介绍一下,如果同行们有兴趣,可以一起研究一下。
1FPN5F
i0c h&{m051Testing软件测试网t{!A^Y
先丢一段脚本给大家看看使用 Watir 来书写脚本是多么的方便。下面的例子是 Watir 自带的一段测试 Google 的搜索功能的脚本,不过我只保留了最主要的部分,以使它看起来更简洁一些:
d3i'_9S&L3[051Testing软件测试网$Go
]-o1M 1、脚本示例51Testing软件测试网 }s+O4D ^V)S ~&xx
0V@qM&V0
?n0U2@~s0脚本示例
\N#OK6a$g,y-Y0z9Q h:|uw(f0require 'watir' ,X2q@7CW R.y0 # 打开ie 1Z{[+i7c0 ie = Watir::IE.new51Testing软件测试网1J9F z1j'QA.|sxd0w&@ # 打开google站点51Testing软件测试网@2G _3`w Kn;lC ie.goto (http://www.google.com) a#x~"B'q0 # 输入搜索条件 R|@2y3\0 ie.text_field(:name, "q").set("51testing") pp|)B
Y7tR`\C[0 # 点击搜索按钮51Testing软件测试网$\'X8P)q&y*K$d ie.button(:name, "btnG").click f.A e@B4fXs0 # 检查51testing连接是否在page中51Testing软件测试网5xk-W%d,skY{&v`v if ie.contains_text("51testing")51Testing软件测试网Z {9m
B$U;m puts "测试通过!"51Testing软件测试网B]q/}6g `m else 1_6k'l?z0 puts "测试失败!" Z:B;N(ct0[
i
d0 end _!GY?PL~0 |
4C_~{-z0g;Xf1o9Zz1H [0这段脚本要做的事情是打开 Google 的主页,然后在 Google 唯一的那个文本框内输入“51testing”这个字符串,然后按下“Google 搜索”按钮,之后验证搜索结果的页面中是否包含了“51testing”这个字符串,并根据结果使用 puts 函数在屏幕上打印不同的信息。脚本中“#”后面的部分是注释的内容。说实话要比那些商业工具录制的脚本还要简洁和简单。51Testing软件测试网8iWL\QE#APJ
3t~C,Obx
m0 2. 所需要的环境51Testing软件测试网u.M_?@B)j"{T)l6Io j
51Testing软件测试网lny.g1f;\`(V(AO
Ruby : 因为是使用 Ruby 实现的,脚本也是 Ruby 的脚本,所以需要在本机安装 Ruby。可以点击这里下载。我安装的是Ruby 1.8.6-26 Stable Release。51Testing软件测试网
]
[{no
N
[ yF.U%t S0 Watir : 使用gem install watir语句可以在线安装51Testing软件测试网%@LL
SWSN
x8V"J*p6?j f'c0 具体的配置请参见 Watir 用户手册。虽然是英文的,但是很简单。
G g*|'s_oG o6W(_:s,`/q0
j3[A'`ZS%z
Y/s'M*\x0 3. 所需的知识背景
&])K(Lpt$A?&O\d`0
!z%a5?2nl;i k0 因为毕竟还是要写代码的,所以开发经验是必需的,任何语言的开发经验都可以——虽然 Ruby 是一个面向对象的脚本语言,不过你可以暂时不理它那么多(别被面向对象、脚本语言之类的词汇吓倒),如果你写过 VBscrīpt 或者其他什么代码那么 Watir 就是很简单的。不过,需要了解 Web 开发,比如 HTML 的基本语法,因为在开发脚本时需要根据 Web 页面的源代码来确定对 Web 对象的识别方式——当然,也可以借助其他工具来实现,例如 Mozilla Firefox 中提供的“DOM 查看器”(可以在 Mozilla Firefox“工具”菜单下找到,具体的使用方法参见 Mozilla Firefox 帮助)。
/?%n#y#?\TK*Q051Testing软件测试网8C$|MWMw
V
另外,测试和自动化测试方面的基本知识还是要有的。
(r3z'EB?fJ'l%dA0
-oF;dL4T
]1p!Jx1y8U0 4. 脚本的生成
G9{!~NpU2A_0
2~-cwsF3S@,\0 录制功能就别想了,Watir 没有提供这项功能。如果你非用录制不可,那就选择其他吧。不过就我自己的使用来看,Watir 的脚本写起来比用 QTP 或者 Rational 的工具录制还要方便和快捷。
6Q
a7F m5j/ric0
,d n5mXH0 5. 对象的识别、操作和自动验证51Testing软件测试网Z+KP-ve)]D
D*RU%Z.EJJ0 Watir 提供了对多种常见 Web 对象的识别和操作的支持,例如 Hyperlinks 的点击、Checkboxes 的选中和清除、Radio Buttons 的选中和清除、下拉框和列表框的选择、文本框的输入、各种按钮的点击以及 Frame 的访问、弹出窗口的控制等。当然,既然可以识别和操作这些对象,也可以访问这些对象,使测试结果的验证自动化。具体信息可以参见 Watir 用户手册。
-?;g,BU,pqFb0
O_*J|L!PU0 6. 其他特性
&Ecr(v2VW0
D;fX!e3g0 如果你熟悉了 Ruby ,再结合其他一些工具,可以在 Watir 框架的基础上扩展出很多特性。例如:外部文件或的读取、模块化的开发、可重用的函数库、数据驱动、关键字驱动、脚本的版本化控制以及测试结果的管理,等等。数据库51Testing软件测试网\)E5rA7U6s
:FnB[%sOA
d0 7. 相关链接
r+d p8u|D0
X-dM \+n0 Watir 主页:http://wtr.rubyforge.org/51Testing软件测试网{R~Dq0gN8I7T
.aV,[3C0i+j
h0 Ruby中文手册:http://www.ruby-cn.org/doc.html51Testing软件测试网*mR?(PIh0g@m5d#C&h
51Testing软件测试网WcBI#ok6RS,i?`n
Ruby主页:http://ruby-lang.org/en/51Testing软件测试网S#_c5G
c(B5{\^!q
U2}0PvY
@F;A;A0 就如前面所说的,Watir 的用户手册、FAQ等方面维护的很不错,如果完整的看完 Watir 主页上的 sample test 和 User’s Guide 基本上就可以用 Watir 开始测试 Web 应用了。如果有兴趣进一步研究,可以参考一下 Technical Doc ,也可以读一下 Watir 自带的几个示例
6Z.`!bpm3Y5bS;CBTr0
收藏
举报
TAG:
Watir