Testowanie i debugowanie aplikacji

Zalecamy utworzenie aplikacji do realizacji zamówień lokalnych, korzystając z opisanych wcześniej czynności, a następnie przetestowanie integracji z urządzeniami inteligentnego domu w własnym środowisku hostingu. Aby to zrobić:

  1. W własnym środowisku hostingu wyświetl stronę HTML, która uruchamia Twoją aplikację do obsługi zamówień lokalnych. Poniższy fragment kodu to przykład stałego pliku HTML, który uruchamia aplikację do obsługi zamówień lokalnych.

    <html>
      <head>
        <!-- Local Home SDK -->
        <script src="//www.gstatic.com/eureka/smarthome/smarthome_sdk.js"></script>
        <!-- Local app under development -->
        <script src="local_execution.js"></script>
      </head>
    
    </html>
  2. Testowanie sterowania urządzeniem.

  3. Debugowanie w Chrome. Aby rozwiązać problemy z integracją, użyj punktów przerwania i logów.

  4. Zmodyfikuj i skompiluj kod TypeScript, a potem powtórz te czynności.

Dzięki powtarzaniu tego procesu kompilacji i testowania możesz szybko sprawdzać zmiany, co ułatwi Ci debugowanie problemów z kodem.

Testowanie sterowania urządzeniem

Google Home Developer Console musisz podać adres URL swojej aplikacji internetowej, która udostępnia kod HTML wczytywany na urządzeniu Google Home lub Google Nest podczas lokalnego przetwarzania.

Aby przetestować kontrolę urządzenia z wykonywaniem lokalnym:

Chrome

  1. Na stronie Konfiguracja i ustawienia integracji między chmurami w sekcji Google Home Developer Console przewiń do sekcji Realizacja lokalna i włącz to ustawienie.
  2. W sekcji Testowanie adresów URL > Testowy adres URL w Chrome określ adres URL serwera programistycznego, który dostarcza kod HTML używany przez lokalną aplikację do realizacji.
  3. Kliknij Zapisz. Rozpowszechnienie zmian w konsoli może potrwać do 30 minut.
  4. Uruchom ponownie testowe urządzenie Google Home lub Google Nest.
  5. Wydaj polecenie na urządzeniu smart. Jeśli na przykład Twoje urządzenie obsługuje cechę OnOff, możesz powiedzieć „OK Google, włącz światła”.

Node.js

  1. Na stronie Konfiguracja i ustawieniaGoogle Home Developer Console przewiń do sekcji Realizacja lokalna i włącz to ustawienie.
  2. W sekcji Testowanie adresów URL > Testowy adres URL dla węzła podaj adres URL serwera programistycznego, który udostępnia kod JavaScript, na którym działa Twoja aplikacja do realizacji zamówień lokalnych.
  3. Kliknij Zapisz. Rozpowszechnienie zmian w konsoli może potrwać do 30 minut.
  4. Uruchom ponownie testowe urządzenie Google Home lub Google Nest.
  5. Wydaj polecenie na urządzeniu smart. Jeśli na przykład Twoje urządzenie obsługuje cechę OnOff, możesz powiedzieć „OK Google, włącz światła”.

Więcej informacji o tym, z którego środowiska uruchomieniowego korzysta Twoje urządzenie, znajdziesz w sekcji Obsługiwane urządzenia.

Debugowanie w Chrome

Aplikację do obsługi zamówień lokalnych możesz debugować za pomocą Narzędzi deweloperskich w Chrome. Zanim zaczniesz debugować, sprawdź, czy środowisko jest prawidłowo skonfigurowane:

Aby połączyć lokalną aplikację do obsługi zapytań z debugerem w Narzędziach deweloperskich Chrome, wykonaj te czynności:

Chrome

  1. Na lokalnym komputerze deweloperskim zainstaluj i uruchom przeglądarkę Google Chrome.
  2. W polu adresu przeglądarki Chrome uruchom Chrome inspektora, wpisując: chrome://inspect#devices. Na stronie powinna wyświetlić się lista urządzeń, a plik HTML powinien być widoczny pod nazwą testowanego urządzenia Google Home lub Google Nest.
  3. Kliknij niebieski link „Zbadaj” pod kodem HTML, aby otworzyć Narzędzia deweloperskie w Chrome. Przejdź na kartę Konsola. Platforma Local Home wyświetla w logu konsoli wersję aplikacji i wersję pakietu SDK Local Home. Jeśli widzisz ten dziennik, oznacza to, że Google załadowało Twoją aplikację i może się z nią połączyć. Jeśli nie, uruchom ponownie urządzenie Google Home lub Google Nest.
  4. Rysunek 1.Aplikacja do realizacji lokalnie w chrome://inspect

