Cypress环境下Google登录无需Google Cloud跳过登录页直达首页咨询
Cypress绕过Google登录直接访问站点的实现方案
以下方案均不需要依赖Google Cloud相关服务,可通过手动操作或Cypress内置能力实现,核心逻辑是提前获取并注入站点认可的有效身份凭证,跳过前端登录校验流程。
方案1:手动提取登录态注入
- 操作步骤:
- 手动打开被测站点,完成Google账号登录流程,停留在站点首页
- 打开浏览器控制台Application标签页,分别导出当前域名下的所有Cookie、
localStorage、sessionStorage中的身份凭证内容 - 在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
相关产品推荐
相关产品推荐

