funel data
This commit is contained in:
110
backend/scripts/test-funnel-with-mock-data.js
Normal file
110
backend/scripts/test-funnel-with-mock-data.js
Normal file
@@ -0,0 +1,110 @@
|
||||
// 测试KOL合作转换漏斗API的脚本,使用模拟的项目ID
|
||||
const http = require('http');
|
||||
|
||||
// 模拟的项目ID列表
|
||||
const MOCK_PROJECT_IDS = [
|
||||
'1', // 简单数字ID
|
||||
'test-project-id', // 测试项目ID
|
||||
'550e8400-e29b-41d4-a716-446655440000', // UUID格式
|
||||
];
|
||||
|
||||
// 简单的HTTP请求函数
|
||||
function httpRequest(url, options = {}) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const req = http.request(url, options, (res) => {
|
||||
let data = '';
|
||||
|
||||
res.on('data', (chunk) => {
|
||||
data += chunk;
|
||||
});
|
||||
|
||||
res.on('end', () => {
|
||||
try {
|
||||
const jsonData = JSON.parse(data);
|
||||
resolve({ statusCode: res.statusCode, data: jsonData });
|
||||
} catch (error) {
|
||||
resolve({ statusCode: res.statusCode, data });
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
req.on('error', (error) => {
|
||||
reject(error);
|
||||
});
|
||||
|
||||
if (options.body) {
|
||||
req.write(JSON.stringify(options.body));
|
||||
}
|
||||
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
// 测试KOL合作转换漏斗API
|
||||
async function testConversionFunnelAPI(projectId) {
|
||||
console.log(`测试KOL合作转换漏斗API,项目ID: ${projectId}...`);
|
||||
|
||||
try {
|
||||
const url = `http://localhost:4000/api/analytics/project/${projectId}/conversion-funnel`;
|
||||
console.log(`请求URL: ${url}`);
|
||||
|
||||
const response = await httpRequest(url);
|
||||
|
||||
console.log(`状态码: ${response.statusCode}`);
|
||||
console.log('API响应:');
|
||||
console.log(JSON.stringify(response.data, null, 2));
|
||||
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('测试API失败:', error.message);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查后端服务器是否正在运行
|
||||
async function checkServerRunning() {
|
||||
try {
|
||||
const response = await httpRequest('http://localhost:4000/health', { method: 'GET' });
|
||||
return response.statusCode === 200;
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 主函数
|
||||
async function main() {
|
||||
try {
|
||||
// 检查服务器是否运行
|
||||
const isServerRunning = await checkServerRunning();
|
||||
|
||||
if (!isServerRunning) {
|
||||
console.log('后端服务器未运行,请先启动服务器');
|
||||
console.log('运行命令: cd /Users/liam/code/promote/backend && npm run dev');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log('后端服务器正在运行,开始测试漏斗接口...\n');
|
||||
|
||||
// 测试所有模拟的项目ID
|
||||
for (const projectId of MOCK_PROJECT_IDS) {
|
||||
console.log(`\n===== 测试项目ID: ${projectId} =====\n`);
|
||||
await testConversionFunnelAPI(projectId);
|
||||
}
|
||||
|
||||
console.log('\n测试完成!');
|
||||
console.log('\n提示: 如果所有测试都返回404错误,说明服务器无法找到项目。');
|
||||
console.log('这可能是因为:');
|
||||
console.log('1. 数据库中没有这些项目ID');
|
||||
console.log('2. 无法连接到数据库');
|
||||
console.log('3. 漏斗接口没有实现模拟数据功能');
|
||||
console.log('\n建议:');
|
||||
console.log('1. 在前端代码中使用硬编码的项目ID: "1"');
|
||||
console.log('2. 修改漏斗接口,在找不到项目时返回模拟数据');
|
||||
} catch (error) {
|
||||
console.error('测试过程中出错:', error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// 运行主函数
|
||||
main();
|
||||
Reference in New Issue
Block a user