Cypress:登录一次测试并保持登录状态进行下一次测试

Fla*_*ull 2 cypress

我想知道是否有一种方法it()可以在一次登录后在下一次登录时保持登录状态it()

举个例子:

it('logs in', () =>{
    cy.login('username', 'password');// This calls a custom command
})

it('next step', () =>{
    cy.get('div.nextStep').click();
})
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用before()登录,然后beforeEach()捕获 cookie,这样会话就会持续存在,但我想在 an 内登录,it()并且用户在下一个中保持登录状态进行测试it(),这可能吗?

Klo*_*pus 6

要在 Cypress 12 中执行此操作,请关闭 testIsolation。

测试隔离已禁用

当禁用测试隔离时,Cypress 将不会在测试开始之前更改浏览器上下文。该页面在测试和 cookie 之间没有清除,本地存储和会话存储将在该套件中的测试中可用。此外,该cy.session()命令只会在建立浏览器会话时清除当前浏览器上下文 - 当前页面不会被清除。

赛普拉斯.config.js

const { defineConfig } = require('cypress')

module.exports = defineConfig({
  e2e: {
    baseUrl: 'http://localhost:1234',
    testIsolation: false,
  },
})
Run Code Online (Sandbox Code Playgroud)

我已经强调了对 很重要的部分cy.login()。保留登录过程的工件将使第二个测试能够通过。