是否可以在不同的步骤文件中保留与 BDD 相同的会话 ID
Is it possible to retain same session id with BDD in different step files
我想用 Cypress 实现 BDD,并希望在不同的步骤文件中保留相同的会话 ID。
所以对于不同的功能文件我有不同的步骤文件。
我的功能文件看起来像
1.Login-登录应用程序
2.Add员工-登录后添加员工
我想在功能文件的步骤定义中使用相同的登录凭据。
但问题是赛普拉斯清除了不同测试中的所有 cookie。
那么如何实现这个依赖
有一个 Cypress 插件 cypress-localstorage-commands
可以用来保存变量的值,然后可以跨测试使用。
你可以这样使用它:
let SESSION_ID = '';
before(() => {
cy.setLocalStorage('sessionId', '000'); // capture the id for example
cy.saveLocalStorage()
});
beforeEach(() => {
cy.restoreLocalStorage();
cy.getLocalStorage('sessionId').as('id');
SESSION_ID = id;
});
it('test 1', () => {
cy.get(SESSION_ID).should('eq', '000');
});
it('test 2', () => {
cy.log(SESSION_ID);
});
参考:https://www.npmjs.com/package/cypress-localstorage-commands
另一个选项可能是使用夹具文件和命令 cy.writeFile
将 session id 保存在 before
下,然后在您的下捕获它测试 it
我想用 Cypress 实现 BDD,并希望在不同的步骤文件中保留相同的会话 ID。
所以对于不同的功能文件我有不同的步骤文件。
我的功能文件看起来像
1.Login-登录应用程序
2.Add员工-登录后添加员工
我想在功能文件的步骤定义中使用相同的登录凭据。
但问题是赛普拉斯清除了不同测试中的所有 cookie。
那么如何实现这个依赖
有一个 Cypress 插件 cypress-localstorage-commands
可以用来保存变量的值,然后可以跨测试使用。
你可以这样使用它:
let SESSION_ID = '';
before(() => {
cy.setLocalStorage('sessionId', '000'); // capture the id for example
cy.saveLocalStorage()
});
beforeEach(() => {
cy.restoreLocalStorage();
cy.getLocalStorage('sessionId').as('id');
SESSION_ID = id;
});
it('test 1', () => {
cy.get(SESSION_ID).should('eq', '000');
});
it('test 2', () => {
cy.log(SESSION_ID);
});
参考:https://www.npmjs.com/package/cypress-localstorage-commands
另一个选项可能是使用夹具文件和命令 cy.writeFile
将 session id 保存在 before
下,然后在您的下捕获它测试 it