123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- const logger = require('./src/utils/logger');
- const sequelize = require('./src/config/database');
- const TelegramNotifier = require('./src/core/notifier');
- async function testDatabaseConnection() {
- console.log('🔍 测试数据库连接...');
-
- try {
- console.log('正在连接数据库...');
- await sequelize.authenticate();
- console.log('✅ 数据库连接成功');
-
- // 测试查询
- console.log('正在执行测试查询...');
- const result = await sequelize.query('SELECT 1 as test');
- console.log('✅ 数据库查询测试成功:', result[0]);
-
- // 测试模型
- console.log('正在测试数据模型...');
- const { Node, TestResult } = require('./src/models');
-
- // 测试Node模型
- const nodeCount = await Node.count();
- console.log('✅ Node模型测试成功,当前节点数:', nodeCount);
-
- // 测试TestResult模型
- const resultCount = await TestResult.count();
- console.log('✅ TestResult模型测试成功,当前测试结果数:', resultCount);
-
- } catch (error) {
- console.error('❌ 数据库连接失败:', error.message);
- console.error('详细错误信息:', error);
- return false;
- }
-
- return true;
- }
- async function testTelegramNotification() {
- console.log('🔍 测试Telegram通知...');
-
- try {
- const notifier = new TelegramNotifier();
-
- if (!notifier.enabled) {
- console.log('⚠️ Telegram通知已禁用(配置不完整)');
- return false;
- }
-
- // 测试连接
- const testResult = await notifier.testConnection();
- console.log('✅ Telegram连接测试成功:', testResult);
-
- // 发送测试消息
- await notifier.sendSystemNotification(
- '🧪 连接测试',
- '这是一条测试消息,用于验证Telegram通知功能是否正常工作。\n\n发送时间: ' + new Date().toLocaleString('zh-CN'),
- { test: true, timestamp: new Date().toISOString() }
- );
-
- console.log('✅ Telegram通知发送成功');
- return true;
-
- } catch (error) {
- console.error('❌ Telegram通知测试失败:', error.message);
- console.error('详细错误信息:', error);
- return false;
- }
- }
- async function testSpeedTester() {
- console.log('🔍 测试测速功能...');
-
- try {
- const SpeedTester = require('./src/core/speedTester');
- const speedTester = new SpeedTester();
-
- // 测试一个简单的TCP连接
- const testResult = await speedTester.testTcpConnectivity('8.8.8.8', 53, 5000);
- console.log('✅ TCP连通性测试成功:', testResult);
-
- return true;
-
- } catch (error) {
- console.error('❌ 测速功能测试失败:', error.message);
- console.error('详细错误信息:', error);
- return false;
- }
- }
- async function main() {
- console.log('🚀 开始系统连接测试...\n');
-
- const results = {
- database: await testDatabaseConnection(),
- telegram: await testTelegramNotification(),
- speedTester: await testSpeedTester()
- };
-
- console.log('\n📊 测试结果汇总:');
- console.log('数据库连接:', results.database ? '✅ 成功' : '❌ 失败');
- console.log('Telegram通知:', results.telegram ? '✅ 成功' : '❌ 失败');
- console.log('测速功能:', results.speedTester ? '✅ 成功' : '❌ 失败');
-
- const allPassed = Object.values(results).every(result => result);
- console.log('\n🎯 总体结果:', allPassed ? '✅ 所有测试通过' : '❌ 部分测试失败');
-
- if (!allPassed) {
- console.log('\n💡 建议:');
- if (!results.database) {
- console.log('- 检查数据库配置和网络连接');
- }
- if (!results.telegram) {
- console.log('- 检查Telegram Bot Token和Chat ID配置');
- console.log('- 确保网络可以访问Telegram API');
- }
- if (!results.speedTester) {
- console.log('- 检查测速相关依赖包是否正确安装');
- }
- }
-
- process.exit(allPassed ? 0 : 1);
- }
- main().catch(error => {
- console.error('❌ 测试过程中发生错误:', error);
- process.exit(1);
- });
|