通过前面四期,大家对Selenium应该有了初步的了解,它是一个强大的基于浏览器的开源自动化测试工具。在使用一段时间后,你会觉得Selenium确实是一个很不错的Web测试工具,它使用灵活简单,上手快,而且写出的测试case非常简洁,并且支持多个编程语言。
但Selenium并不是能够在浏览器中自动化功能测试的唯一工具。由SimonStewart创建的webdriver是一个具有类似目标的项目。要控制浏览器,需要依赖采用本机支持的独立客户端。webdriver仅提供java绑定,并不能支持Selenium1所能支持的那么多浏览器。这样就有了Selenium2的出现,接下来我们聊一聊Selenium2。
Selenium2的由来
Selenium 2(又名 WebDriver),简单来说Selenium2.0=Selenium1.0+webdriver,结合了Selenium1和webdriver中的最佳特性。
那 Selenium 团队为什么会将两个项目合并呢?以下这段,摘自于网上比较官方的说法。
我们通常认为其中部分原因是 WebDriver 解决了 Selenium 存在的缺点(比如,能够绕过 JS 沙箱,这个),部分原因是 Selenium 解决了 WebDriver 存在的问题(比如,支持更广泛的浏览器和编程语言),不论真正的原因是什么两个项目的合并为用户提供了一个优秀的自动化测试框架。它具有来自webdriver的清晰面向对象API,并且能以最佳的方式与浏览器进行交互,它支持多种浏览器和多语言绑定。Selenium2还提供基于htmlunit的无外设驱动,是用于测试web应用程序的java框架。htmlunit运行速度特别快,但它不是一个真正与真实浏览器相关联的驱动。
我切身的使用感受是,Selenium2(以下统称webdriver)比Selenium1(以下统称Selenium)简单方便,脚本易维护,我们在使用中可以将Selenium可以作为上手实践,然后逐渐过渡到Webdriver。
Selenium无法自定义testcase执行顺序,只能按照自上而下的顺序执行,而且它的结构只能是 test suite-test case的两层关系,不能实现更多层次的结构,如 test suite-test suite –test case。
目前Selenium2为下列程序提供驱动程序:
Mozilla Firefox
Google Chrome
Microsoft Internet Explorer
Opera
Apple iPhone
Android browsers
说了这么多,有没有想要体验一把的冲动,那么先从搭建环境开始吧。
Eclipse中配置webdriver
我们需要下载和安装程序
- Eclipse
- JRE
- Selenium-server( e.g.Selenium-server-2.39.0.zip)
All variants of the Selenium Server: stand-alone, jar with dependencies and sources.
- Selenium-server-standalone(e.g.Selenium-server-standalone-2.39.0.jar) Use this if you want to use the Selenium RC or Remote WebDr