如何使用 cy.session() 替代 Cypress.Cookies.defaults() 来存储唯一 ID

Kie*_*n M 3 cypress

目前,我Cypress.Cookies.defaults({ preserve: 'uniqueId' });在赛普拉斯测试中使用在多个测试中保留唯一的 ID。然而,我最近将 Cypress 更新到了 12.9.0 版本,发现它Cypress.Cookies.defaults() 在 12.0.0 版本中已被弃用并被 cy.session() 取代。

如何使用 cy.session() 保留单个唯一 ID?

小智 7

cy.session()您在钩子中使用beforeEach()。在那里设置的任何 cookie 都将在测试中保留。

cy.session()的setup函数负责设置cookie原始值。

安装程序仅调用一次,后续调用 cy.session() 将从缓存中恢复 cookie。

beforeEach(() => {
  cy.session('cookies', () => {
    cy.setCookie('session_id', '189jd09sufh33aaiidhf99d09')
  })
})

it('Test1', () => {
  cy.getCookie('session_id')
    .should('have.property', 'value', '189jd09sufh33aaiidhf99d09')
})

it('Test2', () => {
  cy.getCookie('session_id')
    .should('have.property', 'value', '189jd09sufh33aaiidhf99d09')
})
Run Code Online (Sandbox Code Playgroud)