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中文站查看更多有关测试 的报道。