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.

Powtarzając proces kompilacji i testowania, możesz szybko sprawdzać zmiany w działaniu oraz łatwiej wykrywać i rozwiązywać problemy z kodem.

Testowanie sterowania urządzeniem

W Konsoli czynności musisz podać adres URL swojej aplikacji internetowej, która udostępnia kod HTML wczytywany na urządzeniu Google Home lub Google Nest podczas realizacji lokalnej.

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

Chrome

  1. Otwórz projekt Smart Home w konsoli Actions.
  2. W panelu użytkownika po lewej stronie kliknij Działania.
  3. W sekcji Skonfiguruj pakiet SDK lokalnego interfejsu domowego (opcjonalnie) > Wpisz adres URL testowy Chrome podaj adres URL serwera programistycznego, który udostępnia kod HTML używany przez Twoją aplikację do realizacji lokalnej.
  4. Kliknij Zapisz. Rozpowszechnienie zmian w konsoli może potrwać do 30 minut.
  5. Uruchom ponownie testowe urządzenie Google Home lub Google Nest.
  6. 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. Otwórz projekt Smart Home w konsoli Actions.
  2. W panelu użytkownika po lewej stronie kliknij Działania.
  3. W sekcji Konfigurowanie pakietu SDK lokalnego domu (opcjonalnie) > Wpisz adres URL testowy dla węzła określ adres URL serwera deweloperskiego, który udostępnia kod JavaScript, na podstawie którego działa Twoja lokalna aplikacja do realizacji.
  4. Kliknij Zapisz. Rozpowszechnienie zmian w konsoli może potrwać do 30 minut.
  5. Uruchom ponownie testowe urządzenie Google Home lub Google Nest.
  6. 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:

  • w konsoli ustawiony jest URL do celów testowania, który jest dostępny z urządzenia Google Home lub Google Nest (w sieci lokalnej lub przez Internet);
  • Twoje urządzenie jest połączone z tą samą siecią LAN co testowane urządzenie Google Home lub Google Nest.
  • Twoja sieć nie blokuje pakietów między urządzeniami.
  • Zaloguj się na to samo konto Google w Konsoli Actions i na urządzeniu Google Home lub Google Nest.
  • Zaktualizowano odpowiedź SYNC w usłudze przetwarzania w chmurze. W polu otherDeviceIds musi zwracać co najmniej 1 prawidłową wartość.
  • W Konsoli czynności wpisano prawidłowe informacje o konfiguracji skanowania.

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 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 wyboru urządzenia Google Home ani Google Nest, które ma być docelowe dla 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. W konsoli prześlij aplikację JavaScript, klikając Tworzenie > Działania. W sekcji Skonfiguruj pakiet SDK Local Home kliknij Prześlij pliki JavaScript.
    Rys. 3. Prześlij aplikację JavaScript.
  3. W oknie Prześlij pliki prześlij wcześniej wygenerowane pliki pakietu. Prześlij 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ę.