You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress环境下Google登录无需Google Cloud跳过登录页直达首页咨询

Cypress绕过Google登录直接访问站点的实现方案

以下方案均不需要依赖Google Cloud相关服务,可通过手动操作或Cypress内置能力实现,核心逻辑是提前获取并注入站点认可的有效身份凭证,跳过前端登录校验流程。

方案1:手动提取登录态注入

  • 操作步骤:
    1. 手动打开被测站点,完成Google账号登录流程,停留在站点首页
    2. 打开浏览器控制台Application标签页,分别导出当前域名下的所有Cookie、localStorage、sessionStorage中的身份凭证内容
    3. 在Cypress测试用例的前置钩子beforeEach中,提前写入上述身份凭证,再直接访问首页:
    beforeEach(() => {
      // 注入登录态Cookie
      cy.setCookie('你的站点登录Cookie名称', '导出的Cookie值', { domain: '你的被测站点域名' })
      // 注入localStorage存储的登录态
      cy.window().then(win => {
        win.localStorage.setItem('你的登录态存储键名', '导出的对应值')
      })
      // 直接访问站点首页
      cy.visit('/')
    })
    
  • 注意事项:如果登录凭证有过期限制,到期后重新手动导出一次更新配置即可。

方案2:使用Cypress内置cy.session()命令缓存登录态

  • 操作步骤:封装登录逻辑,仅在首次执行时完成一次真实登录操作,后续所有测试用例直接复用缓存的登录态,无需重复走登录流程:
    // 封装全局登录命令
    Cypress.Commands.add('quickLogin', () => {
      cy.session('googleLoginCache', () => {
        cy.visit('/login')
        // 执行一次登录操作,手动完成Google登录校验即可,Cypress会自动捕获完整登录态
        cy.contains('使用Google账号登录').click()
        // 等待登录完成跳转回站点
        cy.url().should('include', '/home')
      })
    })
    
    // 测试用例前置逻辑
    beforeEach(() => {
      cy.quickLogin()
      cy.visit('/')
    })
    
  • 优势:Cypress会自动管理登录态的存储和过期校验,不需要手动导出凭证,登录态失效时仅需重新运行一次登录流程即可。

方案3:通过后端测试接口获取身份凭证(需后端支持)

  • 操作步骤:如果后端提供测试环境的免密登录接口,可直接在前置钩子中调用接口获取有效身份凭证,写入浏览器后直接访问首页,完全不需要走前端登录流程:
    beforeEach(() => {
      // 调用后端测试登录接口获取凭证
      cy.request('POST', '你的后端测试登录接口地址', {
        user_id: '测试账号ID',
        password: '测试环境专用密码'
      }).then(res => {
        const { auth_token } = res.body
        // 写入凭证
        cy.setCookie('auth_token', auth_token)
      })
      cy.visit('/')
    })
    

内容的提问来源于stack exchange,提问作者Abbos Jurayev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:15:06