package main import ( "fmt" "log" "time" "clash-speed-test/internal/config" "clash-speed-test/internal/core" "clash-speed-test/internal/database" ) func main() { fmt.Println("=== Clash 测速工具测试 ===") // 加载配置 cfg, err := config.Load() if err != nil { log.Fatalf("加载配置失败: %v", err) } // 初始化测速器 speedTester := core.NewSpeedTester(cfg) // 创建测试节点 testNodes := []database.Node{ { Name: "测试HTTP代理", Type: "http", Server: "127.0.0.1", Port: 7890, }, { Name: "测试SOCKS5代理", Type: "socks5", Server: "127.0.0.1", Port: 7891, }, } fmt.Printf("开始测试 %d 个节点...\n", len(testNodes)) // 测试节点 results := speedTester.TestNodes(testNodes) // 显示结果 fmt.Println("\n=== 测试结果 ===") for i, result := range results { fmt.Printf("\n节点 %d: %s\n", i+1, testNodes[i].Name) fmt.Printf(" 类型: %s\n", testNodes[i].Type) fmt.Printf(" 地址: %s:%d\n", testNodes[i].Server, testNodes[i].Port) if result.IsSuccess { fmt.Printf(" 状态: ✅ 成功\n") if result.Latency != nil { fmt.Printf(" 延迟: %d ms\n", *result.Latency) } if result.DownloadSpeed != nil { fmt.Printf(" 下载速度: %.2f Mbps\n", float64(*result.DownloadSpeed)) } if result.UploadSpeed != nil { fmt.Printf(" 上传速度: %.2f Mbps\n", float64(*result.UploadSpeed)) } if result.IPAddress != "" { fmt.Printf(" IP地址: %s\n", result.IPAddress) } if result.Location != "" { fmt.Printf(" 位置: %s\n", result.Location) } } else { fmt.Printf(" 状态: ❌ 失败\n") if result.ErrorMessage != "" { fmt.Printf(" 错误: %s\n", result.ErrorMessage) } } if result.TestDuration != nil { fmt.Printf(" 测试耗时: %d ms\n", *result.TestDuration) } } fmt.Println("\n=== 测试完成 ===") fmt.Println("提示: 如果测试失败,请确保:") fmt.Println("1. Clash客户端正在运行") fmt.Println("2. 本地代理端口 (7890/7891) 可访问") fmt.Println("3. 网络连接正常") }