什么是 Selenium?
Selenium 是 ThoughtWorks 专门为 Web 应用程序编写的一个验收测试工具,是一种 Web 测试框架,开拓了验证 Web 应用程序的新方案,使您可在 Web 应用程序上轻松地运行用户验收测试(user acceptance test)。Selenium 与大多数尝试模拟 HTTP 请求的 Web 测试工具不同,Selenium 执行 Web测试时,就仿佛它本身就是浏览器。当运行自动的 Selenium 测试时,该框架将启动一个浏览器,并通过测试中描述的步骤实际驱动浏览器,用户将使用这种方式与应用程序交互。
由于开发人员和非开发人员都能够使用 Selenium 轻松地编写测试(也可通过 Firefox 的插件 Selenium IDE 录制, 录制后可保存为其各种支持的语言),使得它从众多测试框架应用程序中脱颖而出。在 Selenium 中,可以通过编程的方式编写测试,编写了测试后,可以使测试完全自动化。同时,Selenium 也可使用 TestNG/JUnit 作为测试驱动程序,将 TestNG/JUnit 灵活的测试特性(参数化等)添加到 Selenium,编写具有高可复用的自动化测试工具,使用 Ant 或 MVN 等项目管理构件可以非常简单的运行完整的 Selenium 测试,并且还可结合 Jenkins 实现持续集成(CI:Continuous Integration),实现 Web 开发、自动化测试的持续集成,减少不必要的资源浪费。
使用具有类似 TestNG 这样的框架的 Selenium 进行编程式测试具有这样一个优点,它允许您创建智能 fixture。TestNG 尤其适合与 Selenium 结合使用,因为它使您能够完成其他框架无法做到的测试。例如使用依赖项进行测试,重新运行失败了的测试,以及使用单独文件中定义的参数进行参数化测试。所有这些特性结合在一起,当然能够使它在众多 Web 应用程序测试框架中脱颖而出。但是,正如您将看到的,在完全自动化的验收测试中使用这些特性令它更加出众。
与其他测试工具相比,使用 Selenium 的好处如下所示:
- 测试系统功能--创建衰退测试检验软件功能和用户需求
- 多语言支持--Selenium 支持多种编程语言(Java, Python, Perl等)
- 更切近实际应用场景--Selenium 测试直接在浏览器中运行(Selenium核心用JavaScript编写),通过编写模仿用户操作的 Selenium 测试脚本,从终端用户的角度模拟真实用户操作来测试应用程序
- 测试与浏览器的兼容性--Selenium 测试可以在多系统(Windows、Linux等)平台的多浏览器(Chrome、Internet Explorer、Firefox、Safari等)中运行,是浏览器兼容性测试成为可能