cucumber - 是否可以在不同的步骤文件中保留与 BDD 相同的会话 ID
问题描述
我想用 Cypress 实现 BDD,并希望在不同的步骤文件中保留相同的会话 ID。
所以我对不同的功能文件有不同的步骤文件。
我的功能文件看起来像
1.Login-登录到应用程序
2.添加员工-登录后添加员工。
我想在功能文件的步骤定义中使用相同的登录凭据。
但问题是 cypress 在不同的测试中清除了所有 cookie。
那么如何实现这种依赖。
解决方案
有一个赛普拉斯插件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
另一种选择可能是使用夹具文件和命令将会话idcy.writeFile
保存在下,然后在测试下捕获它before
it
推荐阅读
- java - 如何在 JAVA 中实现瓦片无缝算法?
- windows - 批量连接视频对
- c# - AcquireTokenByAuthorizationCode 在使用 Azure Active Directory 的 ASP.NET MVC 的单租户应用程序中引发新异常
- knockout.js - Knockout Sortables、Draggables 和 Droppables - 在 droppables 之间移动的问题
- javascript - 格式化 hAxis 到日期 - Google Chart
- azure-data-factory - 是否存在数据工厂需要成为 Azure 订阅所有者的情况?
- postgresql - 将 psql 转储恢复到另一个(新)数据库名称 -d/--dbname 和 -f/--file 不能一起使用
- jquery - 如何通过ajax将JQuery Datatable与列表绑定
- python-3.x - 在服务器上选择第二个 GPU
- typescript - TypeScript - 查找类类型