智能家居Test Suite执行action报错 Google Cloud无日志问题咨询
问题场景
- 运行智能家居认证用Test Suite时,action执行环节抛出错误
- 检索Google Cloud全链路日志,未找到任何和该次报错相关的请求记录
- 实机验证:手机端、Nest设备端调用Google Assistant操作对应智能家居功能,所有功能均正常运行
- 报错截图:

排查与解决思路
这类问题核心原因基本都是报错发生在Google测试套件侧/Google前置校验环节,请求根本没有转发到你的自建智能家居fulfillment服务,所以你在自己的Google Cloud日志里查不到任何记录,而实机调用走的是正常放行的链路,所以功能不受影响,按以下优先级排查即可:
- 核对Test Suite绑定的项目信息
确认Test Suite配置页填写的Agent ID、Google Cloud项目编号,和你实机测试时用的项目完全匹配。最常见的踩坑就是把测试沙箱项目、正式提交认证的项目搞混,测试套件把请求发到了错误的项目端点,自然你常用的项目下查不到日志。 - 检查测试账号的授权状态
- 跑测试套件前弹出的账号关联流程,必须和你实机登录的测试账号保持一致,且完成全量scope授权
- 如果关联账号时选错了家居结构、漏选了设备控制权限,Google侧会在发请求前直接做前置拦截,不会把请求透传到你的服务端
- 核对设备SYNC返回的schema合规性
面向普通用户的Google Assistant客户端对设备字段的兼容度很高,哪怕有小的字段不规范也能正常识别控制,但认证用Test Suite是严格按官方schema做校验的:- 检查返回的设备traits、attributes是否存在不符合官方规范的自定义字段,有没有缺漏必填项
- 核对
deviceInfo、customData字段的格式和值类型,不要传嵌套过深、类型不匹配的内容
这类schema校验不通过的问题会直接在测试套件本地抛错,不会发起对fulfillment端点的请求,自然没有云端日志。
- 清除Test Suite缓存后重跑
测试套件会本地缓存之前同步过的设备列表,如果你后端更新过设备配置,旧的缓存数据不符合校验规则也会触发action报错,清缓存后重新触发一次设备SYNC流程再跑测试即可。
内容的提问来源于stack exchange,提问作者martin angeleri
相关产品推荐
相关产品推荐

