Stacja testowa OmniLab

OmniLab ATS to narzędzie do testowania, którego deweloperzy i inżynierowie testów Androida mogą używać do uruchamiania standardowych pakietów testów Androida, takich jak Compatibility Test Suite (CTS). To narzędzie działa jako interfejs internetowy dla różnych ram testów, takich jak Trade Federation (TF)Google Mobly. Umożliwia ono uruchamianie testów CTS i testów na wielu urządzeniach na zestawie urządzeń testowych z minimalną konfiguracją, a także ustalanie harmonogramu ciągłego testowania.

Konfigurowanie usługi OmniLab ATS

W tej sekcji opisaliśmy, jak zainstalować i skonfigurować OmniLab ATS.

OmniLab ATS używa kodu źródłowego z tych lokalizacji:

Instalowanie OmniLab ATS

Przestrzegaj wymagań sprzętowych i programowych dotyczących pakietów testów, które uruchamiasz.

Wymagania dotyczące CTS znajdziesz na stronie source.android.com.

OmniLab ATS nie ma dodatkowych wymagań sprzętowych, ale zalecamy sprawdzenie wymagań hosta CTS.

Istnieją 2 sposoby instalacji OmniLab ATS:

Instalowanie za pomocą programu instalacyjnego

W Ubuntu 20.04 lub nowszym program instalatora instaluje i konfiguruje wszystkie programy oraz zasoby potrzebne do działania OmniLab ATS.

Aby skorzystać z programu instalowania:

  1. Uruchom program instalacyjny:

    curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
    
  2. Uruchom mtt version, aby sprawdzić zainstalowaną wersję interfejsu wiersza poleceń OmniLab ATS.

Zainstaluj ręcznie

Zainstaluj Dockera
  1. Wykonaj instrukcje instalacji Docker Community Edition (CE) na komputerze z Linuksem.

  2. Wykonaj czynności po instalacji, aby zarządzać Dockerem jako użytkownik inny niż root.

  3. Aby zmiany w uprawnieniach zaczęły obowiązywać, może być konieczne ponowne uruchomienie okna terminala lub wylogowanie się i zalogowanie się ponownie.

Instalowanie Pythona 3

Narzędzie wiersza poleceń OmniLab ATS zostało zweryfikowane w przypadku wersji Pythona od 3.7 do 3.11.

W przypadku Ubuntu 16.04 lub starszych najpierw dodaj repozytorium Pythona 3, wykonując jedną z tych czynności:

  • Uruchom to polecenie:

    sudo add-apt-repository ppa:deadsnakes/ppa
    
  • Utwórz i zainstaluj repozytorium z poziomu źródła.

Aby zainstalować Pythona 3, uruchom te polecenia:

sudo apt-get update
sudo apt install python3 python3-distutils

Aby zainstalować konkretną wersję Pythona 3 (np. 3.10), uruchom zamiast tego te polecenia:

sudo apt-get update
sudo apt install python3.10 python3.10-distutils

Pobieranie interfejsu wiersza poleceń OmniLab ATS

Pobierz pakiet interfejsu wiersza poleceń (CLI) tutaj.

Uruchamianie OmniLab ATS

Uruchom ATS OmniLab za pomocą tego polecenia:

mtt start

Pierwsze uruchomienie interfejsu może potrwać kilka minut. Interfejs wiersza poleceń wyświetla adres URL strony internetowej, aby uzyskać dostęp do interfejsu w przeglądarce. Domyślny adres URL to localhost:8000. W razie potrzeby możesz zmienić domyślny port podczas uruchamiania za pomocą parametru --port.

Jeśli jest dostępna nowsza wersja, możesz ją zaktualizować. Najnowsze wersje znajdziesz w informacjach o wersji.

Aby zaktualizować do bieżącej wersji, uruchom:

mtt start --force_update

Aby zatrzymać aplikację, uruchom:

mtt stop

Aby wyświetlić listę innych poleceń, użyj:

mtt --help

Tworzenie kopii zapasowej bazy danych i jej przywracanie

Aby utworzyć kopię zapasową bazy danych OmniLab ATS, zatrzymaj aplikację i uruchom to polecenie, które utworzy kopię zapasową bieżącej bazy danych w pliku TAR o nazwie mtt-backup.tar w katalogu głównym:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."

Aby przywrócić, uruchom to polecenie przed uruchomieniem aplikacji:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"

