Files
GoProxy/test/README.md
isboyjc f55209d8d3 feat: init
2026-03-29 03:31:59 +08:00

122 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GoProxy 测试脚本
本目录包含用于测试 GoProxy 代理服务的脚本。所有脚本都采用**持续运行模式**(类似 `ping` 命令),按 `Ctrl+C` 停止并显示统计。
## 📝 脚本列表
| 脚本 | 语言 | 依赖 | 运行模式 | 推荐度 |
|------|------|------|----------|--------|
| `test_proxy.sh` | Bash | curl + Python3 | 持续运行 | ⭐⭐⭐ |
| `test_proxy.go` | Go | `golang.org/x/net/proxy` | 持续运行 | ⭐⭐ |
| `test_proxy.py` | Python | `requests`, `pysocks` | 持续运行 | ⭐⭐ |
## 🚀 快速使用
### Bash 脚本(推荐)
```bash
# 从项目根目录运行(持续测试 HTTP
./test/test_proxy.sh
# 测试 HTTP 协议
./test/test_proxy.sh http
# 测试 SOCKS5 协议
./test/test_proxy.sh socks5
# 按 Ctrl+C 停止并查看统计
```
### Go 脚本
```bash
# 安装依赖
go get golang.org/x/net/proxy
# 运行测试
go run test/test_proxy.go
# 或编译后运行
cd test
go build -o test_proxy test_proxy.go
./test_proxy
```
### Python 脚本
```bash
# 安装依赖
pip install requests pysocks
# 运行测试
python test/test_proxy.py
```
## 📊 测试内容
所有脚本都会:
1. 通过指定端口代理发送请求(默认 `127.0.0.1:7777`
2. 访问 `http://ip-api.com/json` 获取出口 IP 和国家信息
3. **持续发送请求**,间隔 1 秒(类似 `ping` 命令)
4. 实时显示国旗 emoji、出口 IP 和延迟
5.`Ctrl+C` 停止并显示统计摘要
## 📖 详细文档
完整的测试指南、故障排查、高级用法,请查看:
👉 [TEST_GUIDE.md](./TEST_GUIDE.md)
## 🔀 测试不同端口策略
```bash
# 对比两个端口的行为差异:
# 随机轮换模式 - IP 高度分散
./test/test_proxy.sh 7777
# 最低延迟模式 - 固定使用最快代理
./test/test_proxy.sh 7776
```
**观察要点**
- **7777 端口**:每次请求的出口 IP 应该不同(证明在轮换)
- **7776 端口**:连续多次请求的出口 IP 基本相同(证明固定使用最优代理)
## 🔍 预期输出
```
PROXY 127.0.0.1:7777 (http://ip-api.com/json/?fields=countryCode,query): continuous mode
proxy from 🇺🇸 203.0.113.45: seq=1 time=1234ms
proxy from 🇩🇪 198.51.100.78: seq=2 time=987ms
proxy from 🇬🇧 192.0.2.123: seq=3 time=1567ms
proxy #4: request failed (timeout)
proxy from 🇯🇵 198.51.100.12: seq=5 time=890ms
proxy from 🇫🇷 192.0.2.234: seq=6 time=1456ms
...
(持续运行,按 Ctrl+C 停止)
^C
---
50 requests transmitted, 47 received, 3 failed, 6.0% packet loss
```
**输出风格**
- 简洁清晰,类似 `ping` 命令
- 一行一个结果
- 显示国旗 emoji、出口 IP、序号、延迟
- 统计信息简洁明了
**观察要点**
- 每次请求的出口 IP 应该不同(证明代理轮换)
- 延迟应该在合理范围(< 2000ms
- 丢包率应该 < 10%
- 可以长时间运行观察稳定性
## 📝 注意事项
1. 确保 GoProxy 服务已启动:`./goproxy`
2. 首次启动需等待代理池就绪(约 30-60 秒)
3. 可配合 WebUI (http://localhost:7778) 查看实时状态