OmniLab Android Test Station

OmniLab ATS to narzędzie testowe, z którego mogą korzystać deweloperzy i inżynierowie testów aplikacji na Androida. Umożliwia ono używanie interfejsu do uruchamiania standardowych pakietów testowych Androida, takich jak Android Compatibility Test Suite (CTS). To narzędzie działa jako interfejs internetowy dla różnych platform testowych, takich jak Trade Federation (TF)Google Mobly. Umożliwia ono przeprowadzanie testów CTS i testów na wielu urządzeniach na zestawie urządzeń testowych przy minimalnej konfiguracji, a także ustalanie harmonogramu ciągłego przeprowadzania testów.

Konfigurowanie OmniLab ATS

W tej sekcji opisujemy, jak zainstalować i skonfigurować OmniLab ATS.

OmniLab ATS korzysta z kodu źródłowego z tych lokalizacji:

Instalowanie OmniLab ATS

Spełniaj wymagania sprzętowe i programowe dotyczące uruchamianych pakietów testów.

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

W przypadku OmniLab ATS nie ma dodatkowych wymagań sprzętowych, ale zalecamy rozpoczęcie od wymagań dotyczących hosta CTS.

OmniLab ATS można zainstalować na 2 sposoby:

Instalowanie za pomocą programu instalacyjnego

W systemie Ubuntu 20.04 lub nowszym program instalacyjny instaluje i konfiguruje wszystkie programy i zasoby potrzebne do uruchomienia OmniLab ATS.

Aby użyć programu instalacyjnego:

  1. Uruchom program instalacyjny:

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

Instalacja ręczna

Instalowanie Dockera
  1. Postępuj zgodnie z instrukcjami instalacji programu Docker Community Edition (CE) na komputerze z systemem Linux.

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

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

Instalowanie Pythona 3

Wiersz poleceń OmniLab ATS jest weryfikowany w przypadku Pythona w wersjach od 3.7 do 3.11.

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

  • Uruchom to polecenie:

    sudo add-apt-repository ppa:deadsnakes/ppa
    
  • Skompiluj i zainstaluj repozytorium na podstawie ź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 te polecenia:

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

Pobieranie interfejsu wiersza poleceń OmniLab ATS

Pakiet interfejsu wiersza poleceń (CLI) możesz pobrać tutaj

Uruchomienie OmniLab ATS

Uruchom OmniLab ATS za pomocą tego polecenia:

mtt start

Przy pierwszym uruchomieniu interfejsu może minąć kilka minut, zanim się pojawi. Interfejs wiersza poleceń wyświetla adres URL, który umożliwia 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ą flagi --port.

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

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

mtt start --force_update

Aby zatrzymać aplikację, wpisz:

mtt stop

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

mtt --help

Tworzenie i przywracanie kopii zapasowej bazy danych

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 domowym:

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ć dane, przed uruchomieniem aplikacji wpisz to polecenie:

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 pierwszym uruchomieniu OmniLab ATS Kreator konfiguracji przeprowadzi Cię przez kilka kroków, które pomogą dostosować narzędzie do Twojego środowiska. Wszelkie zmiany wprowadzone w tym miejscu możesz później ponownie skonfigurować na stronie Ustawienia.

Przywracanie kopii zapasowej konfiguracji

Jeśli masz plik konfiguracyjny z kopią zapasową z innego hosta OmniLab ATS, możesz przesłać plik, aby skopiować wszelkie konfiguracje zmodyfikowane na tym hoście. W tym celu kliknij przycisk Prześlij plik.

Przywracanie kopii zapasowej konfiguracji

Rysunek 1. Przywracanie kopii zapasowej konfiguracji.

Ustawianie domyślnego konta usługi

Możesz ustawić konto usługi, z którego OmniLab ATS będzie domyślnie korzystać podczas uzyskiwania dostępu do Twoich zasobów (np. Google Cloud Storage, Dysk Google). Aby uwierzytelnić konto usługi, kliknij Prześlij klucz konta usługi i wybierz plik JSON z kluczem konta usługi.