Kreator konfiguracji

Po zainstalowaniu i uruchomieniu OmniLab ATS po raz pierwszy kreator konfiguracji przeprowadzi Cię przez kilka kroków, aby pomóc Ci dostosować narzędzie do Twojego środowiska. Wprowadzone tutaj zmiany można później zmienić na stronie Ustawienia.

Przywracanie kopii zapasowej konfiguracji

Jeśli masz kopię zapasową pliku konfiguracyjnego z innego hosta OmniLab ATS, możesz przesłać ten plik, aby skopiować zmodyfikowane konfiguracje z tego hosta. Aby to zrobić, kliknij przycisk Prześlij plik.

Przywracanie kopii zapasowej konfiguracji

Rysunek 1. Przywracanie kopii zapasowej konfiguracji.

Ustawianie domyślnego konta usługi

Możesz skonfigurować konto usługi, którego OmniLab ATS używa domyślnie podczas uzyskiwania dostępu do Twoich zasobów (np. Google Cloud Storage czy Dysku Google). Aby uwierzytelnić konto usługi, kliknij Prześlij klucz konta usługi i wybierz plik klucza JSON swojego konta usługi.

Ustaw konto usługi

Rysunek 2. Konfiguruję konto usługi.

Gdy uwierzytelnianie konta usługi zakończy się pomyślnie, w prawym górnym rogu strony pojawi się adres e-mail tego konta. Aby zmienić konto usługi, kliknij nazwę konta, usuń bieżące domyślne konto i prześlij nowy klucz konta usługi.

Zmień konto usługi

Rysunek 3. Zmieniam konto usługi.

Importowanie zestawów konfiguracji

Zestaw konfiguracji to pakiet konfiguracji do uruchamiania zestawów testów, w tym powiązanych działań na urządzeniu i kanałów kompilacji. Zbiory konfiguracji są hostowane w określonym zasobniku Google Cloud Storage (GCS). Po uwierzytelnieniu kanału kompilacji GCS za pomocą konta Google zobaczysz listę wszystkich dostępnych zestawów konfiguracji.

Wybierz zestawy konfiguracji, które chcesz dodać do hosta stacji testowej, i kliknij Importuj wybrane.

Importowanie zbiorów konfiguracji

Rysunek 4. Importowanie zestawu konfiguracji.

Uwzględnij ustawienia Wi-Fi

Niektóre testy CTS wymagają połączenia urządzenia z hotspotem Wi-Fi. Aby wybrać sieć Wi-Fi, wpisz identyfikator SSID sieci Wi-Fi i opcjonalnie klucz PSK sieci Wi-Fi.

Ustawienia Wi-Fi

Rysunek 5. Ustawienia hotspotu Wi-Fi.

Po zakończeniu pracy kreatora konfiguracji strona zostanie ponownie załadowana z nowymi ustawieniami.

Połącz urządzenie

Aby móc używać urządzenia do testowania, musisz włączyć debugowanie USB. Aby włączyć debugowanie:

  1. Postępuj zgodnie z instrukcjami w sekcji Włączanie opcji programisty i debugowania.

  2. Jeśli zamierzasz używać testowych kompilacji Androida wstępnie załadowanych niestandardowymi kluczami ADB, umieść niestandardowe pliki .adb_key w katalogu ~/.android/.

    Pliki są wczytywane automatycznie i przekazywane do ADB, aby automatycznie włączyć debugowanie przez USB po przeflashowaniu urządzenia.

  3. Podłącz urządzenie do komputera-gospodarza za pomocą kabla USB.

    Urządzenie pojawi się na karcie Urządzenia ATS w OmniLab w ciągu minuty od odświeżenia interfejsu internetowego. Na tej karcie możesz też sprawdzić stan urządzeń.

    Łączenie urządzenia

    Rysunek 6. Podłączam urządzenie.

Różne stany urządzenia:

  • Dostępny – urządzenie jest połączone i gotowe do przeprowadzenia testu.
  • Wydzielone – urządzenie jest połączone i przeprowadza test. Na każdym urządzeniu można uruchomić tylko jeden test w danym momencie, więc przed uruchomieniem nowego musi zakończyć bieżący test.

Rozpoczynanie testowania

Wybieranie testu

OmniLab ATS jest dostarczany z zestawem wstępnie skonfigurowanych konfiguracji CTS. Aby uruchomić jeden z tych testów, kliknij kartę Zestawy testów i wybierz test, a następnie kliknij Uruchom test.

