当前位置 : 主页 > 网页制作 > html >

在赛普拉斯的测试中保留cookie / localStorage会话

来源:互联网 收集:自由互联 发布时间:2021-06-12
我想保存/持久化/保存由cy.request()设置的cookie或localStorage令牌,这样我就不必使用自定义命令登录每个测试.这应该适用于存储在客户端localStorage中的jwt(json web tokens)之类的令牌. 来自赛普
我想保存/持久化/保存由cy.request()设置的cookie或localStorage令牌,这样我就不必使用自定义命令登录每个测试.这应该适用于存储在客户端localStorage中的jwt(json web tokens)之类的令牌. 来自赛普拉斯 docs

对于持久性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)
  }

}
网友评论