Ustaw konto usługi

Rysunek 2. Ustawianie konta usługi.

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

Zmiana konta usługi

Rysunek 3. zmiana konta 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. Zestawy 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 zestawó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 opcjonalny 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 używać urządzenia do testowania, musisz włączyć debugowanie USB. Aby włączyć debugowanie:

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

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

    Pliki są ładowane automatycznie i przekazywane do ADB, aby automatycznie włączyć debugowanie USB po flashowaniu urządzenia z tymi kompilacjami.

  3. Połącz urządzenie z maszyną hosta za pomocą USB.

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

    Połącz urządzenie

    Rysunek 6. Łączenie urządzenia.

Możliwe stany urządzenia:

  • Dostępne – urządzenie jest połączone i gotowe do przeprowadzenia testu.
  • Przydzielono – urządzenie jest połączone i przeprowadza test. Każde urządzenie może przeprowadzać tylko 1 test naraz, więc musi zakończyć bieżący test, zanim uruchomi nowy.

Rozpoczynanie testowania

Wybierz test

OmniLab ATS zawiera zestaw wstępnie skonfigurowanych ustawień CTS. Aby uruchomić jeden z tych testów, otwórz kartę Zestawy testów i kliknij Uruchom test przy wybranym teście.

Wybierz test

Rysunek 7. Wybór testu.

Aby edytować lub dodawać nowe testy, przeczytaj artykuł Dodawanie testów.

Konfigurowanie testu

Edytuj parametry, których chcesz użyć w tym konkretnym uruchomieniu testu. Większość parametrów jest wstępnie wypełniona wartościami zdefiniowanymi w wybranej konfiguracji testu.

Ten krok można wykonać, używając wartości domyślnych, ale możesz zmienić dowolny z parametrów, np. Max Retry (Maksymalna liczba ponownych prób) i Command (Polecenie), aby dostosować je do swoich potrzeb.

Konfigurowanie testu

Rysunek 8. Konfigurowanie testu.

Parametry testu to:

  • Nazwa – nazwa zestawu testów, który chcesz uruchomić.
  • Liczba uruchomień – liczba uruchomień tego testu po zaplanowaniu. Uruchomienia testów są planowane za pomocą Trade Federation, która może uruchamiać równolegle do 20 testów, jeśli jest taka możliwość.
  • Max Retry – maksymalna liczba ponownych prób uruchomienia testu, jeśli co najmniej 1 test zakończy się niepowodzeniem. Zwykle ustawia się 4–6 ponownych prób pełnego uruchomienia CTS, aby poradzić sobie z niestabilnymi testami.
  • Przekroczenie limitu czasu w kolejce – jeśli test pozostaje w stanie W kolejce zbyt długo, zostanie automatycznie anulowany. Określ tutaj czas oczekiwania przed anulowaniem. Domyślnie jest to 24 godziny.
  • Polecenie – polecenie uruchamiające zestaw testów. Tutaj możesz wpisać dodatkowe argumenty wiersza poleceń. Na przykład uruchom konkretny moduł w CTS 8.1 za pomocą tego polecenia:

    cts-suite -m ShortModuleName
    
  • Retry Command (Polecenie ponowienia) – polecenie ponowienia wykonania pakietu testów. Tutaj możesz dodać dodatkowe argumenty wiersza poleceń. Aby na przykład ponownie przetestować tylko określony moduł w CTS 8.1, użyj tego polecenia:

    cts --retry 0 -m ShortModuleName
    

    Argumenty ponowienia mogą się różnić od argumentów dostępnych w przypadku polecenia początkowego, dlatego sprawdź obsługiwane parametry na oficjalnej stronie wybranego pakietu testów.

  • Poprzedni test – jeśli chcesz ponownie uruchomić poprzedni test:

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

      Lokalne poprzednie uruchomienie testu

      Rysunek 9. Lokalne poprzednie uruchomienie testu.

    • Zdalnie – jeśli test został uruchomiony na innym hoście, prześlij plik wyników testu, klikając Zdalnie, a potem Prześlij plik wyników testu i wybierając plik z pamięci lokalnej.

      Zdalne uruchomienie poprzedniego testu

      Rysunek 10. Zdalne uruchomienie poprzedniego testu.