Wybieranie testu

Rysunek 7. Wybieranie testu

Aby edytować lub dodawać nowe testy, zapoznaj się z artykułem Dodawanie testów.

Konfigurowanie testu

Edytuj parametry, których chcesz użyć na potrzeby tego konkretnego uruchomienia testu. Większość parametrów jest wstępnie wypełniona wartościami zdefiniowanymi w wybranej konfiguracji testu.

Możesz użyć domyślnych wartości, ale możesz też zmienić dowolny z parametrów, np. Maks. liczbę próbPolecenie, aby dostosować je do swoich potrzeb.

.

Konfigurowanie testu

Rysunek 8. Konfiguruję uruchomienie testowe.

Parametry testu to:

  • Nazwa – nazwa zestawu testów, który chcesz uruchomić.
  • Liczba uruchomień – liczba uruchomień tego testu w ramach harmonogramu. Testy są planowane za pomocą Federacji handlowej, która przeprowadza do 20 testów równolegle, jeśli pozwala na to dostępna moc obliczeniowa.
  • Maks. powtórzeń – maksymalna liczba prób ponownego uruchomienia testu, jeśli co najmniej 1 test się nie powiedzie. Zwykle jest to ustawione na 4–6 powtórzeń w przypadku pełnego uruchomienia CTS, aby obsłużyć niestabilne testy.
  • Limit czasu kolejki – jeśli test pozostaje zbyt długo w stanie W kolejce, zostaje automatycznie anulowany. Tutaj określ czas oczekiwania przed anulowaniem. Domyślnie jest to 24 godziny.
  • Polecenie – polecenie do uruchamiania zestawu testów. Tutaj możesz wpisać dodatkowe argumenty wiersza poleceń. Na przykład uruchom w interfejsie CTS 8.1 określony moduł z:

    cts-suite -m ShortModuleName
    
  • Polecenie ponownej próby – polecenie do ponawiania próby w zestawie testowym. Tutaj możesz dodać dodatkowe argumenty wiersza poleceń. Aby na przykład ponownie przetestować tylko konkretny moduł w CTS 8.1, użyj:

    cts --retry 0 -m ShortModuleName
    

    Argumenty ponownego próbowania mogą się różnić od tych dostępnych w pierwotnym poleceniu. Sprawdź obsługiwane parametry na oficjalnej stronie wybranego zestawu testów.

  • Poprzednie test – jeśli chcesz ponownie przeprowadzić poprzedni test:

    • Lokalny – jeśli test został uruchomiony na bieżącym hoście, wpisz identyfikator testu widoczny podczas wyświetlania szczegółów testu.

      Poprzedni lokalny test

      Rysunek 9. Lokalny poprzedni test.

    • Zdalne – jeśli uruchomiono test na innym hoście, prześlij plik z wynikami testu. Aby to zrobić, kliknij Zdalne, a następnie Prześlij plik z wynikami testu i wybierz plik z pamięci lokalnej.

      Poprzednie zdalne uruchomienie testowe

      Rysunek 10. Poprzednie zdalne uruchomienie testowe.

Wybierz urządzenia

Kliknij pola wyboru, aby wybrać urządzenia, które chcesz przydzielić do uruchamiania pakietu testów. Liczba fragmentów powinna się automatycznie zmieniać, aby odpowiadać liczbie wybranych urządzeń.

Wybierz urządzenia

Rysunek 11. Wybieranie urządzeń

Aby wybrać urządzenia według atrybutów innych niż numery seryjne, możesz ręcznie wpisać „Specyfikacje urządzeń”. Aby na przykład wybrać 3 urządzenia o nazwie „bramble”, wpisz:

product:bramble;product:bramble;product:bramble

Obsługiwane atrybuty:

  • build_id
  • numer_seryjny urządzenia
  • device_type,
  • nazwa hosta
  • Produkt
  • product_variant
  • sim_state

Aby można było wykonać test, wszystkie wybrane urządzenia muszą być w stanie Dostępne. Po wykonaniu testu wszystkie przechodzą w stan Wydzielone. Uruchomienie testu znajduje się w stanie Queued (w kolejce) podczas oczekiwania na dostępność urządzeń.

Dodawanie działań na urządzeniu

