TestCafe 加速测试执行 (Speed Up Test Execution)

原文链接:https://testcafe.io/documentation/402963/guides/best-practices/speed-up-test-execution

加速测试执行 (Speed Up Test Execution)

使用以下策略之一来减少测试执行时间:

并发运行测试 (Run Tests Concurrently)

启用并发功能以同时运行多个测试。

在配置文件中设置 concurrency 属性:

{
    "concurrency": 3
}

如果您使用命令行界面,请启用 --concurrency 选项:

testcafe --concurrency 3 chrome tests/

并发运行测试可以降低整个测试套件的执行时间,但需要更多的系统资源。请仅在系统资源充足的情况下增加并发系数。

在无头浏览器中运行测试 (Run Tests in Headless Browsers)

无头浏览器(没有图形用户界面的浏览器)启动时间更短。此外,它们允许您在没有图形能力的运行环境中(如容器)执行测试。

使用 Role (Use Roles)

Role(角色)是可复用的身份验证流程。如果您测试的资源需要身份验证,User Roles 可以帮您节省时间。

当您第一次启用某个 Role 时,TestCafe 会执行登录操作并保存用户身份验证数据。在随后激活该 Role 时,TestCafe 不会再执行任何操作——它只是从存储中检索身份验证数据。

请将 Role 语句放在 before 和 beforeEach 钩子中。这样,TestCafe 会在测试套件最开始时收集 Role 身份验证数据,后续的所有激活操作都会瞬间完成。

重置测试速度 (Reset Test Speed)

speed 参数控制操作模拟的速度。默认值为 1,即最快的模拟速度。

较低的速度值会增加测试套件的执行时间,但这对于调试可能很有用。如果您之前设置过自定义速度值,请禁用该设置或将其设回 1。

在本地浏览器中运行测试 (Run Tests in Local Browsers)

网络延迟会负面影响测试执行速度。在本地浏览器中运行测试可以获得最佳性能。

模拟耗时的请求 (Mock Time-Consuming Requests)

通过模拟(Mock)耗时的 HTTP 请求响应来加快测试过程。

TestCafe 的请求模拟器可以拦截应用程序对外部资源的请求,并使用您指定的数据响应这些请求。模拟请求几乎会立即完成,消除了数据处理和网络延迟可能导致的延迟。

优化您的页面模型 (Optimize Your Page Model)

同时使用多个页面模型(Page Model)对象会增加测试执行时间和内存消耗。请修改您的页面模型文件,确保每次测试运行只使用一个页面模型对象。

创建一个 PageModel 类并将其导出:
PageModel.js

class PageModel {
    // 页面模型内容
}
export default new PageModel()

test.js

import PageModel from './path/to/page-model.js'

启用服务器端缓存 (Enable Server-Side Caching)

注意: cache 选项不会缓存 HTML 内容以及超过 5 MB 的资源。

TestCafe 可以缓存 Web 资源(如图像、脚本和视频),并在需要时从缓存中检索它们。使用服务器端缓存可以避免重复的网络请求,并减少测试套件的执行时间。

使用以下任一方式启用服务器端缓存:

  • 使用 --cache 命令行标志。
  • 使用配置文件中的 cache 属性。
  • 使用 createTestCafe 函数参数。
posted @ 2026-03-06 10:21  HarryMiau  阅读(19)  评论(0)    收藏  举报