Add SystemTest Agent and Controller

This commit is contained in:
Codex committed 2026-06-22 10:37:20 +08:00
commit 53f523f187
31 files changed
+9150

No files matched your search

+69
View File
@@ -0,0 +1,69 @@
# SystemTest-Agent
P0-02 被控端最小可用实现,首次启动向主控注册并保存 token,后续启动使用本地 token 发送 Bearer 心跳并轮询任务。
## 一键启动
PowerShell:
```powershell
.\start_agent.ps1
```
CMD:
```bat
start_agent.bat
```
默认会在局域网内自动发现 `8001/8000` 端口上的主控。也可以手工指定主控地址:
```powershell
.\start_agent.ps1 -ControllerUrl http://<controller-lan-ip>:8001
```
```bat
start_agent.bat http://<controller-lan-ip>:8001
```
如果在另一台局域网设备上双击后窗口闪退,常见原因是:
- 该设备访问不到主控机的 `8001` 端口,需放行主控机防火墙或手工传入 `http://<主控机局域网IP>:8001`
- 该设备没有安装 Python 3,或 `python/py` 不在 PATH
- 被控本地服务端口 `18081` 已被占用
新版 `start_agent.bat` 遇到这些错误会暂停并显示原因。
默认被控本地服务端口与 `Agent-S-main/bridge_config.yaml` 的 `log_web_port` 保持一致:
- Local health: `http://127.0.0.1:18081/health`
- 环境变量:`AGENT_LOCAL_SERVICE_PORT=18081`
## 状态持久化
首次注册成功后写入 `data/agent_state.json`:
- `agent_id`
- `public_id`
- `token`
- `registered_at`
- `controller_url`
重启时如果该文件存在且机器标识一致,被控端不会重复注册,会直接用 Bearer token 发送心跳和领任务请求。
## 部署形态
`AGENT_DEPLOYMENT_TYPE=auto` 时自动判断物理机/虚拟机;也可显式设置:
- `physical_machine`
- `virtual_machine`
- `box_physical`
- `box_virtual`
## 已完成的 P0-02 验收点
- 首次启动自动注册
- token 保存到本地状态文件
- 后续启动不重复注册
- 心跳和领任务请求使用 `Authorization: Bearer <token>`
- 注册与心跳上报物理机/虚拟机部署形态