优化分批执行点击菜单
This commit is contained in:
parent
40863e3eca
commit
970d194ab3
21
.env.dev
21
.env.dev
@ -1,24 +1,33 @@
|
|||||||
# 基础配置
|
# 基础配置
|
||||||
BASE_URL=https://ibp-dev.longi.com
|
BASE_URL=https://ibp-dev.longi.com
|
||||||
|
|
||||||
|
# 登录配置
|
||||||
|
IBP_USERNAME=admin
|
||||||
|
IBP_PASSWORD=123456
|
||||||
|
|
||||||
# 测试配置
|
# 测试配置
|
||||||
TEST_DATA_DIR=test-data
|
TEST_DATA_DIR=test-data
|
||||||
TEST_BATCH_SIZE=5
|
TEST_BATCH_SIZE=5
|
||||||
TEST_RETRY_COUNT=3
|
TEST_RETRY_COUNT=3
|
||||||
TEST_BATCH_INTERVAL=1000
|
TEST_BATCH_INTERVAL=2000
|
||||||
TEST_MAX_RETRY_DELAY=5000
|
TEST_MAX_RETRY_DELAY=10000
|
||||||
|
|
||||||
# 超时配置
|
# 超时配置
|
||||||
MENU_TIME_OUT=30000
|
MENU_TIME_OUT=60000
|
||||||
EXPECT_TIMEOUT=3600000
|
EXPECT_TIMEOUT=3600000
|
||||||
|
|
||||||
# 浏览器配置
|
# 浏览器配置
|
||||||
BROWSER_HEADLESS=false
|
BROWSER_HEADLESS=false
|
||||||
BROWSER_SLOW_MO=50
|
BROWSER_SLOW_MO=100
|
||||||
BROWSER_TIMEOUT=30000
|
BROWSER_TIMEOUT=120000
|
||||||
VIEWPORT_WIDTH=1920
|
VIEWPORT_WIDTH=1920
|
||||||
VIEWPORT_HEIGHT=1080
|
VIEWPORT_HEIGHT=1080
|
||||||
|
|
||||||
# 数据目录配置
|
# 数据目录配置
|
||||||
MENU_DATA_FILE_PATH=test-data/menu-data.json
|
MENU_DATA_FILE_PATH=test-data/menu-data.json
|
||||||
TEST_PROGRESS_FILE_PATH=test-data/test-progress.json
|
TEST_PROGRESS_FILE_PATH=test-data/test-progress.json
|
||||||
|
|
||||||
|
# 页面加载配置
|
||||||
|
PAGE_LOAD_MAX_RETRIES=5
|
||||||
|
PAGE_LOAD_RETRY_INTERVAL=3000
|
||||||
|
PAGE_LOAD_STABILITY_DELAY=2000
|
||||||
33
.env.uat
33
.env.uat
@ -1,2 +1,31 @@
|
|||||||
# 基础URL
|
# 基础配置
|
||||||
BASE_URL=https://ibp-uat.longi.com
|
BASE_URL=https://ibp-test.longi.com/main/#/login?debug=ly
|
||||||
|
USERNAME=zidonghuatest
|
||||||
|
PASSWORD=Lianyu_123
|
||||||
|
|
||||||
|
# 测试配置
|
||||||
|
TEST_DATA_DIR=test-data
|
||||||
|
TEST_BATCH_SIZE=5
|
||||||
|
TEST_RETRY_COUNT=3
|
||||||
|
TEST_BATCH_INTERVAL=1000
|
||||||
|
TEST_MAX_RETRY_DELAY=5000
|
||||||
|
|
||||||
|
# 超时配置
|
||||||
|
MENU_TIME_OUT=30000
|
||||||
|
EXPECT_TIMEOUT=3600000
|
||||||
|
|
||||||
|
# 浏览器配置
|
||||||
|
BROWSER_HEADLESS=false
|
||||||
|
BROWSER_SLOW_MO=50
|
||||||
|
BROWSER_TIMEOUT=60000
|
||||||
|
VIEWPORT_WIDTH=1920
|
||||||
|
VIEWPORT_HEIGHT=1080
|
||||||
|
|
||||||
|
# 数据目录配置
|
||||||
|
MENU_DATA_FILE_PATH=test-data/menu-data.json
|
||||||
|
TEST_PROGRESS_FILE_PATH=test-data/test-progress.json
|
||||||
|
|
||||||
|
# 页面加载配置
|
||||||
|
PAGE_LOAD_MAX_RETRIES=5
|
||||||
|
PAGE_LOAD_RETRY_INTERVAL=2000
|
||||||
|
PAGE_LOAD_STABILITY_DELAY=1000
|
||||||
@ -1,4 +1,8 @@
|
|||||||
const BasePage = require('./BasePage');
|
const BasePage = require('./BasePage');
|
||||||
|
const dotenv = require('dotenv');
|
||||||
|
|
||||||
|
// 确保环境变量已加载
|
||||||
|
dotenv.config({ path: '.env.dev' });
|
||||||
|
|
||||||
class LongiLoginPage extends BasePage {
|
class LongiLoginPage extends BasePage {
|
||||||
/**
|
/**
|
||||||
@ -125,17 +129,22 @@ class LongiLoginPage extends BasePage {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 执行登录操作
|
* 执行登录操作
|
||||||
* @param {string} username 用户名
|
* @param {string} [username] - 用户名,默认使用配置的用户名
|
||||||
* @param {string} password 密码
|
* @param {string} [password] - 密码,默认使用配置的密码
|
||||||
* @param {string} captcha 验证码
|
|
||||||
* @returns {Promise<boolean>} 登录是否成功
|
* @returns {Promise<boolean>} 登录是否成功
|
||||||
*/
|
*/
|
||||||
async login(username, password, captcha) {
|
async login() {
|
||||||
try {
|
try {
|
||||||
await this.enterUsername(username);
|
// 清空用户名输入框
|
||||||
await this.enterPassword(password);
|
await this.page.locator(this.selectors.usernameInput).fill('');
|
||||||
await this.enterCaptcha(captcha);
|
// 清空密码输入框
|
||||||
|
await this.page.locator(this.selectors.passwordInput).fill('');
|
||||||
|
|
||||||
|
// 输入用户名和密码
|
||||||
|
await this.enterUsername(process.env.IBP_USERNAME);
|
||||||
|
await this.enterPassword(process.env.IBP_PASSWORD);
|
||||||
|
|
||||||
|
// 点击登录按钮并等待登录完成
|
||||||
if (await this.clickLoginButton()) {
|
if (await this.clickLoginButton()) {
|
||||||
return await this.isLoginSuccessful();
|
return await this.isLoginSuccessful();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -59,8 +59,7 @@ class LongiTestService {
|
|||||||
async performLogin(page) {
|
async performLogin(page) {
|
||||||
const loginPage = new LongiLoginPage(page);
|
const loginPage = new LongiLoginPage(page);
|
||||||
await loginPage.navigateToLoginPage();
|
await loginPage.navigateToLoginPage();
|
||||||
const loginSuccess = await loginPage.clickLoginButton();
|
const loginSuccess = await loginPage.login()
|
||||||
|
|
||||||
if (!loginSuccess) {
|
if (!loginSuccess) {
|
||||||
throw new Error('登录失败');
|
throw new Error('登录失败');
|
||||||
}
|
}
|
||||||
@ -150,23 +149,13 @@ class LongiTestService {
|
|||||||
try {
|
try {
|
||||||
browser = await chromium.launch();
|
browser = await chromium.launch();
|
||||||
page = await browser.newPage();
|
page = await browser.newPage();
|
||||||
|
|
||||||
// 登录
|
// 登录
|
||||||
const loginPage = new LongiLoginPage(page);
|
await this.performLogin(page);
|
||||||
await loginPage.navigateToLoginPage();
|
|
||||||
const loginSuccess = await loginPage.clickLoginButton();
|
|
||||||
|
|
||||||
if (!loginSuccess) {
|
|
||||||
throw new Error('登录失败,无法获取菜单数据');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取菜单数据
|
// 获取菜单数据
|
||||||
const mainPage = new LongiMainPage(page);
|
const mainPage = new LongiMainPage(page);
|
||||||
const menuItems = await mainPage.getMenuItems();
|
const menuItems = await mainPage.getMenuItems();
|
||||||
|
|
||||||
// 保存数据
|
// 保存数据
|
||||||
await this.saveMenuData(menuItems);
|
this.saveMenuData(menuItems);
|
||||||
|
|
||||||
return menuItems;
|
return menuItems;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`获取并保存菜单数据时出错: ${error}`);
|
console.error(`获取并保存菜单数据时出错: ${error}`);
|
||||||
|
|||||||
@ -1,7 +1 @@
|
|||||||
[
|
[]
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5
|
|
||||||
]
|
|
||||||
Loading…
Reference in New Issue
Block a user