【问题标题】:504 error when running cypress automation tests through jenkins on aws通过 aws 上的 jenkins 运行 cypress 自动化测试时出现 504 错误
【发布时间】:2022-11-22 02:10:21
【问题描述】:

我一直在尝试将我们的 Jenkins 设置迁移到 AWS EC2。它应该运行 cypress 自动化测试,但每当我触发作业时,我都会收到 504 网关超时错误。我正在测试的应用程序也部署在 AWS EC2 上。所以这是我测试过的几个场景:

  1. 在主机 A 上安装了 cypress、Jenkins 和应用程序。结果 -> 无法从命令行和 Jenkins 运行 cypress

  2. 在主机 B 上安装了 cypress 和 Jenkins,在主机 A 上安装了应用程序。结果 -> 我可以从主机 B 上的命令行运行 cypress,但不能从 Jenkins 运行。

    我可以在我的本地机器上运行 cypress 来测试主机 A 上的应用程序。

    1 和 2 中的错误是 504 网关超时错误。

    我已向 AWS 支持人员询问任何限制,但他不知道有任何限制。我想了解为什么当从与 1 中相同的主机运行时在 AWS 上运行 cypress 时被阻止,以及为什么它不像上面 1 和 2 中那样从 Jenkins 运行?在上述设置中我们可以有哪些可能的限制?

    当一切都在本地主机上时,类似的设置工作正常。

    附加信息我还可以在主机 A 上使用 cURL 来连接到 cypress 无法连接到的相同 UI。

【问题讨论】:

    标签: amazon-web-services security jenkins amazon-ec2 cypress


    【解决方案1】:

    尝试将 retries 添加到测试中

    describe('User sign-up and login', () => {
      it(
        'allows user to login',
        {
          retries: {
            runMode: 2,
            openMode: 1,
          },
        },
        () => {
          // ...
        }
      )
    })
    

    来自How to Fix 504 Gateway Timeout Error: 10 Reliable Solutions

    刷新页面

    这个提示可能听起来很简单,但它是解决 504 网关超时错误的最常见修复方法之一。服务器可能收到比平时更多的请求,因此刷新页面值得一试。

    在 Cypress 中,通过重试测试来刷新。还要确保测试是短的, 如果可能的话。

    【讨论】:

    • 它未连接到 UI,因此重试无济于事。顺便说一句,我确实重试了一些测试。
    【解决方案2】:

    在查看多项内容后,我们发现这是一个代理配置问题。我从一开始就知道这是一些外部因素,而不是 Cypress 或 Jenkins 的配置。以下是我们检查的内容列表:

    • AWS 中的安全组配置
    • IAM 设置
    • DNS 设置
    • /etc/hosts 文件

    以上都很好。在调整主机文件时,Cypress 开始抛出不同的错误消息:

    Cypress could not verify that the server set as your 'baseUrl' is running

    这让我找到了Cypress could not verify that the server set as your 'baseUrl' is running:

    其中一个 answers 建议查看代理设置,结果发现在我们的 .npmrc 文件中我们很久以前就配置了一个代理,但每个人都忘记了它,也忘记了任何 npm run 命令都会使用的事实那个代理。这也解释了为什么 cURL 命令可以正常工作,因为它不使用 .npmrc 设置配置文件,但 npm 使用。

    正如答案中所建议的那样,为应用程序 URL 设置 NO_PROXY 使其工作。我在 Jenkins 中设置了这个环境变量,这样我们的 .npmrc 就可以保持不变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      相关资源
      最近更新 更多