aaaaaaaaaa
This commit is contained in:
parent
83117e8169
commit
90da50aaf4
177
cypress/e2e/需求计划页面是否可用1.cy.js
Normal file
177
cypress/e2e/需求计划页面是否可用1.cy.js
Normal file
@ -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}`);
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue
Block a user