TestCafe 在哪些方面优于 Selenium?

In which ways is TestCafe better than Selenium?

TestCafe 克服了哪些问题,证明其采用 Selenium 是合理的?将旧的测试服移植到 TestCafe 是否值得?

我们 TestCafe 团队决定不在 Selenium 之上构建 TestCafe 的原因有很多。

首先,我们想简化测试环境的设置。要开始使用 Selenium,您需要为所需的编程语言安装 WebDriver 客户端,并为您要测试的每个浏览器安装适当的驱动程序。

虽然听起来很容易,但实际上刚开始测试是一件很麻烦的事情。如果您需要大规模配置测​​试环境,例如,这种麻烦会变得更大。对于您的本地 CI 服务器。

在 npm 中有许多基于 Selenium 的 node.js 测试解决方案。您可以看到他们需要大量的设置和配置工作才能开始。这与我们在现代 Web 开发人员工具带中的其他工具中习惯的 npm install 设置的简单性相去甚远。

TestCafe 还具有一些如果 TestCafe 使用 Selenium 作为底层平台则无法实现的功能。例如,TestCafe 可以 运行 在 remote devices 上进行测试,包括移动设备。这意味着您可以 运行 在没有安装 TestCafe 的机器上进行测试。您只需在其浏览器中打开一个 link 即可开始测试(如果主机和目标设备在网络中相互看到)。此功能可用于向根本没有安装 TestCafe 或 node.js 的工程师快速演示错误。

其他难以在 Selenium 上实现的功能包括:

隔离测试环境。每个 TestCafe 测试 运行 就好像它是在新的隐身选项卡中启动的一样。您将清理所有 cookie 和存储空间。这有助于避免大量样板测试代码,并允许您在同一个浏览器中工作而没有状态干扰的风险。这也使我们能够实施诸如即将推出的 Roles feature 之类的机制,您可以使用这些机制从不同用户的角度与页面进行交互,或者轻松地跨测试执行表单身份验证。

隐式自动等待机制。 TestCafe 自动等待 XHR 请求、页面加载和页面动画,因此您无需在代码中处理它。