Działania na urządzeniu to skrypty, które można uruchomić przed każdym testem. Niektóre działania na urządzeniu są już skonfigurowane, np. flashowanie i restartowanie. Aby utworzyć nowe działania urządzenia, zapoznaj się z artykułem Tworzenie nowych działań urządzenia.

Czynności na urządzeniu

Rysunek 12. Działania na urządzeniu.

Aby dodać działanie urządzenia do testu, kliknij Dodaj nowe działanie, zaznacz pola wyboru działań, które chcesz dodać, i kliknij Dodaj działania. Działania na urządzeniu są wykonywane sekwencyjnie. Możesz zmieniać kolejność działań, przeciągając je.

Dodawanie działań

Rysunek 13. Zmiana kolejności działań.

Konfigurowanie zasobów testowych

Zasoby testowe to pliki wymagane do wykonania testu. Na przykład uruchomienie CTS wymaga pliku android-cts*.zip, a przeflashowanie urządzenia wymaga podania obrazu kompilacji.

Adres URL pobierania pliku ZIP pakietu testowego powinien domyślnie zawierać linki do Dysku Google udostępniane partnerom. Możesz wybrać inny plik, klikając Przeglądaj. W wyskakującym okienku możesz podać link do pobrania pliku, użyć pliku z uwierzytelnionego kanału kompilacji lub przesłać plik do użycia z pamięci lokalnej.

Zasoby testowe

Rysunek 14. Zasoby testowe.

Poniżej znajduje się wyskakujące okienko do wybierania zasobu testowego według adresu URL strony internetowej. Możesz wpisać link z adresem URL pobierania i kliknąć przycisk Wybierz, aby potwierdzić wybór.

Testowanie selektora zasobów – adres URL w internecie

Rysunek 15. Wybór zasobu testowego – adres URL strony internetowej.

Jeśli masz zapisane zasoby w Google Grive, Google Cloud Storage (GCS) lub innych kanałach, możesz przejść na kartę konkretnego kanału i tam wybrać zasoby. Oto przykład wyboru zasobu z Dysku Google.

Testowanie funkcji Wybór zasobów – Dysk Google

Rysunek 16. Testowanie selektora zasobów – Dysk Google.

Oprócz możliwości wyboru plików w polu Nazwa pliku obsługiwane są też symbole wieloznaczne. Dokumentację znajdziesz tutaj.

Test selektora zasobów – obsługa wzorca z symbolem wieloznacznym

Rysunek 17. Test Resource Selector – obsługa wzorca z symbolem wieloznacznym.

Możesz też wybrać plik z lokalnego magazynu plików OmniLab ATS. Możesz przesyłać pliki do tego magazynu lub bezpośrednio korzystać z lokalnych plików i katalogów.

Testowanie selektora zasobów – lokalny magazyn plików

Rysunek 18. Testowanie selektora zasobów – lokalny magazyn plików.

Dodawanie konfiguracji ponownego odtwarzania

Możesz zaplanować ponowne uruchomienia, które rozpoczynają się po zakończeniu głównego uruchomienia i wczytają jego wyniki, ale mogą używać innych urządzeń, działań lub zasobów.

Dodawanie konfiguracji ponownego uruchomienia

Rysunek 19. Dodawanie konfiguracji ponownego uruchomienia.

Rozpoczynanie testu

Po wpisaniu informacji potrzebnych do przeprowadzenia testu kliknij Rozpocznij test. Jeśli wszystkie informacje są prawidłowe, test zostanie uruchomiony, a Ty zostaniesz przekierowany na stronę z szczegółami i postępem testu.

Rozpocznij test

Rysunek 20. Rozpoczynanie testu.

Tworzenie planu testów

Plany testów służą do tworzenia cyklicznych testów. Na przykład: uruchamianie CTS 9.0 codziennie o 17:00. Aby utworzyć nowy plan testów, kliknij Utwórz nowy plan testów.

Tworzenie planu testów

Rysunek 21. Tworzenie planu testów.

Skonfiguruj plan testów

Wpisz nazwę planu testu i ewentualne etykiety, które chcesz dodać. Potem wybierz harmonogram, którego chcesz użyć.

  • Ręcznie – plan testowy tworzy testy tylko wtedy, gdy użytkownik kliknie Uruchom plan testowy na stronie listy planów testowych.
  • Cykliczne – plan testu automatycznie planuje testy zgodnie z wybranym harmonogramem okresowym. Możesz na przykład zaplanować testowanie codziennie o 17:00.
  • Niestandardowy – plan testu automatycznie planuje uruchomienia testów na podstawie wprowadzonego wyrażenia cron. Na przykład, aby zaplanować testowe uruchomienie codziennie o 17:00, wyrażenie cron to: 0 17 * * *.

