Google Home 测试套件

Cloud-to-cloud    Local Home SDK

Google Home Test Suite是一个 Web 应用,可让您 自行测试智能家居 Action。Test Suite 会自动生成并运行测试用例,具体取决于与您的账号关联的设备和特征 。完成测试后,您可以查看测试结果。

如需使用 Test Suite 并将测试结果提交给 Google 以进行认证,请参阅 测试和分享智能家居 Action 页面了解相关信息。 此版本的Test Suite专门用于 开发和质量保证。

测试套件执行的测试包括但不限于以下内容:Test Suite

  • 检查是否为设备和特征实现了报告状态请求同步

  • 验证是否为设备实现了 QUERY intent ,以及其结果是否与报告状态结果一致。

您可以点击以下按钮 启动Test Suite工具:

启动 Test Suite

自行测试 Action

以下部分介绍了如何在设备和智能家居 Action 项目上运行 Test Suite on 。Test Suite 要求您登录,以便检查 Google Home Graph中的设备并直接向 Google Assistant发送命令。

如需自行测试 Action,请按以下步骤操作:

  1. 在 Web 浏览器中,打开 Test Suite
  2. 使用右上角的按钮登录 Google。

  3. 配置项目详情

    1. 项目 ID 字段中,输入智能家居 Action 的项目标识符。
    2. 点击下一步
  4. 配置测试设置

    1. 如果要认证 Cloud-to-cloud 集成,请将默认的 报告状态/请求同步超时 值保持不变。不过,对于测试,如果代理需要更多时间向 Home Graph 报告状态,您可以更改超时值。
    2. 如果要认证 Cloud-to-cloud 集成,请确保已启用 测试请求同步 选项 - 在测试期间,系统会提示您添加、 更新或移除设备,并检查 Home Graph 中的设备列表是否已更改。更改操作通过您正在测试的集成进行。受测集成必须始终至少有一个设备连接到代理用户。

    3. 如果您使用的是Scene特征,请选择 测试场景特征

    4. 如果您要为 Local Home 设备运行测试套件,请选择支持 Local Home SDK

      1. 选择本地执行方式无缝设置
      2. 如果设备可以在本地处理 QUERY intent,请点击支持本地查询
  5. 执行测试运行 并查看结果:

    1. 点击下一步 开始运行测试。界面会显示正在测试的设备和特征。
  6. 查看结果和提交 页面:

    1. 测试完成后,点击下一步 查看结果。

测试结果包括通过和未通过的测试数量,以及表示通过百分比的最终得分。

账号关联验证测试

账号关联在 Google 智能家居生态系统中发挥着 重要作用。测试套件中的账号关联 验证测试会检查您的 OAuth 服务是否存在 潜在问题。Test Suite

账号关联验证测试包含用于验证访问令牌刷新令牌的测试:

访问令牌验证测试

系统会对从令牌交换端点返回的访问令牌进行测试,以确保它们具有有效格式,并随有效的刷新令牌一起返回。

测试项 说明
检查访问令牌是否为 JWT 格式 Google 账号关联不建议使用 JWT 格式的访问令牌。如果发现 JWT 格式,系统会显示以下警告: The access token seems to be JWT, this is not good. Because it unnecessarily exposes information about partner implementation and we recommend opaque symmetric encrypted access token.
检查可过期的访问令牌是否具有刷新令牌。 当访问令牌可过期时,必须提供刷新令牌。 如果未找到刷新令牌,此测试将失败。

刷新令牌验证测试

系统会对刷新令牌进行测试,以确保令牌交换端点能够正确地将它们交换为新的访问令牌。

测试项 说明
使用无效的刷新令牌刷新令牌,检查合作伙伴响应。 对于无效的刷新令牌请求,您的服务器应返回 HTTP 400 Bad Request 错误,并显示 {"error": "invalid_grant"}。 如果响应与“错误代码或消息”不匹配,此测试用例 将失败。如需了解详情,请访问 exchange refresh tokens for access tokens
测试访问令牌在令牌刷新后是否已更新。 系统应返回新的访问令牌以响应刷新令牌 请求。如果您的服务器提供相同的访问令牌,测试用例将 失败。
检查未过期的访问令牌是否仍然有效。 系统将显示访问令牌的过期时间。
检查刷新令牌在刷新期间是否已轮换。 我们会检查刷新令牌在刷新令牌请求后是否已更改。如果 刷新令牌发生更改,您的服务器应仅在使用了新的刷新 令牌后才使旧的刷新令牌失效,以防止可能导致用户账号关联中断的竞态条件。如果您在新的刷新令牌使用之前使旧的刷新令牌失效,测试将失败。

错误消息

下表列出了一些您可能会遇到的常见错误消息以及建议的解决方法。

错误消息 解决方法
项目 <_id_> 中未使用过或已停用 HomeGraph API 确保您已启用 HomeGraph API
找不到请求的实体 检查您的 agentUserId 是否有效并已关联到您的 服务。

确保您对项目 ${your project id} 拥有 resourcemanager.projects.get 权限,并且已在权限请求页面中授予所有权限。

Error getting module data: getModuleData error: Http failure response for https://hometestsuiteproxy-pa.googleapis.com/v1/module:get: 403 OK 403

  1. 按照 排查 IAM 权限 中的说明操作,确保您的账号对项目拥有 resourcemanager.projects.get 权限。
  2. 前往有权访问您账号的应用页面,检查“智能家居测试套件”的以下权限:
    • 基本账号信息
      1. 查看您 Google 账号的主电子邮件地址
      2. 查看您的个人信息,包括您已公开的任何个人信息
    • 其他访问权限
      1. 使用您的 Assistant:对您的 Google 账号拥有较完整的访问权限
      2. 通过 Home Graph 检查和控制智能家居设备
    如果您收到权限错误,请先移除访问权限,然后在您再次登录时在权限请求页面中授予所有权限。

提交测试结果

您的 Test Suite 结果必须通过 100% 的测试,然后才能 提交以进行认证。如果您有任何需要 手动测试的特征,即使Test Suite工具的结果未达到 100% 通过率,您仍应运行该工具并 附上结果。

如需提交测试结果并认证 Cloud-to-cloud 集成,请按以下步骤操作:

  1. 收到测试结果后,如果您已准备好认证 Cloud-to-cloud集成,请在 Test Suite工具中点击提交
  2. 依次前往 Google Home Developer Console > Cloud-to-cloud > 认证
  3. 选择要认证的集成。
  4. 文档下,输入您的 Test Suite结果 ID
  5. 填写所有必填字段,然后点击提交