WatiN:在.NET 中测试 Web 应用程序

  • Al Tenhundfeld
  • 赵劼

2009 年 2 月 19 日

话题:.NET语言 & 开发架构

WatiN是一个在.NET 中自动控制浏览器的开源类库。WatiN 从流行于 Ruby 社区的 Watir 项目中得到启发,通过与浏览器的交互简化了对 Web 应用程序的自动测试。WatiN 使用 C# 编写,但是可以使用任何.NET 语言编写测试。目前它只支持 Windows 平台。

与其它.NET 平台上的解决方案相比,WatiN 1.0 已经有足够丰富的功能,并逐渐成为流行的用户界面与用户验收测试工具,可惜它只能直接支持 IE 浏览器的自动操作。虽然仍处于开发阶段,WatiN 2.0 已经支持对 IE 及 FireFox 2.0/3.0 的自动操作。作为最新的社区预览版本,WatiN 2.0 CTP 3,已于 2 月 11 日发布

CTP 3 着重于对 FireFox 提供的更好支持,并包含以下的改进:

  • 为 Mozilla.Frame 实现了新的特性,可访问 Frame 中文档内部的元素。
  • 为 Mozilla.Frame 实现了新的特性,可访问 IFrame 中文档内部的元素。
  • 为 Mozilla.Document(即 FireFox 和 Frame)实现了 Eval 功能,并增加了 IFrame 接口。
  • 修补了一个 bug:在某些情况下会导致 Form.Submit 方法不等待一个潜在 PostBack 及页面加载过程的完成。

WatiN 通过与浏览器的交互,以及对 DOM 结构的处理和验证来建立断言,不过 WatiN 2.0 引入了一个抽象层以便编写跨浏览器的测试。下面的代码示范了一种在 Google 中搜索 WatiN,并判断“WatiN”字样出现在结果中的做法。可见,只需修改一点点代码,就能针对 IE 和 FireFox 进行相同的测试了。

手动编写 WatiN 测试有些令人厌烦,因此社区里又出现了另一个开源项目,能够从浏览器中记录并创建 WatiN 测试。WatiN Test Recorder并没有发布新的版本,不过它的 2.0 版本正处于开发过程中,并已承诺会带来一些重大的增强。

查看英文原文:WatiN: Web Application Testing in .NET

.NET语言 & 开发架构