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函数参数。
浙公网安备 33010602011771号