Typescript Cypress long automation脚本导致Chrome浏览器崩溃,并出现Aw捕捉错误

Typescript Cypress long automation脚本导致Chrome浏览器崩溃,并出现Aw捕捉错误,typescript,automation,cypress,Typescript,Automation,Cypress,我在cypress中遇到浏览器崩溃问题。 我的自动化脚本是一个较长的过程,因此在运行了几个场景之后。每次尝试运行第三个场景时,浏览器都会崩溃并显示下面的屏幕 有时它会超时并抛出440个未知代码错误 如果我移动我的第一个场景,那么同样的行为也会发生。每次第1次和第2次执行都很完美,但从第3次开始,所有测试都失败 有人面临类似的问题吗?Cypress有两种运行模式:调试/开发模式,从Cypress open开始;测试运行模式,从Cypress run开始 cypress run与cypress

我在cypress中遇到浏览器崩溃问题。 我的自动化脚本是一个较长的过程,因此在运行了几个场景之后。每次尝试运行第三个场景时,浏览器都会崩溃并显示下面的屏幕

有时它会超时并抛出440个未知代码错误

如果我移动我的第一个场景,那么同样的行为也会发生。每次第1次和第2次执行都很完美,但从第3次开始,所有测试都失败


有人面临类似的问题吗?

Cypress有两种运行模式:调试/开发模式,从
Cypress open
开始;测试运行模式,从
Cypress run
开始

cypress run
cypress open
有一些关键区别。最明显的是
cypress run
是无头的。它在后台启动电子浏览器并执行所有测试

这不是唯一的区别。当使用
cypress open
运行时,cypress会定期拍摄DOM快照以进行调试,您可能知道这一点。这是通过控制内存泄漏来实现的;如果使用
cypress open
进行的单个测试运行时间过长,则内存将继续攀升,直到Chrome最终崩溃


如果您的测试在
cypress run
下运行正常,而在
cypress open
下运行不正常,那么您的问题很可能是内存问题。如果是这种情况,您有两种选择可以帮助您

首先,可以减少保存在内存中的快照数量。根cypress文件夹中的
cypress.json
文件允许您为各种设置设置自定义值
NumtestskeeptinMemory
默认值为30左右,但可以将其减少到10、5甚至0。在0时,将不会获得任何DOM快照。内存使用率仍将上升,但上升速度将慢得多

{
    "numTestsKeptInMemory": 0
}
其次,您可以而且应该将一个大的测试文件拆分为多个较小的测试文件。从版本3.0.0开始。这允许Cypress在每次测试后进行清理,只要单个文件足够小,就可以有效地解决内存问题



如果这些都不能解决您的问题,那么您可能正在处理另一个bug,例如。如果你找不到你的问题,你可能会想。

伟大的解释!谢谢韦德。让我试试你给出的解决方案,很快就会给你回复。嗨,韦德,你能指导我如何执行cypress run命令吗。我试过“npm run-cypress:run”,但它说缺少脚本。也试过“cypress-run”,但它说cypress不被识别为内部或外部命令。下面,cypress.json中的更改到目前为止对我有效。{“NumtestskettinMemory”:0}@PrashantKankhara您是从Cypress.io下载Cypress的,还是通过NPM安装的?