两件不同的活
开放充电联盟(OCA)的 OCPP 一致性测试工具服务的是一个明确目的:在产品上市之前,证明它符合 OCPP 规范。它详尽、官方,而且产出的一致性结论对采购团队是有分量的。
它不是为开发流程设计的。这不是批评——只是不同的活需要不同的工具。
把这个差别想清楚,能省掉很多挫败感。
OCTT 擅长什么
OCTT 会对你的实现跑一套全面、标准化的测试集,以结构化的方式覆盖规范中必需和可选的功能。通过之后,你手上有一份成文的一致性证据,在大型客户和电力公司那里是有说服力的。
这个流程本身也是个有用的约束。必须正式认证,就意味着你不能带着「差不多能用」的协议一致性出货。门槛是明确划好的。
OCTT 为什么套不进开发
认证流程是围绕里程碑模型设计的:你做出东西,测这个东西,认证这个东西。开发是迭代的。你在每一次有意义的改动之后都要测,而不是最后测一次。
OCTT 还需要协调——约测试时段、拿到工具的使用权、提交结果。对一个认证里程碑来说,这些开销是可以接受的;作为每天的开发回路,它无法承受。
中间的那段空档
开发者真正需要的,是这样一个东西:
- 立刻就能跑,不需要排期
- 针对具体的消息往返给出快速反馈
- 能在 CI 环境里工作
- 细节足够多,能迅速定位失败原因
这就是 TestPilot 要补的那段空档。它不取代 OCTT——如果你需要 OCA 认证,那条路还是得走。但在你准备好做正式认证之前,那 95% 的测试它都能接下来。
一条典型的流程
实践中,流程大致是这样:
- 开发阶段:在本地环境里跑 TestPilot。每实现一个消息流就测一个。放进 CI 里防回归。
- 认证前:拿完整的实现跑一遍 TestPilot,作为起飞前检查。把失败的都修掉。
- 认证:提交给 OCA 的 OCTT。到这一步,核心流程能过,你应该早就知道了。
- 认证之后:继续用 TestPilot 开发下一个版本。认证是一张快照,开发是持续的。
关于 OCTT 对接的几点实务
如果你在准备 OCTT 认证,有几件事值得先知道:
测试集是按功能档(Core、Remote Trigger、Smart Charging 等)组织的。在启动流程之前,先弄清楚你要声明哪几个功能档的一致性。
OCTT 会测一些你平常跑不到的边界情况——错误响应、意料之外的状态迁移、缺失的可选字段。开发阶段就尽量把这些场景都对着实现跑一遍。
留好你的测试日志。正式认证里出问题时,手上有开发测试留下的详细日志,根因分析会快得多。