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

SDK локального домашнего облака для взаимодействия между облаками

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

Чтобы использовать Test Suite и отправить результаты тестов в Google для сертификации, посетите страницу «Тестирование и обмен действиями для умного дома» . Эта версия Test Suite предназначена специально для разработки и контроля качества.

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

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

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

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

Запуск Test Suite

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

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

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

  1. В веб-браузере откройте Test Suite .
  2. Войдите в Google, нажав кнопку в правом верхнем углу.

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

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

    1. При сертификации интеграции Cloud-to-cloud оставьте значение по умолчанию «Отчёт о состоянии/Запрос на синхронизацию» без изменений. Однако для тестирования вы можете изменить значение тайм-аута, если вашему агенту требуется больше времени для отправки отчета о состоянии в Home Graph.
    2. При сертификации интеграции Cloud-to-cloud убедитесь, что опция «Синхронизация тестовых запросов» включена. Во время тестирования вам будут предложено добавить, обновить или удалить устройство, а также проверить, изменился ли список устройств в 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 Update Tokens для получения токенов доступа .
Проверьте, был ли обновлен токен доступа после обновления токена. В ответ на запросы на обновление токена должны возвращаться новые токены доступа. Если ваш сервер предоставит тот же токен доступа, тест завершится неудачей.
Проверьте, действителен ли еще не истекший токен доступа. Будет отображено время истечения срока действия токена доступа.
Проверьте, был ли токен обновления сменён во время обновления. Мы проверяем, были ли изменены токены обновления после запроса токена обновления. Если токен обновления изменился, ваш сервер должен аннулировать старый токен обновления только после использования нового, чтобы предотвратить состояние гонки, которое может нарушить привязку учётной записи пользователя. Тест завершится неудачей, если вы аннулируете старый токен обновления до использования нового.

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

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

Сообщение об ошибке Как решить
API HomeGraph ранее не использовался в проекте <_id_> или был отключен. Убедитесь, что вы включили HomeGraph API .
Запрошенный объект не найден Проверьте, действителен ли ваш 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. Заполните все обязательные поля, затем нажмите «Отправить» .