Node.js

  1. Na lokalnym komputerze deweloperskim zainstaluj i uruchom przeglądarkę Google Chrome.
  2. Określ lokalny adres IP urządzenia testowego.
  3. W polu adresu przeglądarki Chrome uruchom Chrome inspektora, wpisując: chrome://inspect#devices.
  4. Kliknij Konfiguruj…, aby otworzyć Ustawienia wykrywania docelowego.
  5. Ilustracja 2. Ustawienia wykrywania docelowego na stronie chrome://inspect.
  6. Wpisz DEVICE_IP_ADDRESS:9222 na liście i kliknij Gotowe.
  7. Kliknij niebieski link „Sprawdź” pod skryptem, aby otworzyć Narzędzia deweloperskie w Chrome. Przejdź na kartę Konsola. Platforma Local Home wyświetla w logu konsoli wersję aplikacji i wersję pakietu SDK Local Home. Jeśli widzisz dziennik, oznacza to, że Google załadowało Twoją aplikację i może się z nią połączyć. Jeśli nie, uruchom ponownie urządzenie Google Home lub Google Nest.

Więcej informacji o tym, z którego środowiska uruchomieniowego korzysta Twoje urządzenie, znajdziesz w sekcji Obsługiwane urządzenia.

Wskazówki dotyczące debugowania

Podczas debugowania należy pamiętać o kilku dodatkowych kwestiach:

  • Nie łącz wielu urządzeń Google Home ani Google Nest z kontem testowym w tej samej sieci lokalnej. Nie będziesz mieć możliwości określenia, które urządzenie Google Home lub Google Nest ma być kierowane za pomocą poleceń lokalnego przetwarzania.
  • Odśwież stronę w Narzędziach dla deweloperów w Chrome, aby ponownie załadować kontener aplikacji do realizacji lokalnej z najnowszym kodem z adresu URL wersji deweloperskiej. Nie powoduje to zresetowania platformy lokalnej w domu, która może być potrzebna do ponownego wywołania intencji platformy (np. IDENTIFY) w lokalnej aplikacji do realizacji. Aby zresetować platformę lokalną w domu, zrestartuj urządzenie Google Home lub Google Nest.
  • Sprawdź, czy aplikacja JavaScript wczytuje się bez błędów. Aby to zrobić, sprawdź sekcję konsoli na stronie Narzędzi deweloperskich. Jeśli wystąpi problem, zobaczysz komunikat podobny do tego: „Uncaught TypeError: Cannot read property 'open' of null.'
  • Wartość verificationId w odpowiedzi IDENTIFY musi być zgodna z jedną z wartości otherDeviceIds w odpowiedzi SYNC.
  • W przypadku obsługi EXECUTE sprawdź, czy urządzenie może odbierać polecenia HTTP, TCP lub UDP i czy działają one zgodnie z oczekiwaniami.
  • Pamiętaj, aby zwracać Promise z obsługiwanych elementów.
  • Unikaj utrzymywania stanu globalnego w pamięci. Zobacz cykl życia aplikacji.
  • Błędy wygenerowane przez aplikację do obsługi zamówień lokalnych pojawią się w dziennikach błędów projektu.

Przygotowywanie i wprowadzanie wersji do wersji produkcyjnej

Gdy wszystko będzie gotowe, wykonaj te czynności:

  1. Otwórz terminal. W katalogu projektu uruchom polecenie npm run build. To polecenie generuje w katalogu dist te pakiety JavaScripta dla aplikacji:
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. Na stronie Konfiguracja i ustawieniaGoogle Home Developer Console przewiń do sekcji Realizacja lokalna i włącz to ustawienie.
  3. Za pomocą przycisków Prześlij kod JavaScript prześlij wygenerowane wcześniej pliki pakietu.
    Rysunek 3. Prześlij aplikację JavaScript.
    Pamiętaj, aby przesłać obie wersje plików pakietu (Node i Web), aby działanie akcji było prawidłowo skonfigurowane we wszystkich środowiskach uruchomieniowych obsługiwanych przez realizację lokalną.
    1. Przesyłanie kodu JavaScript kierowanego na Node.js: prześlij plik bundle.js z katalogu dist/node.
    2. Prześlij kod JavaScript kierowany na Chrome (przeglądarkę): prześlij plik bundle.js z katalogu dist/web.
  4. przetestować działanie aplikacji na urządzeniu z Asystentem, aby sprawdzić, czy działa ona zgodnie z oczekiwaniami w środowisku produkcyjnym. Więcej informacji znajdziesz w artykule Testowanie i udostępnianie akcji inteligentnego domu.
  5. Gdy będziesz zadowolony z działania swojego działania, prześlij je do Google w celu wdrożenia w wersji produkcyjnej, wykonując instrukcje podane w artykule Uruchomienie działania inteligentnego domu. Obejmuje to wykonanie testu samodzielnego i wysłanie prośby o certyfikację.