乐闻世界logo
搜索文章和话题

Cypress 如何获取 baseURL 的值?

5 个月前提问
3 个月前修改
浏览次数48

3个答案

1
2
3

在 Cypress 中,可以通过多种方式访问 baseURL 的值。baseURL 是在 Cypress 的配置文件中指定的,通常用来表示应用的根地址,这样就可以在测试中仅仅使用相对路径。以下是访问 baseURL 的几种方法:

  1. 通过 cy.visit() 使用相对路径: 当您在 cy.visit() 使用相对路径时,Cypress 会自动将 baseURL 作为前缀添加到路径中。例如,如果您设置了 baseURLhttps://example.com,您可以这样使用:

    javascript
    cy.visit('/page'); // 实际访问的 URL 将是 https://example.com/page
  2. 通过 Cypress 配置命令: 您可以使用 Cypress.config() 函数访问当前的配置,包括 baseURL。例如:

    javascript
    const baseURL = Cypress.config('baseUrl'); console.log(baseURL); // 输出配置文件中设置的 baseURL
  3. 在测试中动态设置: 如果你需要在测试执行过程中动态地更改 baseURL,你也可以使用 Cypress.config() 方法:

    javascript
    Cypress.config('baseUrl', 'https://newexample.com'); // 之后的 cy.visit('/') 会访问 https://newexample.com/
  4. 环境变量: 还可以通过设置环境变量的方式来覆盖配置文件中的 baseURL。在命令行中运行 Cypress 时,使用 CYPRESS_BASE_URL 环境变量:

    shell
    CYPRESS_BASE_URL=https://anotherexample.com npx cypress open

    在测试中,baseURL 会被设置为 https://anotherexample.com

作为一个实际的例子,假设我们在测试中需要访问一个登录页面,而这个页面的路径是 /login。我们的 baseURL 配置为 https://example.com,我们可以编写以下的 Cypress 测试代码:

javascript
describe('Login Page Test', () => { it('should visit the login page', () => { // 直接使用相对路径,Cypress 会自动使用 baseURL cy.visit('/login'); // 做一些登录页面的断言... }); it('should dynamically get the baseURL and construct the full URL', () => { // 获取 baseURL const baseURL = Cypress.config('baseUrl'); // 使用获取的 baseURL 构造完整的 URL 并访问 cy.visit(`${baseURL}/login`); // 做一些登录页面的断言... }); });

在第一个测试用例中,我直接使用 cy.visit('/login'),Cypress 自动加上了 baseURL。在第二个测试用例中,我首先获取 baseURL 的值,然后手动构造了完整的 URL 来访问登录页面。这两种方式都可以根据测试的需要选择使用。

2024年6月29日 12:07 回复

You can use the Cypress.config() command.

To get baseUrl value use Cypress.config().baseUrl or Cypress.config('baseUrl').

2024年6月29日 12:07 回复

cy.visit('/') will visit the baseUrl if you have it defined in your Cypress e2e config. (Source)

2024年6月29日 12:07 回复

你的答案