【问题标题】:Is it possible to test multiple URLs with one test(Cypress)?是否可以通过一个测试(赛普拉斯)测试多个 URL?
【发布时间】:2025-12-27 00:25:13
【问题描述】:

我是 Cypress 测试的新手,想知道是否可以通过一个测试 (sample.spec.js) 测试多个 URL。

这是我的 sample.spec.js

describe("my first cypress test",()=>{
    it('navigate to eat site', () => {
        cy.visit(Cypress.env('url'))
    })
})

我在 cypress.json 上定义了环境变量“url”。

我打算使用这个命令行通过一个测试来测试多个 URL。

node_modules/.bin/cypress run --spec cypress/integration/examples/sample.spec.js --env url=https://www.google.com --headed

是否可以定义一个 url 数组并使用 Jenkins Pipeline 测试所有这些?另外,如果有办法缩短上面的命令行,请告诉我。

谢谢。

【问题讨论】:

    标签: jenkins pipeline cypress


    【解决方案1】:

    顺便说一句,你的方法已经足够好了(以防你手动运行测试而不是通过 CI 工具)。

    要缩短 URL,您可以做两件事:

    1. 将您在终端中传递的 URL 存储在 cypress.json 文件中的环境变量中。会是这样的:
    {
        "env": {
            "local": "some_localhost_reference",
            "staging": "some_staging_reference",
            "production": "some_production_reference"
        }
    }
    

    通过这种方式,您只需更改测试文件中的值,使其指向您要运行测试的环境。

    附:您需要将cy.visit() 命令移动到beforeEach() 块。

    1. 在您的package.json 文件中创建一个运行 cypress 的命令,以便能够在终端中键入 npm run <script_name>(在本例中为 npm run cypress),以便能够触发 cypress 亚军。它会是这样的:
      "scripts": {
        "cypress": "cypress open"
      }
    

    如果您要从 CI 运行测试,这将取决于您要使用的工具。它可以为你做太多。

    【讨论】:

      最近更新 更多