Selenium自动化测试浏览器,它主要是用于Web应用程序的自动化测试,但肯定不止局限于此,同时支持所有基于web的管理任务自动化。
Selenium的特点:
Ø 开源,免费
Ø 多浏览器支持:Firefox、Chrome、IE、Opera等
Ø 多平台支持:Linux、Windows、MAC
Ø 多语言支持:Java、Python、Ruby、PHP、C#、JavaScript
Ø 对web页面有良好的支持
Ø 简单、灵活
Ø 支持分布式测试用例执行
Selenium是由几个工具组成,每个工具都有其特点和应用场景
Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。那么在什么情况下用到它呢?
快速的创建bug重现脚本,在测试人员的测试过程中,发现了bug之后可以通过IDE将重现的步骤录制下来,以帮助开发人员更容易的重现bug。IDE录制的脚本可以转换成多种语言,从而帮助我们快速的开发脚本。
Selenium Grid是一种自动化测试的辅助工具,Grid通过利用现有计算机基础设施,能加快Web-app的功能测试。利用Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试实例。其特点为:
Ø 并行执行
Ø 通过一个主机同意控制用例在不同环境,不同浏览器下运行。
Ø 灵活添加变动的测试机器
Selenium RC是Selenium家族的核心工具,Selenium RC支持多种不同的语言编写自动化测试脚本,通过Selenium RC的服务器作为代理服务去访问应用从而达到测试目的。
Selenium RC使用分Client Libraries和Selenium Server,Client Libraries库主要用于编写测试脚本,用来控制Selenium Server的库。
Selenium Server负责控制浏览器行为,总的来说,Selenium Server主要包括3个部分:Launcher、Http Proxy、Core。其中Selenium Core是被Selenium Server嵌入到浏览器页面中的。其实Selenium Core就是一堆JS函数的集合,就是通过这些JS函数,我们才可以实现用程序对浏览器进行操作。Launcher用于启动浏览器,把Selenium Core加载到浏览器页面中,并把浏览器的代理设置为Selenium Server的HTTP Proxy。
在Selenium 2.0版本中,加入了WebDriver,即Selenium2.0=Selenium 1.0 + WebDriver。
需要强调的是,在Selenium2.0中主推的是WebDriver,WebDriver是Selenium RC的替代品,因为Selenium为了向下兼容,所以Selenium RC并没有彻底抛弃,如果你使用Selenium开发一个自动化测试项目,强烈推荐使用WebDriver。那么Selenium RC与WebDriver主要区别在哪?
Selenium RC在浏览器中运行了JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行Selenium命令。
WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver还利用了操作系统级的调用模拟用户输入。