Wybierz urządzenia

Zaznacz pola wyboru, aby wybrać urządzenia, na których chcesz uruchomić pakiet testów. Liczba fragmentów powinna się automatycznie zmienić, 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ądzenia”. Aby np. wybrać 3 urządzenia, których nazwa produktu to „bramble”, wpisz:

product:bramble;product:bramble;product:bramble

Obsługiwane atrybuty:

  • build_id
  • device_serial
  • device_type
  • nazwa hosta
  • iloczyn
  • product_variant
  • sim_state

Aby można było uruchomić test, wszystkie wybrane urządzenia muszą być w stanie Dostępne. Po uruchomieniu testu wszystkie urządzenia przejdą w stan Przydzielone. Test jest w stanie W kolejce, gdy czeka na udostępnienie urządzeń.

Dodawanie działań na urządzeniu

Czynności na urządzeniu to skrypty, które można uruchamiać przed każdym testem. Niektóre działania na urządzeniu, takie jak miganie i ponowne uruchamianie, są już skonfigurowane. Aby utworzyć nowe działania na urządzeniu, zapoznaj się z artykułem Tworzenie nowego działania na urządzeniu.

Czynności na urządzeniu

Rysunek 12. Działania na urządzeniu.

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

Dodaj działania

Rysunek 13. zmieniać kolejność działań,

Ustawianie zasobów testowych

Zasoby testowe to pliki wymagane do przeprowadzenia testu. Na przykład uruchomienie testów zgodności wymaga pliku android-cts*.zip, a flashowanie urządzenia wymaga podania obrazu kompilacji.

Adres URL pobierania pliku ZIP pakietu testów powinien domyślnie prowadzić do linków na Dysku Google, które zostały udostępnione partnerom. Możesz wybrać inny plik, klikając przeglądaj. W wyskakującym okienku możesz wpisać link do pobierania pliku, użyć pliku z uwierzytelnionego kanału kompilacji lub przesłać plik z pamięci lokalnej.

Materiały testowe

Rysunek 14. Testowanie zasobów

Poniżej znajduje się wyskakujące okienko do wybierania zasobu testowego za pomocą adresu URL. Możesz wpisać adres URL pobierania i kliknąć przycisk Wybierz, aby potwierdzić wybór.

Testowanie selektora zasobów – adres URL

Rysunek 15. Test Resource Selector - Web URL.

Jeśli masz przesłane zasoby do Google Drive, Google Cloud Storage (GCS) lub innych kanałów, możesz też przejść do karty konkretnego kanału i wybrać tam zasoby. Oto przykład wyboru zasobu z Dysku Google.

Testowanie selektora zasobów – Dysk Google

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

Oprócz wybierania plików w polu Nazwa pliku obsługiwane są też symbole wieloznaczne. Dokumentację znajdziesz tutaj.

Testowanie selektora zasobów – obsługa wzorców z symbolami wieloznacznymi

Rysunek 17. Selektor zasobów testowych – obsługa wzorców z symbolami wieloznacznymi.

Możesz też wybrać plik z lokalnego magazynu plików OmniLab ATS. Możesz przesyłać pliki do tej pamięci lub bezpośrednio używać 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 uruchomienia

Możesz zaplanować ponowne uruchomienia, które rozpoczną się po zakończeniu głównego uruchomienia i wczytają jego wyniki, ale mogą korzystać z innego urządzenia, działań lub zasobów.

Dodawanie konfiguracji ponownego uruchomienia

Rysunek 19. Dodawanie konfiguracji ponownego uruchomienia.

Rozpocznij test

