【问题标题】:Is common to cypress take so much time to visit some page in nuxt project?cypress 是否需要花费大量时间来访问 nuxt 项目中的某个页面?
【发布时间】:2021-05-31 20:09:46
【问题描述】:

概述

在我的项目中,Cypress 需要 15 秒以上的时间来访问 Nuxt 页面,然后运行测试

测试运行很快,但是加载页面需要很长时间。

我可以做些什么来减少访问时间?

我想做什么?

我想在本地模式下使用 MirageJS 和 CircleCI 运行我的 e2e 测试以验证我的 PRs

详情

赛普拉斯版本:7.4.0

【问题讨论】:

  • 向我们提供有关您项目配置的更多背景信息。问:“我的车慢,为什么?”没有任何上下文很难说。
  • nuxt-webpack 在开发模式 20s,nuxt-webpack 在启动模式(静态)
  • 目前与 vite 兼容的很少,但它演示了 webpack HMR 的问题。 Webpack + Production 没问题(如果目标是“静态”)。恐怕你的其余信息对我来说没有意义。
  • 你为什么认为他正在测试生产版本?他很有可能同时在开发和测试,因此想要使用 HMR 的开发模式。
  • @eric99 感谢您的参与,我尝试在此处运行 npm start 并且速度要快得多,但我的特定项目有问题。我正在使用 MirageJS 来模拟我的 API 请求,但我认为构建 nuxt 并使用 Mirage 是不可能的。

标签: testing nuxt.js cypress


【解决方案1】:

通常不会。但是,从 v7.2 开始,cypress 存在一个问题: https://github.com/cypress-io/cypress/issues/16671

您可以尝试将 cypress 降级到 7.1,以评估您的性能问题是否与此错误有关。

【讨论】:

    【解决方案2】:

    我非常同意您需要与我们分享更多背景的评论。

    但是,给你一些从哪里开始的指示:

    • 了解应用程序,访问新页面时加载的内容,查看网络请求
    • 这种情况是否仅在 Cypress 中发生,甚至在您访问页面时发生?
    • 注意您正在测试的内容并阻止其他所有内容; Cypress 有blockHosts configuration 可以阻止某些请求,从而可以显着加快执行速度;想到一个例子:在使用 Cypress 进行测试时,您不需要看到一些广告或图片,那么您可以阻止这些请求并加快执行速度
    • 您可以增加timeouts,这不会帮助您加快测试套件的速度,但至少它们下次不会失败

    【讨论】:

      【解决方案3】:

      我的团队项目是基于 NUXT 的,我也遇到了从 5.2 到 6.8 的所有版本的渲染时间问题。此后,我在cypress.json 文件中进行了以下配置,以增加默认等待时间:

      {
        "requestTimeout": 60000,
        "responseTimeout": 60000
      }
      

      【讨论】:

      • 我只是这样做,但是,正如你所说,这不是一个解决方案:(
      猜你喜欢
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 2020-05-17
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      相关资源
      最近更新 更多