微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JSESSIONID cookie 未使用 Cypress 保留

如何解决JSESSIONID cookie 未使用 Cypress 保留

我们目前正在使用 cy.request() 方法登录到我们的应用程序,这里设置了 JSESSIONID cookie。之后,我们也使用 cy.request() 执行各种其他请求,但它们都不起作用,因为 JSESSIONID cookie 似乎未在标头中设置。之前,我们通过在 support 文件夹的 index.js 文件中使用 Cypress.Cookies.preserveOnce('JSESSIONID') 来处理这个问题。我已经使用了各种 cookie 选项,例如在测试中移动 preserveOnce、使用白名单等,但它们都没有奏效。 我还使用 UI 自动登录,但在登录后,会话立即过期。

有没有办法控制这个cookie?我们不明白为什么它突然停止工作(尽管最近修改了端点)。目前我们有 Cypress 4.7.0 版,我也尝试过 7.0.0 版。

有没有人遇到过这样的问题?

解决方法

你能不能尝试用 beforeEach 钩子把它放在测试文件中?

例如:

beforeEach(() => {
        Cypress.Cookies.preserveOnce('<id>')
    })
,

您是否尝试在规范本身中传递 cookie/s?

在您的描述中,请添加此代码以在整个规范中保留 cookie。

Cypress.Cookies.defaults({
    preserve: 'JSESSIONID'
})

如果需要多个 cookie,它们可以放在一个数组中:

Cypress.Cookies.defaults({
    preserve: ['JSESSIONID','Cookie2']
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。