Po wpisaniu informacji potrzebnych do przeprowadzenia testu kliknij Start Test Run (Uruchom test). Jeśli wszystkie informacje są prawidłowe, rozpocznie się test, a Ty zostaniesz przekierowany(-a) na stronę, na której możesz wyświetlić szczegóły i postępy testu.

Rozpocznij test

Rysunek 20. Rozpoczynanie testu.

Tworzenie planu testów

Plany testów służą do tworzenia uruchomień testów zgodnie z harmonogramem okresowym. 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.

Konfigurowanie planu testów

Wpisz nazwę planu testów i wszystkie etykiety, które chcesz dodać. Następnie wybierz harmonogram, którego chcesz użyć.

  • Ręczny – plan testów tworzy przebiegi testów tylko wtedy, gdy użytkownik kliknie Uruchom plan testów na stronie listy planów testów.
  • Okresowy – plan testów automatycznie planuje uruchomienia testów zgodnie z wybranym harmonogramem okresowym. Możesz na przykład zaplanować uruchamianie testu codziennie o 17:00.
  • Niestandardowy – plan testów automatycznie planuje uruchomienia testów na podstawie wpisanego wyrażenia cron. Aby na przykład zaplanować uruchamianie testu codziennie o godzinie 17:00, użyj wyrażenia cron 0 17 * * *.

Konfigurowanie planu testów

Rysunek 22. Konfigurowanie planu testów.

Dodawanie pakietów testów

Dodaj zestawy testów, które mają być objęte harmonogramem planu testów, klikając + Dodaj konfigurację przebiegu testu. Wybierz zestaw testów z 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.

Ustawianie zasobów testowych

Dodawanie zasobów testowych do planów testów jest takie samo jak dodawanie ich do poszczególnych przebiegów testów. Więcej informacji znajdziesz w artykule Ustawianie zasobów testowych.

Ustawianie zasobów testowych

Rysunek 25. Ustawianie zasobów testowych.

Wyświetlanie uruchomień testów

Lista testów

Listę zaplanowanych uruchomień testów znajdziesz na stronie Uruchomienia testów. Kliknij Wyświetl, aby zobaczyć więcej szczegółów dotyczących testu.

Możesz też przefiltrować listę, wpisując ciąg znaków na pasku filtra i naciskając klawisz Enter. Możesz użyć kilku filtrów, oddzielając je przecinkami. Filtr zwraca wszystkie wiersze, które zawierają dokładny tekst (bez dopasowywania podciągów) 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 testu

Tutaj możesz wyświetlić szczegóły testu, takie jak stan, logi i wyniki.

Szczegóły testu

Rysunek 27. Szczegóły testu.

Stan testu

Postęp testu jest widoczny w sekcji Stan. Jeśli jest powiązana wiadomość, np. postęp pobierania, powód anulowania lub komunikat o błędzie, jest ona również wyświetlana w tym miejscu.

Stan testu

Rysunek 28. Stan testu.

Stany testu to:

  • Oczekujące – pobierane są wymagane zasoby.
  • W kolejce – test jest gotowy do uruchomienia, gdy urządzenie będzie dostępne.
  • W toku – test jest przeprowadzany na przydzielonym urządzeniu.
  • Ukończono – test został zakończony i wygenerował 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 testu

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

Anulowanie testu

Rysunek 29. Anulowanie testu.

Wyniki testu

Po zakończeniu testu wyniki są zbierane i wyświetlane. Dodatkowe szczegóły możesz wyświetlić, klikając strzałkę obok każdego uruchomienia. Kliknij View Output Files (Wyświetl pliki wyjściowe), aby zobaczyć zebrane artefakty testowe, takie jak test_result.xmltest_result_failures.html.

Wyniki testu

Rysunek 30. Wyniki testu.

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

Logi testów

Rysunek 31. Karta Dzienniki.

Wyniki poszczególnych modułów znajdziesz na karcie Wyniki testu.

Karta Wyniki testu

