Google Home テストスイート

クラウド間    Local Home SDK

Google Home Test Suite は、スマートホーム アクションを セルフテストできるウェブ アプリケーションです。Test Suite は、アカウントに関連付けられているデバイスとトレイト に基づき、テストケースを自動的に生成して実行します。テストが完了すると、テスト結果を確認できます。

Test Suite を使用してテスト結果を Google に送信し、認定を受ける方法については、 スマートホーム アクションのテストと共有をご覧ください。 このバージョンのTest Suiteは、 開発と品質保証を目的としています。

Test Suiteで実行されるテストには、次のようなものがあります。

  • デバイスとトレイトに Report StateRequest Sync が実装されていることを確認します。

  • デバイスに QUERY インテント が実装されていること、その結果が Report State の結果と一致することを検証します。

Test Suite ツールを起動するには、次のボタン をクリックします。

起動 Test Suite

アクションのセルフテスト

ここでは、Test Suiteを デバイスとスマートホーム アクション プロジェクトで実行する方法について説明します。Test Suite にログインすると、 Google Home Graph内のデバイスを検査し、 Google Assistantに直接コマンドを送信できます。

アクションをセルフテストする手順は次のとおりです。

  1. ウェブブラウザで Test Suiteを開きます。
  2. 右上のボタンから Google にログインします。

  3. [Project Details]を設定します。

    1. [Project ID](プロジェクト ID)フィールドに、スマートホーム アクションのプロジェクト ID を入力します。
    2. [Next] をクリックします。
  4. [Test Settings](テスト設定)を構成します。

    1. Cloud-to-cloud 統合を認定する場合は、デフォルトの Report State/Request Sync Timeout 値をそのまま使用します。ただし、エージェントがホームグラフに状態を報告するのに時間がかかる場合は、テスト目的でタイムアウト値を変更できます。
    2. Cloud-to-cloud統合を認定する場合は、[Test Request Sync] オプションが有効になっていることを確認します。テスト中は、デバイスを追加、 更新、削除して、 ホームグラフでデバイスリストが変更されたかどうかを確認するよう求めるメッセージが表示されます。変更アクションは、テスト対象の統合で行われます。テスト対象の統合では、常に 1 つ以上のデバイスがエージェント ユーザーに接続されている必要があります。

      Google Home app (GHA)
    3. Scene トレイトを使用する場合は、 [Test Scene trait]を選択します。

    4. Local Home デバイスのテストスイートを実行している場合は、[Supports Local Home SDK](Local Home SDK をサポート)を選択します。

      1. [Local Fulfillment](ローカル フルフィルメント)または [Seamless Setup](シームレス連携のセットアップ)を選択します。
      2. デバイスが QUERY インテントをローカルで処理できる場合は、[Supports Local Query](ローカル クエリをサポート)をクリックします。
  5. [Test Run](テスト実行)を実行して結果を表示します。

    1. [Next] をクリックして、テストの実行を開始します。インターフェースにテスト対象のデバイスとトレイトが表示されます。
  6. [Results & Submission](結果と送信)ページを表示します。

    1. テストが完了したら、[Next] をクリックして結果を表示します。

テスト結果には、成功したテストと失敗したテストの件数、および成功率(%)を示す最終スコアが表示されます。

アカウントのリンクの検証テスト

アカウントのリンクは、Google スマートホーム エコシステムで 重要な役割を果たします。テストスイートのアカウントのリンク 検証テストでは、Test SuiteOAuth サービスに 潜在的な問題がないか確認します。

アカウントのリンクの検証テストには、アクセス トークン更新トークンを検証するテストが含まれています。

アクセス トークンの検証テスト

トークン交換エンドポイントから返されたアクセス トークンをテストして、有効な形式であることと、有効な更新トークンとともに返されることを確認します。

テスト項目 説明
アクセス トークンが 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. という警告が表示されます。
期限切れのアクセス トークンに更新トークンがあるかどうかを確認する アクセス トークンが期限切れになる場合は、更新トークンを提供する必要があります。 更新トークンが見つからない場合、このテストは失敗します。

更新トークンの検証テスト

更新トークンをテストして、トークン交換エンドポイントで新しいアクセス トークンと正しく交換されることを確認します。

テスト項目 説明
無効な更新トークンで更新トークンを更新し、パートナーのレスポンスを確認する サーバーは、無効な更新トークン リクエストに対して {"error": "invalid_grant"} を含む HTTP 400 Bad Request エラーを返す必要があります。 レスポンスが「エラーコードまたはメッセージ」と一致しない場合、このテストケース は失敗します。詳細については、 更新トークンをアクセス トークンと交換するをご覧ください。
トークンの更新後にアクセス トークンが更新されたかどうかをテストする 更新トークン リクエストへのレスポンスとして、新しいアクセス トークンが返される必要があります。サーバーが同じアクセス トークンを提供する場合、テストケースは 失敗します。
期限切れになっていないアクセス トークンがまだ有効かどうかを確認する アクセス トークンの有効期限が表示されます。
更新中に更新トークンがローテーションされたかどうかを確認する 更新トークン リクエスト後に更新トークンが変更されたかどうかを確認します。更新トークンが変更された場合、サーバーは、新しい更新トークンが使用された後にのみ古い更新トークンを無効にする必要があります。これにより、ユーザーのアカウントのリンクが切断される可能性のある競合状態を防ぐことができます。新しい更新トークンが使用される前に古い更新トークンを無効にすると、テストは失敗します。

エラー メッセージ

次の表は、一般的なエラー メッセージと、推奨される解決方法を示します。

エラー メッセージ 解決方法
HomeGraph API has not been used in project <_id_> before or it is disabled(HomeGraph API がこれまでプロジェクト <_id_> で使用されたことがないか、または無効になっています) HomeGraph API が有効になっていることを確認します。
Requested Entity not found(要求されたエンティティが見つかりません) 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権限があることを確認します。
    • [アカウントにアクセスできるアプリ] ページに移動して、[スマートホーム用テストスイート] の次の権限を確認します。
    • 基本的なアカウント情報
      1. Google アカウントのメインのメールアドレスを表示する
      2. ユーザーの個人情報を表示する(ユーザーが一般公開しているすべての個人情報を含む)
    • その他の権限
      1. Assistant の使用: Google アカウントへの広範なアクセス
      2. ホーム グラフ内のスマートホーム デバイスの調査および操作
    権限エラーが表示された場合は、まずアクセス権を削除し、再度ログインするときに同意画面ですべての権限を付与します。

テスト結果の送信

認定を申請する前に、Test Suiteの結果を 100% 成功にする必要があります。手動テストを必要とするトレイトがある場合でも、Test Suite ツールを実行し、100% 成功していなくても結果を添付してください。

テスト結果を送信し、Cloud-to-cloud 統合を認定する手順は次のとおりです。

  1. テスト結果を受け取り、 Cloud-to-cloud統合を認定する準備が整ったら、[Submit]を Test Suiteツールでクリックします。
  2. Google Home Developer Console > Cloud-to-cloud > [Certify] に移動します。
  3. 認定する統合を選択します。
  4. [Documentation](ドキュメント)に、 Test Suite結果 ID を入力します。
  5. すべての必須項目に入力し、[Submit](送信)をクリックします。

    Cloud-to-cloud