首页 > 解决方案 > 赛普拉斯 cy.request 401 未经授权

问题描述

我进行了需要授权的登录测试和电子邮件更改,以更改我需要来自登录过程的数据的电子邮件。通过 UI 登录(输入输入数据 + 单击按钮),然后转到输入并更改电子邮件。我按下按钮,弹出 401 错误,是否可以保存有关会话的早期数据以避免 401?

解决方案:

要在 cypress 会话之间保存数据,请在 beforeEach 挂钩中使用 cy.preserveAllCookiesOnce()。

也许您还需要在 beforeEach 钩子中提供 API_KEY 。您可以通过 cy.intercept 提供。下面是一些例子:

例如

   cy.intercept(/e.g: regex to match url /, req => {
      req.headers['your header'] = true;
    });
to intercept all request:
  cy.intercept(/**, req => {
      req.headers['your header'] = true;
    });
 cy.request({
      method: 'GET',
      url: '',
      headers: { Authorization: `apikey-v1 ${apiKey}` }
    }).then(async response => {
      cy.task('your task').then(task => {
        cy.get('input[placeholder="Enter code..."]').type(task);
      });
    });

按钮触发的修改请求:

cy.contains('Confirm')
      .click()
      .then(() => {
        cy.url().then(urlValue =>
          cy.visit({ url: urlValue, qs: { add params to match condition for regex } })
        );
      })

标签: testingcypresshttp-status-code-401

解决方案


推荐阅读