Selenium Remote Control (RC) 和 Selenium WebDriver 都是支持不同编程语言的测试自动化工具,但有一些关键的区别。
硒 RC
直到几年前,Selenium RC还是Selenium测试套件中的一个重要组件。正是这个测试框架使 QA 或开发人员能够用任何编程语言编写测试用例,以便针对任何 HTTP 网站自动执行 Web 应用程序的 UI 测试。Selenium RC 由两部分组成:
- 首选语言绑定艺术的客户端库。
- 自动启动和销毁 Web 浏览器的服务器。
Selenium RC 的架构有点复杂:
- 开发人员/QA 人员需要在运行测试脚本之前安装和启动一个名为 Selenium Remote Control Server 的单独应用程序。
- Selenium RC 服务器充当浏览器和 Selenium 命令之间的中介。
执行顺序是:
- Selenium RC 服务器将名为 Selenium Core 的 Javascript 程序注入浏览器客户端。
- 注入 Selenium Core 程序后,它开始根据测试脚本从 RC 服务器接收指令。Selenium Core 将所有这些指令作为 JavaScript 命令执行。
- Web 浏览器执行 Selenium Core 给出的所有命令,并将测试摘要返回给 Selenium RC 服务器。
但有以下限制:
- Selenium RC Server 的架构相当复杂。
- 执行测试脚本非常耗时,因为 Selenium RC 使用 JavaScript 命令作为对浏览器的指令,导致性能下降。
- API 的面向对象较少。
- 不支持无头浏览器。
Selenium RC Server 的所有这些限制导致了新的强大自动化框架Selenium WebDriver的开发。
网络驱动程序
从 Selenium 的角度来看,WebDriver 接口类似于 Mozilla、Chrome、Internet Explorer、Safari 等第三方浏览器供应商必须遵守和实施的协议。这将反过来帮助最终用户使用公开的 API 编写通用代码并在所有可用浏览器中实现功能而无需任何更改。
这个用例
要执行您的测试用例:
- 本地:Selenium Client (jars) 是一堆 API,足以满足您的需要。
- 在远程机器(Selenium Grid)上:Selenium Server 将解决您的目的。
您可以在 Selenium Standalone Server 和 Java selenium Jar 文件之间的区别中找到相关讨论