优化分批执行点击菜单
This commit is contained in:
parent
eb8d523d91
commit
6aa60dd29d
14
.env.dev
14
.env.dev
@ -1,5 +1,15 @@
|
|||||||
# 基础URL
|
# 基础URL
|
||||||
BASE_URL=https://ibp-dev.longi.com
|
BASE_URL=https://ibp-dev.longi.com
|
||||||
MENU_DATA_FILE_PATH=data/longi/menu-data.json
|
|
||||||
|
|
||||||
MENU_TIME_OUT=30000
|
# 超时配置
|
||||||
|
MENU_TIME_OUT=30000
|
||||||
|
|
||||||
|
# 数据目录配置
|
||||||
|
TEST_DATA_DIR=test-data
|
||||||
|
MENU_DATA_FILE_PATH=test-data/menu-data.json
|
||||||
|
TEST_PROGRESS_FILE_PATH=test-data/test-progress.json
|
||||||
|
|
||||||
|
# 测试批次配置
|
||||||
|
TEST_BATCH_SIZE=5
|
||||||
|
TEST_RETRY_COUNT=3
|
||||||
|
TEST_BATCH_INTERVAL=2000
|
||||||
@ -1,10 +1,26 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
require('dotenv-flow').config({
|
const dotenv = require('dotenv-flow');
|
||||||
node_env: process.env.NODE_ENV || 'dev',
|
|
||||||
|
// 获取当前环境
|
||||||
|
const NODE_ENV = process.env.NODE_ENV || 'dev';
|
||||||
|
|
||||||
|
// 加载环境变量
|
||||||
|
const result = dotenv.config({
|
||||||
|
node_env: NODE_ENV,
|
||||||
path: path.resolve(process.cwd()),
|
path: path.resolve(process.cwd()),
|
||||||
default_node_env: 'dev'
|
default_node_env: 'dev'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 解析环境变量中的变量引用
|
||||||
|
Object.keys(process.env).forEach(key => {
|
||||||
|
const value = process.env[key];
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
process.env[key] = value.replace(/\${([^}]+)}/g, (_, varName) => {
|
||||||
|
return process.env[varName] || '';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
console.log('Current NODE_ENV:', process.env.NODE_ENV);
|
console.log('Current NODE_ENV:', process.env.NODE_ENV);
|
||||||
// console.log('Loaded BASE_URL:', process.env.BASE_URL);
|
// console.log('Loaded BASE_URL:', process.env.BASE_URL);
|
||||||
console.log('Environment files path:', path.resolve(process.cwd()));
|
console.log('Environment files path:', path.resolve(process.cwd()));
|
||||||
@ -4,16 +4,11 @@ const LongiLoginPage = require('../tests/pages/LongiLoginPage');
|
|||||||
const menuDataService = require('../services/MenuDataService');
|
const menuDataService = require('../services/MenuDataService');
|
||||||
|
|
||||||
class TestController {
|
class TestController {
|
||||||
/**
|
constructor() {
|
||||||
* @param {Object} options - 配置选项
|
// 从环境变量获取配置
|
||||||
* @param {number} [options.batchSize=5] - 每批次测试的菜单数量
|
this.batchSize = parseInt(process.env.TEST_BATCH_SIZE || '5', 10);
|
||||||
* @param {number} [options.retryCount=3] - 失败重试次数
|
this.retryCount = parseInt(process.env.TEST_RETRY_COUNT || '3', 10);
|
||||||
* @param {number} [options.batchInterval=2000] - 批次间隔时间(ms)
|
this.batchInterval = parseInt(process.env.TEST_BATCH_INTERVAL || '2000', 10);
|
||||||
*/
|
|
||||||
constructor(options = {}) {
|
|
||||||
this.batchSize = options.batchSize || 5;
|
|
||||||
this.retryCount = options.retryCount || 3;
|
|
||||||
this.batchInterval = options.batchInterval || 2000;
|
|
||||||
|
|
||||||
// 浏览器配置
|
// 浏览器配置
|
||||||
this.browserConfig = {
|
this.browserConfig = {
|
||||||
@ -21,6 +16,12 @@ class TestController {
|
|||||||
args: ['--start-maximized'], // 最大化窗口
|
args: ['--start-maximized'], // 最大化窗口
|
||||||
slowMo: 50 // 放慢操作速度,便于观察
|
slowMo: 50 // 放慢操作速度,便于观察
|
||||||
};
|
};
|
||||||
|
|
||||||
|
console.log('测试配置:', {
|
||||||
|
batchSize: this.batchSize,
|
||||||
|
retryCount: this.retryCount,
|
||||||
|
batchInterval: this.batchInterval
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -122,11 +122,7 @@ async function main() {
|
|||||||
MENU_DATA_FILE_PATH: process.env.MENU_DATA_FILE_PATH
|
MENU_DATA_FILE_PATH: process.env.MENU_DATA_FILE_PATH
|
||||||
});
|
});
|
||||||
|
|
||||||
const controller = new TestController({
|
const controller = new TestController();
|
||||||
batchSize: 5,
|
|
||||||
retryCount: 3,
|
|
||||||
batchInterval: 2000
|
|
||||||
});
|
|
||||||
|
|
||||||
// 处理命令行参数
|
// 处理命令行参数
|
||||||
const args = process.argv.slice(2);
|
const args = process.argv.slice(2);
|
||||||
|
|||||||
@ -3,9 +3,10 @@ const path = require('path');
|
|||||||
|
|
||||||
class MenuDataService {
|
class MenuDataService {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.dataDir = path.join(process.cwd(), 'test-data');
|
// 从环境变量获取路径配置
|
||||||
this.menuDataPath = path.join(this.dataDir, 'menu-data.json');
|
this.dataDir = process.env.TEST_DATA_DIR || path.join(process.cwd(), 'test-data');
|
||||||
this.progressPath = path.join(this.dataDir, 'test-progress.json');
|
this.menuDataPath = process.env.MENU_DATA_FILE_PATH || path.join(this.dataDir, 'menu-data.json');
|
||||||
|
this.progressPath = process.env.TEST_PROGRESS_FILE_PATH || path.join(this.dataDir, 'test-progress.json');
|
||||||
|
|
||||||
// 确保数据目录存在
|
// 确保数据目录存在
|
||||||
if (!fs.existsSync(this.dataDir)) {
|
if (!fs.existsSync(this.dataDir)) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user