# Consul 服务中心集成测试报告

# 1. 测试范围

对应文件:test/Air.Cloud.IntegrationTest/Modules/Consul/ConsulRealServerCenterIntegrationTests.cs。

目标是连接真实 Consul 实例,验证 IServerCenterStandard 的服务注册、服务发现、服务详情查询,以及 Consul 实现类的注销能力。

# 2. 测试环境

配置项 当前值
ConsulIntegration:RunConsulTests true
ConsulIntegration:Address http://192.168.100.154:8500/
ConsulIntegration:KeyPrefix air-cloud-it
ConsulServiceOptions:ConsulAddress http://192.168.100.154:8500/

# 3. 测试内容与边界

# 服务注册与发现

测试目标 边界内入参 边界外 / 异常入参 预期结果
注册服务并查询服务列表 临时 ServiceName = {prefix}-server-center-query,随机 ServiceKey,ServiceAddress = http://127.0.0.1:5099 Consul Catalog 存在同步延迟 RegisterAsync 返回 true,轮询 QueryAsync 后能发现服务名。
按服务名查询详情 临时 ServiceName = {prefix}-server-center-detail Consul Catalog 存在同步延迟 GetAsync(serviceName) 返回当前实例,实例 ID、服务名、地址和端口一致。

# 注册参数规范化

测试目标 边界内入参 边界外 / 异常入参 预期结果
健康检查路由补齐 HealthCheckRoute = healthz 路由不以 / 开头 RegisterAsync 将路由规范化为 /healthz,服务可完成真实注册并进入 Catalog。

# 服务注销

测试目标 边界内入参 边界外 / 异常入参 预期结果
注销已注册服务 先注册临时服务,再调用 ConsulServerCenterDependency.Unregister(serviceKey) Consul Catalog 存在同步延迟 注销返回 true,轮询服务详情后不再包含该实例。

# 4. 测试结果

本报告已单独运行对应过滤命令,结果:4/4 通过。

dotnet test test/Air.Cloud.IntegrationTest/Air.Cloud.IntegrationTest.csproj --no-restore --filter "FullyQualifiedName~ConsulRealServerCenterIntegrationTests" -m:1

# 5. 对应目标中间件版本

目标 Consul 实例为 http://192.168.100.154:8500/。当前配置未声明 Consul 服务端版本,报告不臆测具体版本。