跨测试保存本地存储以避免重新身份验证

Ara*_*adi 1 cypress

我想知道是否可以在测试中保存 localStorage 的状态。主要是因为我想避免每次测试时重新进行身份验证。我意识到我可以创建一个命令,将 API 请求发送到后端,以避免通过身份验证流程,但由于各种原因,这在我的情况下不起作用。

我想问是否可以有这样的工作流程:

  1. 转到登录页面:验证返回响应并将会话保存到本地存储
  2. 以某种方式保留本地存储......
  3. 作为经过身份验证的用户进行其他测试

Jav*_*rea 7

您可以使用cypress-localstorage-commands包在测试之间保留 localStorage,因此您只能登录一次:

在 support/commands.js 中:

import "cypress-localstorage-commands";
Run Code Online (Sandbox Code Playgroud)

在您的测试中:

before(() => {
  // Do your login stuff here
  cy.saveLocalStorage();
});

beforeEach(() => {
  cy.restoreLocalStorage();
});
Run Code Online (Sandbox Code Playgroud)