401 - 赛普拉斯 io 自动测试未经授权

问题描述 投票:0回答:4

第一次为内部网站编写Cypress(cypress Io框架)自动测试(http://XXXX:8089/)。访问该网站主页需要使用活动目录的特殊权限(获取Windows凭据并检查用户是否属于某个组或具有某个角色)。测试脚本非常简单:

describe('The Home Page', function() {
it('successfully loads', function() {
cy.visit('http://XXXX:8089/')
  })
})

收到 401 - 未经授权的错误消息。尝试用嵌入式 Windows 凭据替换 url,如 http://username:password@xxxx:8089/,得到相同的错误。通过google找不到解决方案。希望有人能帮我解决这个问题。多谢。

automated-tests ui-automation http-status-code-401 cypress
4个回答
3
投票

我遇到了这个问题并通过以下方式解决:

添加 {failOnStatusCode: false} 将忽略状态,因为 Cypress 将停止任何 40X 状态的运行,因此使用 {failOnStatusCode: false} 将告诉 cypress 继续

cy.visit('/', {failOnStatusCode: false});

2
投票

这是我每次测试前登录的方式。

const login = () => {
    cy.visit('http://0.0.0.0:8080/#/login');
    cy.get('#username').type('username');
    cy.get('#password').type('1234password$');
    cy.get('#login-button').click();
}

describe('UI', () => {
  // beforeEach(login);
    beforeEach(() => {
        login();
        Cypress.Cookies.preserveOnce('session_id', 'remember_token');
  });

});


2
投票

我希望这可以帮助任何面临这个问题的人。

cy.visit('http://XXXX:8089/', {
  auth: {
    username: 'admin',
    password: 'admin123',
  }
});

这个帮助我解决了 401 Unauthorized 问题。显然,当您访问网站时面临基本身份验证时,这可以帮助您解决问题。

来源:https://docs.cypress.io/api/commands/visit#Options


0
投票

我在 GitHub 上找到了适合我的问题的解决方案。您可以在这里查看:https://github.com/cypress-io/cypress/issues/21213

© www.soinside.com 2019 - 2024. All rights reserved.