Web 自动化测试工具 Selenium 1.0 正式发布:Chrome 支持 + 用户指南

  • 崔康

2009 年 6 月 12 日

话题:Java测试语言 & 开发架构

Selenium 是一款开源 Web 自动化测试工具,最近发布了 1.0 版,标志着 Web 自动化测试领域正式加入了一名新成员。在其新版本中,除了修正了若干 Bug,最引人瞩目的就是 Selenium RC 增加了对 Google Chrome 浏览器的支持,同时 Selenium 官方网站上提供了完整的用户指南。

InfoQ 一直关注 Selenium 的成长,赵劼.NET 平台下 Web 测试工具横向比较一文中对 Selenium 做了概括:

严格说来,Selenium是一套完整的 Web 应用程序测试系统,它包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium 的核心Selenium Core基于JsUnit, 完全由 JavaScript 编写,因此可运行于任何支持 JavaScript 的浏览器上。Selenium Core 由一种指定格式的 HTML 文件驱动,在一定程度上增强了测试套件(Test Suite)的可读性。Selenium Remote Control 允许测试人员使用常见的语言(自然包括 C# 等.NET 语言)编写测试代码,并支持不同操作系统下的各种主流浏览器。Selenium Grid 的作用是将测试分发至多台机器,这样便可大大加快测试速度。与 WatiN 相同,Selenium 也是一款同样使用 Apache License 2.0 协议发布的开源框架。

从读者对上文的回复中也可以看出,国内社区对 Selenium 的喜爱和关注也在升温。

Selenium 作为一款 Web 自动化测试工具,其支持的浏览器类型之多一直为社区所乐道,而在 1.0 版中,Selenium 正式加入了对 Google Chrome 的支持

Selenium Remote Control 采用浏览器参数 googlechrome 调用 Google Chrome,在 Windows XP/Vista 上已通过测试,Chrome 支持由 Google 人员完成。

至此,除了对 IE8 的支持功能还在开发中,其他所有主流浏览器都可以通过 Selenium 来自动化驱动以测试 Web 应用。

Selenium 的官方网站在 Selenium 1.0 发布之际,正式推出了 Selenium 的用户指南。在此之前,用户只能通过有限的文字介绍和论坛来学习 Selenium。现在,负责文档写作的团队完成了一份较为完整的 Selenium 用户指南,主要包括:

除此之外,Selenium 1.0 还包括了以下重要更新:

不过在 Selenium 1.0 中,shutDownSeleniumServer 命令由于之前的代码重构错误而不起作用,因此 Selenium 团队随即发布了 1.0.1 版本,以修正该 Bug,最新版可以从这里下载。

令人欣喜的是,国内社区在学习和使用 Selenium 之余,也针对其不足提出了新的 Web 自动化测试框架,Tellurium就是其中一个。目前 InfoQ 中文站张凯峰对此做了专题报道,Tellurium 的创始人方剑先生在采访中谈到了 Selenium 的不足:

我有个工作(Task)就是用 Selenium 去测试我们的一个应用程序(是用 Dojo Javascript 框架写的)。应该说在当时,Selenium 是一个开创性的框架,如果用他们的复制和重播模式(record and replay)很容易产生测试脚本。但一旦我开始用 Selenium,我发现它还是有一些缺点和不便之处。主要测试脚本是对代码的更新很脆弱 (Fragile)。 但是在一个敏捷开发的环境下,一般都有阶段性的用户接受测试(User Acceptance Test),由于程序一直更新,Selenium 测试脚本的维护就变成一个很头痛的问题。而且,对于很多企业级应用,复制和重播模式本身就不太适用,比喻 我们有很多数据格(Data Grid),它的内容本身就是动态的。其他的问题包括 Selenium 测试脚本不是结构化的,你可以看到处有 XPath,这更增加了维护的困难。

他同时表示,Tellurium 脱胎于 Selenium, 它的主要竞争对手还是 Selenium, 毕竟 Selenium 已经推广好几年了。要用户用一个新的框架是要花一定的时间的。

由此可见,Web 自动化测试工具的竞争愈演愈烈。但不论是 Selenium 还是 Tellurium,软件开发社区都是最终的评判者和受益者。读者可以在 InfoQ 中文站查看更多有关测试的报道。

Java测试语言 & 开发架构