Rysunek 32. karta Wyniki testu.

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

Karta Zasoby testowe

Rysunek 33. Karta Zasoby testowe.

Aby wyświetlić szczegóły testu, takie jak create_time, otwórz kartę Konfiguracja.

Karta Konfiguracja testu

Rysunek 34. karta Konfiguracja.

Funkcje zaawansowane

Zarządzanie plikami konfiguracyjnymi

OmniLab ATS używa plików konfiguracyjnych zapisanych w formacie YAML do wczytywania predefiniowanych opcji, takich jak testy, kanały kompilacji i działania na urządzeniach. Oto przykładowy plik konfiguracyjny:

// 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

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

Zarządzanie plikami konfiguracyjnymi

Rysunek 35. zarządzanie plikami konfiguracji,

Po pobraniu pliku konfiguracji udostępnij go innym użytkownikom. Aby dodać plik konfiguracji do instancji OmniLab ATS, może kliknąć Importuj i wybrać plik konfiguracji.

Tworzenie nowego działania na urządzeniu

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 przeprowadzany jest test, przed każdym uruchomieniem testu, w tym przed ponownymi próbami. Aby wyświetlić listę dostępnych działań na urządzeniu, otwórz stronę Ustawienia i kliknij kartę Działania na urządzeniu. Kilka działań na urządzeniu jest już skonfigurowanych, np. ponowne uruchamianie i flashowanie.

Karta Działania na urządzeniu

Rysunek 36. kartę Działania na urządzeniu.

Dodawanie nowego działania urządzenia

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

    Przycisk Nowe działanie urządzenia

    Rysunek 37. Przycisk działania na nowym urządzeniu.

  2. Wpisz nazwę i opis.

    Nazwa działania na urządzeniu

    Rysunek 38. Nazwa działania urządzenia.

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

  4. Wpisz pełną nazwę klasy Trade Federation TargetPreparer, np. com.android.tradefed.targetprep.RunHostCommandTargetPreparer.

    Dodawanie osoby przygotowującej cel

    Rysunek 39. Dodawanie osoby przygotowującej dokumenty.

    Listę dostępnych preparatorów znajdziesz w dokumentacji pakietu com.android.tradefed.targetprep.

    Lista podmiotów przygotowujących dane docelowe

    Rysunek 40. Lista osób przygotowujących dokumenty docelowe.

  5. Dodaj opcje, które mają być używane z przygotowywaniem miejsca docelowego. Aby wyświetlić dostępne opcje, sprawdź targetprep w przypadku kodu źródłowego każdego narzędzia do przygotowywania urządzeń docelowych w AOSP:

    Przykład opcji działania

    Rysunek 41. Przykład opcji działania.

  6. Aby dodać opcję, kliknij Add Target Preparer Option (Dodaj opcję przygotowania miejsca docelowego) i wpisz wymagane wartości.

    Przykład polecenia działania

    Rysunek 42. Przykład polecenia działania.

  7. Określ zasoby testowe potrzebne do wykonania działania na urządzeniu, np. obrazy kompilacji do flashowania. Aby dodać definicję zasobu, kliknij Dodaj zasób testowy i wypełnij wymagane pola. Jeśli wiesz, gdzie znajdują się pliki, możesz podać domyślny adres URL pobierania, klikając Przeglądaj. Jeśli docelowi przygotowujący akceptują katalog jako zasób testowy, kliknij Rozpakuj. Następnie w tymczasowym katalogu roboczym określ względny katalog Destination (Miejsce docelowe) i File Names (Nazwy plików) do rozpakowania. Jeśli nie podasz nazw plików, wszystkie pliki zostaną zdekompresowane z zasobu testowego.

    Materiały do testowania działań

    Rysunek 43. Zasoby testu działania.

  8. Kliknij Aktualizuj.

    Działanie Zapisz zmiany

    Rysunek 44. Zapisz zmiany.

Zarządzanie testami

Edytowanie testu

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

Edytowanie testu

