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