Google Home Test Suite

Облачные интеграции    Local Home SDK

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

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

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

  • Проверяет, реализованы ли для ваших устройств и признаков функции Report State и Request Sync.

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

Чтобы запустить инструмент "Test Suite", нажмите кнопку ниже.

Запуск Test Suite

Протестируйте действие самостоятельно

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

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

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

  3. Задайте сведения о проекте:

    1. В поле Project ID (Идентификатор проекта) введите идентификатор проекта для действия умного дома.
    2. Нажмите Далее.
  4. Задайте настройки тестирования:

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

    3. Если вы используете свойство Scene, выберите Test Scene trait (Проверить свойство Scene).

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

      1. Выберите Local Fulfillment (Локальное выполнение) или Seamless Setup (Простая настройка).
      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"}. Если ответ не соответствует коду ошибки или сообщению, этот отчет о тестировании не будет пройден. Подробнее о том, как обменять токен обновления на токен доступа…
Проверьте, был ли обновлен токен доступа после обновления токена. В ответ на запросы токенов обновления должны возвращаться новые токены доступа. Если сервер предоставит тот же токен доступа, тест не будет пройден.
Проверьте, действителен ли токен доступа, срок действия которого не истек. Появится срок действия токена доступа.
Проверьте, был ли токен обновления заменен во время обновления. Мы проверяем, меняются ли токены обновления после запроса токена обновления. Если токен обновления изменился, ваш сервер должен аннулировать старый токен только после того, как будет использован новый. Это позволит избежать состояния гонки, которое может нарушить связь с аккаунтом пользователя. Если вы аннулируете старый токен обновления до того, как будет использован новый, тест не будет пройден.

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

В таблице ниже перечислены распространенные сообщения об ошибках и способы их устранения.

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

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

Ошибка при получении данных модуля: 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. Удобный доступ к различным функциям аккаунта Google с помощью Assistant
      2. Проверка устройств умного дома в вашей базе данных Home Graph и управление ими
    Если вы получите сообщение об ошибке, связанной с разрешениями, сначала закройте доступ, а затем предоставьте все разрешения в окне запроса доступа при повторном входе.

Отправить результаты теста

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