Набор тестов Google Home

Локальный домашний SDK для взаимодействия из облака в облако

Google Home Test Suite — это веб-приложение, позволяющее вам самостоятельно тестировать действие вашего умного дома. Test Suite автоматически генерирует и запускает тестовые случаи на основе устройств и характеристик, связанных с вашей учетной записью. После завершения тестов вы можете просмотреть результаты тестов.

Чтобы использовать Test Suite и отправить результаты тестов в Google для сертификации, см. страницу Test and share smart home Actions для получения информации. Эта версия Test Suite предназначена специально для разработки и обеспечения качества.

Тесты, выполняемые Test Suite включают, помимо прочего, следующее:

  • Проверяет, реализованы ли функции «Состояние отчета» и «Синхронизация запросов» для ваших устройств и характеристик.

  • Проверяет, что намерение QUERY реализовано для вашего устройства и его результаты соответствуют результатам отчета о состоянии.

Вы можете запустить инструмент Test Suite , нажав кнопку ниже:

Запуск Test Suite

Самопроверьте свои действия

В следующем разделе описывается, как запустить Test Suite на вашем устройстве и проекте Smart Home Action. Test Suite требует, чтобы вы вошли в систему, чтобы он мог проверять устройства в вашем Google Home Graph и отправлять команды напрямую в Google Assistant .

Чтобы самостоятельно проверить свое действие, выполните следующие действия:

  1. Откройте Test Suite в веб-браузере.
  2. Войдите в Google с помощью кнопки в правом верхнем углу.

  3. Настройте детали проекта :

    1. В поле «Идентификатор проекта» введите идентификатор проекта для вашего действия «умный дом».
    2. Нажмите Далее .
  4. Настройте параметры теста :

    1. При сертификации интеграции Cloud-to-cloud оставьте значение по умолчанию Report State/Request Sync Timeout без изменений. Однако для тестирования вы можете изменить значение тайм-аута, если вашему агенту требуется больше времени для отчета о состоянии в Home Graph.
    2. При сертификации интеграции Cloud-to-cloud убедитесь, что опция Test Request Sync включена — во время тестирования вам будет предложено добавить, обновить или удалить устройство и проверить, изменился ли список устройств в Home Graph. Действия по изменению выполняются через тестируемую вами интеграцию. Тестируемая интеграция всегда должна иметь по крайней мере одно устройство, подключенное к пользователю агента.

    3. Если вы используете черту Scene , выберите Тест черты сцены .

    4. Если вы запускаете тестовый набор для устройств Local Home, выберите Supports Local Home SDK .

      1. Выберите локальное выполнение или бесшовную настройку .
      2. Нажмите «Поддержка локального запроса» , если устройство может обрабатывать намерение QUERY локально.
  5. Выполните тестовый запуск и просмотрите результаты:

    1. Нажмите Далее , чтобы начать выполнение тестов. Интерфейс показывает устройства и характеристики, которые тестируются.
  6. Просмотр страницы результатов и подачи заявок :

    1. После завершения тестов нажмите «Далее» , чтобы просмотреть результаты.

Результаты теста включают количество пройденных и проваленных тестов, а также итоговый балл, указывающий процент успешных сдач.

Тест проверки привязки аккаунта

Связывание аккаунтов играет важную роль в экосистеме умного дома Google. Тест проверки связывания аккаунтов в Test Suite проверяет ваш сервис OAuth на наличие потенциальных проблем.

Тест проверки привязки учетной записи содержит тесты для проверки токенов доступа и токенов обновления :

Тест проверки токена доступа

Токены доступа, возвращаемые из конечной точки обмена токенами, проверяются, чтобы убедиться, что они имеют допустимый формат, и возвращаются с допустимым токеном обновления.

Тестовые задания Объяснение
Проверьте, имеет ли токен доступа формат 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 для получения дополнительной информации.
Проверьте, был ли обновлен токен доступа после обновления токена. Новые токены доступа должны быть возвращены в ответ на запросы обновления токена. Если ваш сервер предоставляет тот же токен доступа, тестовый случай завершится неудачей.
Проверьте, действителен ли еще не истекший токен доступа. Будет отображено время истечения срока действия токена доступа.
Проверьте, был ли обновлен токен ротирован во время обновления. Мы проверяем, были ли изменены токены обновления после запроса токена обновления. Если токен обновления изменяется, ваш сервер должен аннулировать старый токен обновления только после использования нового токена обновления, чтобы предотвратить состояние гонки, которое может нарушить привязку учетной записи пользователя. Тест не будет пройден, если вы аннулируете старый токен обновления до использования нового.

Сообщения об ошибках

В следующей таблице перечислены некоторые распространенные сообщения об ошибках, с которыми вы можете столкнуться, и предлагаемые способы их устранения.

Сообщение об ошибке Как решить
API HomeGraph ранее не использовался в проекте <_id_> или был отключен Убедитесь, что вы включили API HomeGraph .
Запрошенный объект не найден Проверьте, что ваш agentUserId действителен и связан с вашей службой.

Убедитесь, что у вас есть разрешение resourcemanager.projects.get для проекта ${your project id} и вы предоставили все разрешения на экране согласия.

Ошибка получения данных модуля: ошибка getModuleData: ответ об ошибке HTTP для 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 .
  5. Заполните все обязательные поля, затем нажмите «Отправить» .