(1)可对多浏览器进行测试,包括IE、MozillaFirefox、Chrome、Android手机浏览器等。
(2)支持多种语言,如Java、C#、Python、Ruby、PHP等
(3)跨平台,如Windows、Linux、iOS、Andriod等
(4)开源免费
Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。 Selenium 的中文名为“硒”,是一种化学元素的名字,它对汞(Mercury)有天然
的解毒作用,实验表明汞暴露水平越高,硒对汞毒性的抵抗作用越明显,所以说硒是汞的克星。大家应该知道Mercury 测试工具系列吧(QTP,QC,LR,WR...),
他们功能强大,但却价格不菲,大家对此又爱又恨!故thoughtworks特意把他们的Web开源测试工具命名为Selenium,以此帮助大家脱离汞毒。
Selenium工具组:
●SeleniumIDE
该工具是一个用于构建脚本的初级工具,其实是FireFox的一个插件,拥有一个易于使用的界面。它拥有记录功能,能够记录用户执行的操作,并可以导出为可重复使用的脚本。
如果没有编程经验,可以通过Selenium IDE来快速熟悉Selenium的命令。
●Selenium1.0(Remote Control)
是Selenium中最主要的第一代测试工具,它是由javascript实现的,它支持很多浏览器,可以使用C#,Java等语言编写测试案例,易于维护,同时提供了很好的扩展性。每一个浏览器对于执行javascript都有很严格的安全限制,以防止用户被恶意脚本攻击。这也导致了selenium在某些场景下的测试工作变得很困难,比如IE下面的 upload操作就不许执行往输入框中填写文件的路径。
其工作原理请参见:http://www.cnblogs.com/hyddd/archive/2009/05/30/1492213.html
●Selenium2.0(WebDriver)
是最新版的selenium工具,提供了许多功能,包括一套组织性更好、面向对象的API,并克服了许多在之前selenium1版本中测试的局限性。Selenium 2.0主要的特性就是与WebDriver API的集成。WebDriver旨在提供一个更简单。更简洁的编程接口以及解决一些Selenium-RC API的限制。Selenium-Webdriver更好的支持页面本身不重新加载而页面的元素改变的动态网页。WebDriver的目标是提供一个良好设计的面向对象的API,提供了对于现代先进web应用程序测试问题的改进支持。SeleniumWebdriver支持很多语言,如:C#,Java,Python,Ruby等,本文使用java。
●Selenium1.0与2.0的本质区别
1)Selenium1.0需要事先启动服务,而2.0不需要
2)2.0的API更容易理解和使用,其可读性和可维护性也大大提高
3)2.0完全就是一套类库,不依赖于任何测试框架,不需要启动其他进程或安装其他程序。
4)1.0是在浏览器中运行javascript来进行测试,而2.0则是通过原生浏览器扩展直接控制浏览器,取代了嵌入到被测Web应用中的JavaScript,支持创建更高级的测试,避免了JavaScript安全模型的限制。