Konfigurowanie planu testów

Rysunek 22. Konfigurowanie subskrypcji testowej.

Dodawanie zestawów testów

Aby dodać pakiety testów, które mają być zaplanowane przez plan testów, kliknij + Dodaj konfigurację testu. Wybierz pakiet testowy w menu Nazwa i kliknij Następny krok. Następnie wybierz urządzenia, na których chcesz przeprowadzić test, i kliknij Dodaj konfigurację. Do każdego planu testów możesz dodać wiele konfiguracji.

Konfigurowanie testu

Rysunek 23. Konfigurowanie testu.

Dodawanie działań na urządzeniu

Dodaj działania na urządzeniu, które mają być wykonywane przed każdym uruchomieniem testu. Więcej informacji znajdziesz w artykule Dodawanie działań na urządzeniu.

Dodawanie działań na urządzeniu

Rysunek 24. Dodawanie działań na urządzeniu.

Konfigurowanie zasobów testowych

Dodawanie zasobów testowych do planów testów odbywa się w taki sam sposób jak dodawanie ich do poszczególnych testów. Więcej informacji znajdziesz w artykule Konfigurowanie zasobów testowych.

Ustaw zasoby testowe

Rysunek 25. Konfiguruję zasoby testowe.

Wyświetl uruchomienia testowe

Lista testów

Na stronie Testy możesz wyświetlić listę zaplanowanych testów. Kliknij Wyświetl, aby zobaczyć więcej szczegółów dotyczących testu.

Listę możesz też filtrować, wpisując ciąg znaków na pasku filtrowania i naciskając klawisz Enter. Możesz użyć wielu filtrów, rozdzielając je przecinkami. Filtr zwraca wszystkie wiersze, które zawierają dokładnie taki sam tekst (bez dopasowania podciągu) w dowolnej kolumnie, z wyjątkiem kolumn StanUtworzono.

Pusty filtr zwraca wszystkie wiersze. Obecnie nie można filtrować wierszy z pustymi wartościami.

Lista testów

Rysunek 26. Lista testów.

Szczegóły uruchomienia

Możesz tutaj wyświetlić szczegóły uruchomienia testu, takie jak stan, logi i wyniki.

Szczegóły uruchomienia testu

Rysunek 27. Szczegóły uruchomienia testu.

Stan wykonania testu

Postęp testu jest widoczny w sekcji Stan. Tutaj też jest widoczny powiązany komunikat, np. o postępie pobierania, przyczyna anulowania lub komunikat o błędzie.

Stan uruchomienia testowego

Rysunek 28. Stan uruchomienia testowego.

Stany wykonania testu:

  • Oczekuje – wymagane zasoby są pobierane.
  • W kolejce – test jest gotowy do uruchomienia, gdy urządzenie stanie się dostępne.
  • W toku – test jest wykonywany na przypisanym urządzeniu.
  • Zakończony – test został ukończony i opublikowano jego wyniki.
  • Anulowano – test został anulowany przez użytkownika lub przekroczono limit czasu podczas próby znalezienia dostępnych urządzeń.
  • Błąd – wystąpił błąd, który uniemożliwił przeprowadzenie testu.

Anulowanie uruchomienia testu

Jeśli test nie został ukończony, możesz go anulować, klikając Anuluj, a następnie klikając Tak w oknie potwierdzenia. Testy są też automatycznie anulowane, jeśli pozostają w stanie W kole dłużej niż czas określony w polu queue_timeout_seconds. Anulowanie testu w stanie W trakcie wykonywania może potrwać kilka minut.

Anulowanie uruchomienia testu

Rysunek 29. Anulowanie testu.

Wyniki testu

Po zakończeniu testu wyniki są zbierane i wyświetlane. Aby wyświetlić dodatkowe szczegóły, kliknij strzałkę obok każdego uruchomienia. Kliknij Wyświetl pliki wyjściowe, aby zobaczyć zebrane artefakty testowe, takie jak test_result.xmltest_result_failures.html.

Wyniki testu

Rysunek 30. Wyniki uruchomienia testowego.

