优化分批执行点击菜单
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
|
||||
|
||||
# 登录配置
|
||||
IBP_USERNAME=admin
|
||||
IBP_PASSWORD=123456
|
||||
|
||||
# 测试配置
|
||||
TEST_DATA_DIR=test-data
|
||||
TEST_BATCH_SIZE=5
|
||||
TEST_RETRY_COUNT=3
|
||||
TEST_BATCH_INTERVAL=1000
|
||||
TEST_MAX_RETRY_DELAY=5000
|
||||
TEST_BATCH_INTERVAL=2000
|
||||
TEST_MAX_RETRY_DELAY=10000
|
||||
|
||||
# 超时配置
|
||||
MENU_TIME_OUT=30000
|
||||
MENU_TIME_OUT=60000
|
||||
EXPECT_TIMEOUT=3600000
|
||||
|
||||
# 浏览器配置
|
||||
BROWSER_HEADLESS=false
|
||||
BROWSER_SLOW_MO=50
|
||||
BROWSER_TIMEOUT=30000
|
||||
BROWSER_SLOW_MO=100
|
||||
BROWSER_TIMEOUT=120000
|
||||
VIEWPORT_WIDTH=1920
|
||||
VIEWPORT_HEIGHT=1080
|
||||
|
||||
# 数据目录配置
|
||||
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 dotenv = require('dotenv');
|
||||
|
||||
// 确保环境变量已加载
|
||||
dotenv.config({ path: '.env.dev' });
|
||||
|
||||
class LongiLoginPage extends BasePage {
|
||||
/**
|
||||
@ -125,17 +129,22 @@ class LongiLoginPage extends BasePage {
|
||||
|
||||
/**
|
||||
* 执行登录操作
|
||||
* @param {string} username 用户名
|
||||
* @param {string} password 密码
|
||||
* @param {string} captcha 验证码
|
||||
* @param {string} [username] - 用户名,默认使用配置的用户名
|
||||
* @param {string} [password] - 密码,默认使用配置的密码
|
||||
* @returns {Promise<boolean>} 登录是否成功
|
||||
*/
|
||||
async login(username, password, captcha) {
|
||||
async login() {
|
||||
try {
|
||||
await this.enterUsername(username);
|
||||
await this.enterPassword(password);
|
||||
await this.enterCaptcha(captcha);
|
||||
|
||||
// 清空用户名输入框
|
||||
await this.page.locator(this.selectors.usernameInput).fill('');
|
||||
// 清空密码输入框
|
||||
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()) {
|
||||
return await this.isLoginSuccessful();
|
||||
}
|
||||
|
||||
@ -59,8 +59,7 @@ class LongiTestService {
|
||||
async performLogin(page) {
|
||||
const loginPage = new LongiLoginPage(page);
|
||||
await loginPage.navigateToLoginPage();
|
||||
const loginSuccess = await loginPage.clickLoginButton();
|
||||
|
||||
const loginSuccess = await loginPage.login()
|
||||
if (!loginSuccess) {
|
||||
throw new Error('登录失败');
|
||||
}
|
||||
@ -150,23 +149,13 @@ class LongiTestService {
|
||||
try {
|
||||
browser = await chromium.launch();
|
||||
page = await browser.newPage();
|
||||
|
||||
// 登录
|
||||
const loginPage = new LongiLoginPage(page);
|
||||
await loginPage.navigateToLoginPage();
|
||||
const loginSuccess = await loginPage.clickLoginButton();
|
||||
|
||||
if (!loginSuccess) {
|
||||
throw new Error('登录失败,无法获取菜单数据');
|
||||
}
|
||||
|
||||
await this.performLogin(page);
|
||||
// 获取菜单数据
|
||||
const mainPage = new LongiMainPage(page);
|
||||
const menuItems = await mainPage.getMenuItems();
|
||||
|
||||
// 保存数据
|
||||
await this.saveMenuData(menuItems);
|
||||
|
||||
this.saveMenuData(menuItems);
|
||||
return menuItems;
|
||||
} catch (error) {
|
||||
console.error(`获取并保存菜单数据时出错: ${error}`);
|
||||
|
||||
@ -1,7 +1 @@
|
||||
[
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5
|
||||
]
|
||||
[]
|
||||
Loading…
Reference in New Issue
Block a user