我想保存/持久化/保存由cy.request()设置的cookie或localStorage令牌,这样我就不必使用自定义命令登录每个测试.这应该适用于存储在客户端localStorage中的jwt(json web tokens)之类的令牌. 来自赛普
对于持久性cookie:默认情况下,赛普拉斯会在每次测试之前自动清除所有cookie,以防止状态累积.
您可以使用Cypress.Cookies api将特定cookie列入白名单,以便在测试中保留:
// now any cookie with the name 'session_id' will
// not be cleared before each test runs
Cypress.Cookies.defaults({
whitelist: "session_id"
})
对于持久化localStorage:它不是内置于ATM中,但您现在可以手动实现它,因为清除本地存储的方法公开为Cypress.LocalStorage.clear.
您可以备份此方法并根据发送的密钥覆盖它.
const clear = Cypress.LocalStorage.clear
Cypress.LocalStorage.clear = function (keys, ls, rs) {
// do something with the keys here
if (keys) {
return clear.apply(this, arguments)
}
}