Logi hosta i Tradefed możesz wyświetlać na karcie Logi.

Logi testów

Rysunek 31. Karta Logi.

Wyniki poszczególnych modułów znajdują się na karcie Wyniki testu.

Karta Wyniki testu

Rysunek 32. Karta Wyniki testu.

Pliki używane jako zasoby testowe możesz pobrać, klikając Otwórz na karcie Zasoby testowe.

Karta Testowanie zasobów

Rysunek 33. Karta Zasoby testowe.

Aby wyświetlić szczegóły testu, np. create_time, kliknij kartę Konfiguracja.

Karta Konfiguracja testu

Rysunek 34. Karta Konfiguracja.

Funkcje zaawansowane

Zarządzanie plikami konfiguracji

OmniLab ATS używa plików konfiguracji zapisanych w formacie YAML do wczytywania wstępnie zdefiniowanych opcji, takich jak testy, kanały kompilacji i działania urządzenia. Oto przykładowy plik konfiguracji:

// example_file.yaml
tests:
- id : android.cts.9_0.arm
  name: CTS 9.0 (ARM)
  test_resource_defs:
  - name: android-cts.zip
    default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
    test_resource_type: TEST_PACKAGE
  command: cts
  env_vars:
  - name: TF_PATH
    value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
  - name: LD_LIBRARY_PATH
    value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
  setup_scripts:
  output_file_patterns:
  - android-cts/logs/latest/.*
  - android-cts/results/latest/.*\.html
  - android-cts/results/latest/compatibility_result\..*
  - android-cts/results/latest/logo.png
  - android-cts/results/latest/test_result.xml
  result_file: test_result.xml
  java_properties:
  - name: CTS_ROOT
    value: ${TF_WORK_DIR}
  context_file_dir: android-cts/results/
  context_file_pattern: '[\d_\.]+\.zip'
  retry_command_line: retry --retry 0
  runner_sharding_args: --shard-count ${TF_SHARD_COUNT}

build_channels:
- id: google_drive
  name: Google Drive
  provider_name: Google Drive

device_actions:
- id: flash
  name: Flash
  test_resource_defs:
  - name: bootloader.img
    test_resource_type: DEVICE_IMAGE
  - name: radio.img
    test_resource_type: DEVICE_IMAGE
  - name: img.zip
    test_resource_type: DEVICE_IMAGE
  tradefed_target_preparers:
  - class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
    option_values:
    - name: work-dir
      values:
      - ${TF_WORK_DIR}
    - name: host-setup-command
      values:
      - adb -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL flash bootloader bootloader.img
      - fastboot -s $SERIAL flash radio radio.img
      - fastboot -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL -w update img.zip
      - adb -s $SERIAL wait-for-device
    - name: host-cmd-timeout
      values:
      - 10m

Po skonfigurowaniu instancji OmniLab ATS możesz udostępnić swoją konfigurację innym użytkownikom, eksportując ją jako plik. Aby to zrobić, otwórz stronę Ustawienia i w prawym górnym rogu kliknij Eksportuj.

Zarządzanie plikami konfiguracji

Rysunek 35. zarządzanie plikiem konfiguracji.

Po pobraniu pliku konfiguracji udostępnij go innym użytkownikom. Może dodać plik konfiguracji do instancji OmniLab ATS, klikając Importuj i wybierając plik konfiguracji.

Tworzenie nowego działania urządzenia

Działania na urządzeniu służą do automatyzacji procesu konfiguracji urządzenia. Działania to skrypty wykonywane na każdym urządzeniu, na którym test jest uruchamiany przed każdym uruchomieniem testu, w tym przed ponownymi próbami. Aby wyświetlić listę dostępnych działań na urządzeniu, przejdź na stronę Ustawienia i kliknij kartę Działania na urządzeniu. Niektóre czynności dotyczące urządzenia są już skonfigurowane, np. restartowanie i flashowanie.

Karta Działania dotyczące urządzenia

Rysunek 36. Karta Działania na urządzeniu.

