新增e2e测试脚本,修复部分问题
This commit was merged in pull request #51.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
const http = require('http');
|
||||
|
||||
const BACKEND_HEALTH_URL = 'http://192.168.110.64:8084/actuator/health';
|
||||
const MAX_RETRIES = 5;
|
||||
const RETRY_INTERVAL_MS = 3000;
|
||||
|
||||
function checkBackendHealth() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const url = new URL(BACKEND_HEALTH_URL);
|
||||
const req = http.get(url, (res) => {
|
||||
let data = '';
|
||||
res.on('data', (chunk) => { data += chunk; });
|
||||
res.on('end', () => {
|
||||
if (res.statusCode === 200) {
|
||||
console.log('[global-setup] 后端服务健康检查通过:', data);
|
||||
resolve(true);
|
||||
} else {
|
||||
reject(new Error(`后端服务返回非200状态码: ${res.statusCode}, 响应: ${data}`));
|
||||
}
|
||||
});
|
||||
});
|
||||
req.on('error', (err) => {
|
||||
reject(new Error(`无法连接后端服务 ${BACKEND_HEALTH_URL}: ${err.message}`));
|
||||
});
|
||||
req.setTimeout(5000, () => {
|
||||
req.destroy();
|
||||
reject(new Error(`连接后端服务超时: ${BACKEND_HEALTH_URL}`));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function retryCheck(retries) {
|
||||
for (let i = 0; i < retries; i++) {
|
||||
try {
|
||||
await checkBackendHealth();
|
||||
return;
|
||||
} catch (err) {
|
||||
console.warn(`[global-setup] 第 ${i + 1}/${retries} 次尝试失败: ${err.message}`);
|
||||
if (i < retries - 1) {
|
||||
await new Promise((resolve) => setTimeout(resolve, RETRY_INTERVAL_MS));
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new Error(`后端服务不可用,已重试 ${retries} 次`);
|
||||
}
|
||||
|
||||
module.exports = async () => {
|
||||
console.log('[global-setup] 开始 E2E 测试环境准备...');
|
||||
|
||||
// 检查后端服务可用性
|
||||
try {
|
||||
await retryCheck(MAX_RETRIES);
|
||||
console.log('[global-setup] 后端服务可用');
|
||||
} catch (err) {
|
||||
console.error('[global-setup] 后端服务不可用,测试可能失败:', err.message);
|
||||
// 不阻塞测试,但记录警告
|
||||
}
|
||||
|
||||
console.log('[global-setup] E2E 测试环境准备完成');
|
||||
};
|
||||
Reference in New Issue
Block a user