From 90da50aaf47af723ff8c882565ab6524de0c292a Mon Sep 17 00:00:00 2001 From: dengqichen Date: Mon, 3 Mar 2025 14:04:22 +0800 Subject: [PATCH] aaaaaaaaaa --- cypress/e2e/需求计划页面是否可用1.cy.js | 177 ++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 cypress/e2e/需求计划页面是否可用1.cy.js diff --git a/cypress/e2e/需求计划页面是否可用1.cy.js b/cypress/e2e/需求计划页面是否可用1.cy.js new file mode 100644 index 0000000..c5df876 --- /dev/null +++ b/cypress/e2e/需求计划页面是否可用1.cy.js @@ -0,0 +1,177 @@ +describe('隆基系统页面验证', () => { + // 环境配置 + const ENV_CONFIG = { + DEV: { + url: 'https://ibp-dev.longi.com/main/#/login', + needCredentials: false + }, + UAT: { + url: 'https://ibp-test.longi.com/main/#/login?debug=ly', + needCredentials: true, + username: 'qichenadmin', + password: '123456' + } + }; + + // 登录处理函数 + const handleLogin = (environment) => { + const envConfig = ENV_CONFIG[environment]; + if (!envConfig) { + throw new Error(`未知的环境: ${environment}`); + } + + cy.log(`正在登录 ${environment} 环境: ${envConfig.url}`); + cy.visit(envConfig.url); + + // 忽略未捕获的异常 + Cypress.on('uncaught:exception', (err, runnable) => false); + + cy.get('#app', {timeout: 10000}).should('exist'); + + if (envConfig.needCredentials) { + // 清空输入框 + cy.get('input[name="username"]').clear(); + cy.get('input[name="passWord"]').clear(); + + // 输入账号密码 + cy.get('input[name="username"]').type(envConfig.username); + cy.get('input[name="passWord"]').type(envConfig.password); + } + + // 执行登录 + cy.get('.container-button').click(); + // 等待登录完成 + cy.wait(3000); + }; + + // 清理内存 + const cleanupMemory = () => { + cy.task('clearMemory'); + }; + + // 创建常用元素别名 + const createAliases = () => { + cy.log('创建常用元素别名'); + + // 页面主体 + cy.get('body').as('pageBody'); + + // 侧边栏导航 + cy.get('.ly-side-nav').as('sideNav'); + + // 主菜单 + cy.get('.el-scrollbar__view > .el-menu').as('mainMenu'); + + // 菜单项 + cy.get('.el-menu-item').as('menuItems'); + + // 子菜单标题 + cy.get('.el-sub-menu__title').as('subMenuTitles'); + + // 内容区域 + cy.get('.vab-content').as('contentArea'); + + // 标签页 + cy.get('.vab-tabs').as('tabs'); + + // 加载遮罩 + cy.get('.el-loading-mask').as('loadingMask'); + + // 菜单切换按钮 + cy.get('.vab-content .toggle-icon').as('menuToggle'); + + cy.log('别名创建完成'); + }; + + // 确保菜单展开 + const ensureMenuExpanded = () => { + cy.log('确保菜单处于展开状态'); + + cy.get('@sideNav').then(($el) => { + cy.log(`菜单现在的偏移量是:${$el.css('left')}`); + const leftValue = $el.css('left'); + + if (leftValue !== '0px') { + cy.log('菜单未展开,点击展开'); + cy.get('@menuToggle').click(); + cy.wait(500); // 等待菜单展开动画 + cy.log('已点击展开菜单'); + } else { + cy.log('菜单已经处于展开状态'); + } + }); + }; + + // 获取菜单数据 + const getMenuItems = () => { + cy.log('开始获取菜单结构'); + + return cy.get('@mainMenu').then(($elMenu) => { + const menuItems = []; + + // 获取所有菜单项 + const allMenuItems = $elMenu.find('.el-sub-menu__title, .el-menu-item'); + + // 过滤并整理菜单项 + allMenuItems.each((index, el) => { + const $item = Cypress.$(el); + const menuText = $item.find('.titleSpan').text().trim() || $item.text().trim(); + const isFirstLevel = $item.find('.menuIcon').length > 0; + + // 只添加二级菜单项 + if (!isFirstLevel) { + menuItems.push({ + index, + text: menuText, + element: el, + hasThirdMenu: false // 默认设置为没有三级菜单 + }); + } + }); + + cy.log(`🔍 找到 ${menuItems.length} 个可测试的菜单项`); + // 使用cy.wrap()将同步值转换为Cypress命令 + return cy.wrap(menuItems); + }); + }; + + // 测试入口 + it('验证系统页面是否可用', () => { + // 从环境变量获取环境参数,默认为DEV + const environment = Cypress.env('environment') || 'DEV'; + + // 验证环境参数 + if (!ENV_CONFIG[environment]) { + cy.log(`❌ 无效的环境参数: ${environment}`); + cy.log('有效的环境参数: DEV, UAT'); + throw new Error(`无效的环境参数: ${environment}`); + } + + cy.log(`🚀 开始在 ${environment} 环境测试页面`); + + // 登录系统 + handleLogin(environment); + + // 创建常用元素别名 + createAliases(); + + // 确保菜单展开 + ensureMenuExpanded(); + + // 获取菜单数据 + getMenuItems().then(menuItems => { + cy.log(`获取到 ${menuItems.length} 个菜单项`); + + // 这里可以添加更多的测试逻辑,使用menuItems + menuItems.forEach((item, index) => { + cy.log(`菜单项 ${index + 1}: ${item.text}`); + }); + }); + + // 使用别名测试菜单是否加载成功 + cy.get('@menuItems', { timeout: 10000 }).should('be.visible'); + cy.log('✅ 系统菜单加载成功'); + + cy.log(`🏁 测试完成,环境: ${environment}`); + }); +}); \ No newline at end of file