优化分批执行点击菜单
This commit is contained in:
parent
eb8d523d91
commit
6aa60dd29d
14
.env.dev
14
.env.dev
@ -1,5 +1,15 @@
|
||||
# 基础URL
|
||||
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');
|
||||
require('dotenv-flow').config({
|
||||
node_env: process.env.NODE_ENV || 'dev',
|
||||
const dotenv = require('dotenv-flow');
|
||||
|
||||
// 获取当前环境
|
||||
const NODE_ENV = process.env.NODE_ENV || 'dev';
|
||||
|
||||
// 加载环境变量
|
||||
const result = dotenv.config({
|
||||
node_env: NODE_ENV,
|
||||
path: path.resolve(process.cwd()),
|
||||
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('Loaded BASE_URL:', process.env.BASE_URL);
|
||||
console.log('Environment files path:', path.resolve(process.cwd()));
|
||||
@ -4,16 +4,11 @@ const LongiLoginPage = require('../tests/pages/LongiLoginPage');
|
||||
const menuDataService = require('../services/MenuDataService');
|
||||
|
||||
class TestController {
|
||||
/**
|
||||
* @param {Object} options - 配置选项
|
||||
* @param {number} [options.batchSize=5] - 每批次测试的菜单数量
|
||||
* @param {number} [options.retryCount=3] - 失败重试次数
|
||||
* @param {number} [options.batchInterval=2000] - 批次间隔时间(ms)
|
||||
*/
|
||||
constructor(options = {}) {
|
||||
this.batchSize = options.batchSize || 5;
|
||||
this.retryCount = options.retryCount || 3;
|
||||
this.batchInterval = options.batchInterval || 2000;
|
||||
constructor() {
|
||||
// 从环境变量获取配置
|
||||
this.batchSize = parseInt(process.env.TEST_BATCH_SIZE || '5', 10);
|
||||
this.retryCount = parseInt(process.env.TEST_RETRY_COUNT || '3', 10);
|
||||
this.batchInterval = parseInt(process.env.TEST_BATCH_INTERVAL || '2000', 10);
|
||||
|
||||
// 浏览器配置
|
||||
this.browserConfig = {
|
||||
@ -21,6 +16,12 @@ class TestController {
|
||||
args: ['--start-maximized'], // 最大化窗口
|
||||
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
|
||||
});
|
||||
|
||||
const controller = new TestController({
|
||||
batchSize: 5,
|
||||
retryCount: 3,
|
||||
batchInterval: 2000
|
||||
});
|
||||
const controller = new TestController();
|
||||
|
||||
// 处理命令行参数
|
||||
const args = process.argv.slice(2);
|
||||
|
||||
@ -3,9 +3,10 @@ const path = require('path');
|
||||
|
||||
class MenuDataService {
|
||||
constructor() {
|
||||
this.dataDir = path.join(process.cwd(), 'test-data');
|
||||
this.menuDataPath = path.join(this.dataDir, 'menu-data.json');
|
||||
this.progressPath = path.join(this.dataDir, 'test-progress.json');
|
||||
// 从环境变量获取路径配置
|
||||
this.dataDir = process.env.TEST_DATA_DIR || path.join(process.cwd(), 'test-data');
|
||||
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)) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user