Dodawanie nowego działania urządzenia

  1. Kliknij Nowe działanie na urządzeniu.

    Nowy przycisk działania urządzenia

    Rysunek 37. Przycisk działania dotyczącego nowego urządzenia.

  2. Wpisz nazwę i opis.

    Nazwa działania urządzenia

    Rysunek 38. Nazwa działania urządzenia.

  3. Kliknij Dodaj osobę przygotowującą cel.

  4. Wpisz pełną nazwę klasy docelowej Federacji Handlu, na przykład com.android.tradefed.targetprep.RunHostCommandTargetPreparer.

    Dodawanie narzędzia do przygotowywania celów

    Rysunek 39. Dodawanie docelowego usługodawcy.

    Listę dostępnych narzędzi do przygotowywania ustawień kierowania znajdziesz w dokumencie com.android.tradefed.targetprep.

    Lista autorów docelowych

    Rysunek 40. Lista docelowych przygotowujących.

  5. Dodaj opcje do użycia z celem. Aby wyświetlić dostępne opcje, sprawdź targetprep w przypadku kodu źródłowego dla każdego narzędzia do przygotowywania danych docelowych w AOSP:

    Przykład opcji działania

    Rysunek 41. Przykład opcji działania

  6. Aby dodać opcję, kliknij Dodaj opcję dla przygotowującego dane i wpisz wymagane wartości.

    Przykład polecenia działania

    Rysunek 42. Przykład polecenia działania

  7. Określ zasoby testowe wymagane do wykonania działania na urządzeniu, np. kompiluj obrazy do flashowania. Aby dodać definicję zasobu, kliknij Dodaj zasób testowy i wypełnij wymagane pola. Jeśli wiesz, gdzie znajdują się Twoje pliki, możesz podać domyślny adres URL pobierania, klikając Przeglądaj. Jeśli autorzy docelowego pliku z danymi akceptują katalog jako zasób testowy, wybierz Rozpakuj. Następnie określ względny katalog Docelowy w tymczasowym katalogu roboczym oraz nazwy plików, które mają zostać rozpakowane. Jeśli nie podasz nazw plików, z zasobu testowego zostaną zdekompresowane wszystkie pliki.

    Zasoby do testów działań

    Rysunek 43. Zasoby testów działania.

  8. Kliknij Aktualizuj.

    Akcja Zapisz zmiany

    Rysunek 44. Działanie zapisywania zmian.

Zarządzanie testami

Edytowanie testu

Aby edytować zapisany test, otwórz stronę Testy i w wierszu testu, który chcesz zmodyfikować, kliknij Edytuj. Po zmianie konfiguracji testu kliknij Zaktualizuj.

Edytowanie testu

Rysunek 45. Edytujesz test.

Dodawanie nowego testu

Aby dodać nowy test, otwórz stronę Testy i kliknij Utwórz nowy test. Wpisz odpowiednie informacje i kliknij Utwórz.

Tworzenie testu

Rysunek 46. Tworzę test.

Kopiowanie testu

Rysunek 47. Kopiowanie testu.

Eksportowanie konfiguracji hosta

Po skonfigurowaniu hosta możesz wyeksportować jego konfigurację do pliku. Aby skopiować zapisane konfiguracje, możesz przesłać ten plik na inne hosty.

Aby wyeksportować konfigurację hosta, otwórz stronę Ustawienia i w prawym górnym rogu kliknij Eksportuj.

Eksportowanie konfiguracji hosta

Rysunek 48. Eksportuję konfigurację hosta.

Aby zaimportować plik konfiguracji hosta, otwórz stronę Ustawienia i w prawym górnym rogu kliknij Importuj.

Importowanie konfiguracji hostów

Rysunek 49. Importowanie konfiguracji hosta.

Korzystanie z plików i katalogów lokalnych

Od wersji R11 pliki w katalogu $HOME/.ats_storage są automatycznie dostępne w OmniLab ATS. Skopiuj lub przenieś plik do tego katalogu, a potem wybierz go na karcie Plik lokalny podczas planowania wykonania testu.

cp /path/to/file $HOME/.ats_storage

Wybieranie pliku lokalnego

Rysunek 50. Wybieranie pliku z katalogu $HOME/.ats_storage.

Możesz podłączyć dodatkowe katalogi do lokalnego magazynu plików za pomocą flagi --mount_local_path.

mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2

Dodatkowe katalogi zamontowane

Rysunek 51. dodatkowe katalogi zamontowane w lokalnym magazynie plików.

Włączanie trybu wielu hostów

W trybie wielu hostów użytkownicy mogą używać jednego hosta kontrolera ATS do zarządzania urządzeniami i testami na wielu hostach wykonawców ATS.

Architektura trybu wielu hostów

