Cypress SSO重定向后如何传递基本身份验证?

Cypress SSO重定向后如何传递基本身份验证?,cypress,Cypress,我是Cypress和JS的新手。如果未登录,我正在测试的应用程序将重定向到存根IDP页面。该应用程序还支持基本身份验证。我在考试中所做的就是 cy.visit(“https://username:password@app_url.com”) 这会将我重定向到存根IDP页面,在该页面中,我按 cy.contains('button','login')。单击()。这将重定向回应用程序主页 然而,重定向后,它会提示我再次填写基本身份验证。是否有方法传递重定向后记住的基本身份验证头 存根IDP用于基于S

我是Cypress和JS的新手。如果未登录,我正在测试的应用程序将重定向到存根IDP页面。该应用程序还支持基本身份验证。我在考试中所做的就是

cy.visit(“https://username:password@app_url.com”)

这会将我重定向到存根IDP页面,在该页面中,我按

cy.contains('button','login')。单击()。这将重定向回应用程序主页

然而,重定向后,它会提示我再次填写基本身份验证。是否有方法传递重定向后记住的基本身份验证头


存根IDP用于基于SAML的SSO,这项工作太多,或者说我缺乏创建服务器请求以获取身份验证令牌的知识。现在正在寻找一个简单的解决方法。

我也遇到了同样的问题,我只是用
cy.intercept()解决了它。

您必须在新的重定向URL上使用
cy.intercept
,并将基本授权标头添加到请求中

  • 生成基本身份验证标头,您可以在此处生成:

  • 找到目标URL,您可以在应用程序主页上找到它

    • 可能有几个重定向,当在开放模式下运行测试时,您可以找到最后一个带有基本身份验证的重定向,取消弹出窗口后,您将在运行程序中看到这一点

    • “新url”就是您想要的
  • 在测试中,在单击按钮之前添加
    intercept()
    命令。
    将授权头添加到传出请求,该请求在重定向测试时触发
  • cy.intercept(``,(req)=>{
    请求头['Authorization']=`;
    });
    
    在这里,您可以阅读有关向传出请求和拦截功能添加标题的更多信息: