如何在赛普拉斯中检索 API 调用的令牌

How to retrieve Token for API calls in cypress

由于缺乏 JS 知识,我确实面临以下问题。 我使用 cypress 和外部 API 端点进行自动化测试,我需要使用每 3600 秒过期一次的动态令牌。 我做了一些简短的研究,发现要访问 JWT 令牌,我需要第一次 SSO 登录(我的应用程序有)。然后使用下面的脚本。 但是我不知道之后该怎么办。

 it('the value of JWT Token should exist in localStorage', () => {
        cy.getLocalStorage('JWT_DATA').then(lsData => {
            cy.log('the token', lsData); // I get JWT Token in here
        });
    });

此脚本的结果仅打印令牌。 但我需要以某种方式存储它,然后能够为每个不同的 API 端点调用重用它。

您可以为此使用 Cypress.env。然后,您可以在整个测试过程中的任何地方使用令牌。

it('the value of JWT Token should exist in localStorage', () => {
  cy.getLocalStorage('JWT_DATA').then((lsData) => {
    cy.log('the token', lsData) // I get JWT Token in here
    Cypress.env('token', lsData)
  })
})

要使用它,你可以这样做

Cypress.env('token')