Rysunek 52. Architektura w trybie wielu hostów.

  1. Aby uruchomić kontroler ATS, użyj tego polecenia:

    mtt start --operation_mode=ON_PREMISE
    
  2. Sprawdź, czy kontroler jest dostępny pod adresem http://${CONTROLLER_HOSTNAME}:8000.

  3. Aby uruchomić procesy robocze, użyj tego polecenia:

    mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
    

Jeśli Twoja sieć nie zezwala hostom na komunikację ze sobą, musisz wykonać podane niżej instrukcje bardziej zaawansowanej konfiguracji dla pracownika ATS.

  1. Połącz te 2 hosty za pomocą tuneli SSH. Wybierz porty dla serwera głównego i serwera plików, np. 9000 i 9006.

    ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
    
  2. Skonfiguruj i uruchom ATS.

    DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
    socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
    socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
    mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \
                    --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \
                    --operation_mode=ON_PREMISE
    

Narzędzie do czyszczenia plików

Czyścik plików to zadanie crona, które jest wykonywane co godzinę w celu wyczyszczenia plików na podstawie konfiguracji zdefiniowanych przez użytkownika. ATS ma 2 domyślne konfiguracje do archiwizowania wyników testu i usuwania plików tymczasowych. Z tego przewodnika dowiesz się, jak dostosować zasady i konfiguracje, aby skutecznie zarządzać plikami.

Zasady

Zasada określa operację, która ma być wykonywana na plikach lub katalogach, oraz kryteria wyboru elementów docelowych. Dostępne operacje są widoczne w tabeli:

Typ operacjiParametry
ARCHIVEremove_file: jeśli true, usuń plik po zarchiwizowaniu.
DELETE

Kryteria są oparte na atrybutach pliku i informacjach o systemie. Dostępne kryteria są widoczne w tabeli:

Typ kryteriumOpisParametry
LAST_MODIFIED_TIMEFiltruj pliki według daty i godziny ostatniej modyfikacji.ttl: obsługiwane są różne rodzaje wyrażeń czasu, np. 10m, 2h, 7 days, 4w. Listę obsługiwanych formatów znajdziesz na pytimeparse.
LAST_ACCESS_TIMEFiltruj pliki według daty i godziny ostatniego dostępu.Taki sam jak LAST_MODIFIED_TIME.
NAME_MATCHOdfiltruj pliki na podstawie ich nazwy, korzystając z wyrażeń regularnych.pattern: wyrażenie regularne, np. [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip, do dopasowywania plików ZIP z wynikami.
SYSTEM_AVAILABLE_SPACEuruchamiać działania na podstawie dostępnej przestrzeni w systemie.threshold: wywołaj działanie, gdy dostępne miejsce spadnie poniżej progu, np. 200(B), 200KB, 200MB, 200GB, 2TB.

Nowa zasada czyszczenia plików

Rysunek 53. Dodaj nową zasadę czyszczenia plików.

Konfiguracje

Konfiguracja łączy co najmniej 1 zasadę z określonymi katalogami. Pliki i katalogi w określonych katalogach są przetwarzane zgodnie z zdefiniowanymi zasadami. Zasady są stosowane w kolejności, w jakiej występują w konfiguracji.

Wszystkie katalogi docelowe muszą się znajdować w katalogu /data. Jeśli w Twojej konfiguracji katalog docelowy jest określony jako logs, będzie on interpretowany jako /data/logs.

Edytuj konfigurację narzędzia do czyszczenia plików

Rysunek 54. Edytuj konfigurację narzędzia do czyszczenia plików.

Resetuj

Kliknięcie Resetuj ustawienia przywraca konfigurację narzędzia do czyszczenia plików do stanu domyślnego. To działanie powoduje usunięcie WSZYSTKICH elementów niestandardowych.

Resetowanie ustawień programu do czyszczenia plików

Rysunek 55. Zresetuj ustawienia czyszczenia plików.

Pomoc

Raporty o błędach

Twój wkład w rozwój OmniLab ATS pomaga nam ulepszać to narzędzie, dlatego chcemy poznać Twoją opinię. Szczegółowe informacje o najnowszej wersji znajdziesz w informacjach o wersji OmniLab ATS. Aby zgłosić błędy lub zaproponować sugestie, prześlij raport o błędach. Partnerzy powinni zgłaszać błędy lub sugestie za pomocą kanałów partnerskich.