【发布时间】:2018-04-26 08:48:03
【问题描述】:
TestCafe 克服了哪些问题来证明其采用 Selenium 是合理的?将旧的测试套装移植到 TestCafe 是否值得?
【问题讨论】:
标签: selenium-webdriver automated-tests e2e-testing web-testing testcafe
TestCafe 克服了哪些问题来证明其采用 Selenium 是合理的?将旧的测试套装移植到 TestCafe 是否值得?
【问题讨论】:
标签: selenium-webdriver automated-tests e2e-testing web-testing testcafe
TestCafe 团队决定不在 Selenium 之上构建 TestCafe 的原因有很多。
首先,我们希望简化测试环境的设置。要开始使用 Selenium,您需要为所需的编程语言安装 WebDriver 客户端,并为您要测试的每个浏览器安装适当的驱动程序。
虽然听起来很简单,但实际上刚开始测试却很麻烦。如果您需要大规模配置测试环境,例如用于您的本地 CI 服务器。
npm 中有许多基于 Selenium 的 node.js 测试解决方案。您可以看到它们需要大量的设置和配置工作才能开始。这与我们在现代 Web 开发人员工具带中的其他工具中习惯的 npm install 设置的简单性相去甚远。
TestCafe 还具有一些功能,如果 TestCafe 使用 Selenium 作为底层平台,这些功能将无法实现。例如,TestCafe 可以在 remote devices 上运行测试,包括移动设备。这意味着您可以在没有安装 TestCafe 的机器上运行测试。您只需要在其浏览器中打开一个链接即可开始测试(如果主机和目标设备在网络中看到彼此)。此功能可用于向根本没有安装 TestCafe 或 node.js 的工程师快速演示错误。
在 Selenium 之上难以实现的其他功能包括:
隔离的测试环境。每个 TestCafe 测试都像在新的隐身选项卡中启动一样运行。您将清洁所有 cookie 和存储空间。这有助于避免大量样板测试代码,并允许您在同一个浏览器中工作而没有状态干扰的风险。这也使我们能够实现诸如即将推出的Roles feature 之类的机制,您可以通过它从不同用户的角度与页面进行交互,或者轻松地跨测试执行表单身份验证。
隐式自动等待机制。 TestCafe 会自动等待 XHR 请求、页面加载和页面动画,因此您无需在代码中处理它。
【讨论】: