如何将数据保存在变量中并在 Cypress 的其他块中重用它?

Yar*_*lav 0 javascript jquery cypress cypress-session

如果可以在 Cypress.io 中将数据保存在变量中并在其他块中重用它例如,我有一个特殊的设备名称。我想接收此数据,然后单击它后,检查新窗口中的标题是否包含设备的特殊名称

我知道它如何使用静态名称,但我尝试创建动态自动测试,我想知道是否可能

小智 5

我有一种感觉,这个问题已经有了答案,但找不到普遍适用的答案。

也许一个好的方法是使用cypress-data-session。有很多文档,但这里是一个示例用法:

beforeEach(() => {
  // let's say you want to set up the value "A"
  cy.dataSession(
    'A', // data name
    () => 'a', // data creation commands
    (x) => x === 'a', // data validation function
  )
})

it('has object A', () => {
  expect(Cypress.getDataSession('A')).to.equal('a')
})
Run Code Online (Sandbox Code Playgroud)

我看到的另一个选择是使用 Cypress 环境作为数据存储。

// setting
Cypress.env('my-value', variable)

// retrieving
const myValue = Cypress.env('my-value')
Run Code Online (Sandbox Code Playgroud)

IMO 的缺点是 - 它 Cypress.env()在任何地方使用并不优雅,并且如果赛普拉斯浏览器重置,它可能会丢失值。