为什么 Cypress 在访问 api.cypress.io 端口 443 时会得到 ECONNRESET?

Why does Cypress get ECONNRESET when accessing api.cypress.io port 443?

每当尝试启动浏览器进行任何测试时,Cypress 都会失败。 Cypress 的调试输出(下方)表示它在端口 443 发出 api.cypress.io 请求,但被 ECONNRESET 拒绝。直到昨天,2022 年 3 月 15 日,这一切都很好。

 cypress:server:api request to url: POST https://api.cypress.io/exceptions with params: {"body":{"err":{"name":"Error","message":"read ECONNRESET","stack":"Error: read ECONNRESET\n    at TCP.onStreamRead (node:internal<stripped-path>stream_base_commons:211:20)\n"},"version":"9.5.2","osName":"win32","osVersion":"10.0.19044","osCpus":[{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":1742484,"nice":0,"sys":2745609,"idle":83140890,"irq":564140}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":1367906,"nice":0,"sys":770843,"idle":85490125,"irq":12953}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":3082156,"nice":0,"sys":1812125,"idle":82734593,"irq":58062}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":1978218,"nice":0,"sys":1167062,"idle":84483593,"irq":5796}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":1980421,"nice":0,"sys":1389296,"idle":84259156,"irq":58531}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":1058968,"nice":0,"sys":641062,"idle":85928843,"irq":5765}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":1659281,"nice":0,"sys":1226531,"idle":84743062,"irq":15203}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":7150921,"nice":0,"sys":2484828,"idle":77993125,"irq":15234}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":1834953,"nice":0,"sys":1689578,"idle":84104343,"irq":15718}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":1049156,"nice":0,"sys":710531,"idle":85869156,"irq":6703}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":2008078,"nice":0,"sys":2070031,"idle":83550734,"irq":40375}},{"model":"Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz","speed":2592,"times":{"user":1321593,"nice":0,"sys":1019718,"idle":85287531,"irq":8406}}],"osMemory":{"free":13561356288,"total":34093076480}},"headers":{"x-os-name":"win32","x-cypress-version":"9.5.2"}} and token: undefined +0ms
  cypress:network:agent addRequest called { isHttps: true, href: 'https://api.cypress.io/exceptions' } +4s
  cypress:network:connect beginning getAddress { hostname: 'api.cypress.io', port: 443 } +167ms
Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:211:20)
 {
  errno: -4077,
  code: 'ECONNRESET',
  syscall: 'read'
}
Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:211:20)

在 3 月 14 日尝试之前,这对我来说一直很好用。我有同样的行为。浏览器启动,它运行了一点,并因这个错误而崩溃。我以为它必须对我的计算机进行更新,但直到现在我才看到其他人最近遇到这个问题。

我认为这与 Sophos 有关。

我遇到了同样的问题,但到目前为止我还没有找到解决办法。 只是为了说明一些问题,这是我配置的和我尝试过的:

  • O.S: Windows 10
  • 节点版本:16.13.1
  • Cypress 版本:尝试过 9.2.0 和 9.5.4
  • 其他:我的电脑上有Sophos,但没有管理员权限。另外,这个问题对我来说是几天前才开始的,而我正在处理的项目已经处理了几个星期。
  • 我尝试清理缓存,但没有解决问题。
  • 我尝试创建一个新的 cypress 项目并 运行 示例测试,问题也发生了。

我知道这不是一个答案,因为它没有给出问题的解决方案,但我希望它能帮助解决问题

我终于发现 Cypress 试图连接到运行 Cypress Dashboard 的 man 服务器。这是 Cypress 提供的一款产品,可让您监控和调试在 CI/CD 管道中失败的测试。我现在不记得我是如何解决它的,但我们最终确实在那里创建了一个帐户。他们有免费版本。

由于我没有足够的声誉来对其他人的答案进行投票或添加评论,这是我在这个问题上发现的。

我的公司使用 Sophos 作为其防病毒软件,我可以确认这是原因(至少对我而言)。在与 IT 团队交谈后,他们给了我篡改密码,我能够进入设置并禁用 'Network Threat Protection' 之后,我能够 运行 Cypress 没有任何问题。

*** 更新 *** 我已经在 Sophos 社区论坛 here 上发帖,虽然我测试了需要对 Sophos 进行的更改之一,但似乎确实有一个解决方法(对我有用),那就是使用“ Electron 浏览器”,而不是 Chrome、Firefox 或 Edge。