Rysunek 45. Edytowanie testu.

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. Tworzenie testu.

Kopiowanie testu

Rysunek 47. Kopiowanie testu.

Eksportowanie konfiguracji hosta

Po skonfigurowaniu hosta możesz wyeksportować jego konfiguracje do pliku. Możesz przesłać ten plik do innych hostów, aby skopiować zapisane konfiguracje.

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

Eksportowanie konfiguracji hosta

Rysunek 48. Eksportowanie konfiguracji hosta.

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

Importowanie konfiguracji hosta

Rysunek 49. Importowanie konfiguracji hosta.

Używanie lokalnych plików i katalogów

Od wersji R11 pliki w katalogu $HOME/.ats_storage są automatycznie dostępne w OmniLab ATS. Skopiuj lub przenieś plik do tego katalogu, a następnie możesz go wybrać na karcie Plik lokalny podczas planowania testu.

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

Wybieranie pliku lokalnego

Rysunek 50. Wybierz plik z katalogu $HOME/.ats_storage.

Możesz zamontować dodatkowe katalogi w lokalnym sklepie z plikami za pomocą flagi --mount_local_path.

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

Dodatkowe podłączone katalogi

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 roboczych ATS.

Architektura trybu wielu hostów

Rysunek 52. Architektura trybu 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 na stronie 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ć bardziej zaawansowane instrukcje konfiguracji podane poniżej w sekcji dotyczącej procesu ATS.

  1. Połącz oba hosty za pomocą tuneli SSH. Wybierz porty 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
    

Czyszczenie plików

Narzędzie do czyszczenia plików to zadanie cron, które jest uruchamiane co godzinę w celu czyszczenia plików na podstawie konfiguracji zdefiniowanych przez użytkownika. ATS ma 2 domyślne konfiguracje do archiwizowania wyników testów 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 celów. 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. W tabeli wyświetlają się dostępne kryteria:

Typ kryteriumOpisParametry
LAST_MODIFIED_TIMEFiltrowanie plików na podstawie daty i godziny ostatniej modyfikacji.ttl: obsługiwane są różne rodzaje wyrażeń czasowych, np. 10m, 2h, 7 days, 4w. Obsługiwane formaty znajdziesz na stronie pytimeparse.
LAST_ACCESS_TIMEFiltruj pliki według daty i godziny ostatniego dostępu.Takie same jak LAST_MODIFIED_TIME.
NAME_MATCHFiltruj pliki według nazwy za pomocą wyrażenia regularnego.pattern: wyrażenie regularne, np. [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip, aby dopasować kody pocztowe wyników.
SYSTEM_AVAILABLE_SPACEWywołuj działania na podstawie dostępnego miejsca w systemie.threshold: wywołaj działanie, gdy dostępna przestrzeń spadnie poniżej progu, np. 200(B), 200KB, 200MB, 200GB, 2TB.

Nowe zasady dotyczące narzędzi do 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 na podstawie zdefiniowanych zasad. Zasady są stosowane w kolejności, w jakiej występują w konfiguracji.

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

Edytowanie konfiguracji narzędzia do czyszczenia plików

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

Resetuj

Kliknięcie Zresetuj ustawienia przywraca konfigurację narzędzia do czyszczenia plików do stanu domyślnego. Ta czynność usuwa WSZYSTKIE elementy niestandardowe.

Resetowanie ustawień narzędzia do czyszczenia plików

Rysunek 55. Zresetuj ustawienia narzędzia do czyszczenia plików.

Pomoc

Raporty o błędach

Twój wkład w rozwój OmniLab ATS pomoże nam ulepszyć to narzędzie. Zależy nam na Twojej opinii. Szczegółowe informacje o najnowszej wersji znajdziesz w informacjach o wersji OmniLab ATS. Aby zgłosić błędy lub zaproponować nowe funkcje, prześlij raport o błędach. Partnerzy powinni zgłaszać błędy i sugestie za pomocą swoich kanałów partnerskich.