Testy usług telefonicznych ACTS

Android Comms Test Suite (ACTS) służy do automatycznego testowania stosów połączeń, takich jak Wi-Fi, Bluetooth czy usługi komórkowe. Narzędzie do testowania wymaga języków adb i Pythona. To narzędzie znajduje się w folderze tools/test/connectivity/acts.

Na tej stronie dowiesz się, jak przeprowadzić podstawowe testy telefonii dostępne w ramach Android Open Source Project (AOSP) dla użytkownika z 2 telefonami.

Wymagania wstępne

Aby przeprowadzać testy połączeń telefonicznych ACTS, musisz mieć dostęp do pełnego repozytorium Androida i zainstalować kompilacje userdebug na urządzeniach, które chcesz testować.

Pobieranie repozytorium Androida

Wykonaj instrukcje opisane w artykule Pobieranie źródła, aby pobrać repozytorium Androida na komputerze wyposażonym w połączenie USB z urządzeniami, które chcesz przetestować.

  • AOSP to wielogigabajtowa baza kodu, która wciąż się powiększa. Odpowiednio dostosuj czas pobierania.
    • Jeśli rozmiar maszyny na danym komputerze jest ograniczony, dodaj do polecenia repo init --depth=1.
  • Aby w przyszłości otrzymywać informacje o narzędziach ACTS, przejdź do katalogu głównego Androida:
    • Użyj konta repo sync tools/test/connectivity
    • i repo sync external/sl4a

Weryfikowanie kompilacji debugowania użytkownika na urządzeniach

Zainstaluj na urządzeniach testowych wersję Androida do debugowania przez użytkowników.

  • Skompiluj repozytorium, postępując zgodnie z instrukcjami w artykule na temat kompilacji Androida.
  • Przeprowadź flashowanie urządzenia zgodnie z opisem w sekcji Tworzenie Flasha do urządzenia.
    • Polecenie adb shell getprop ro.build.type powinno zwrócić userdebug.
    • Jeśli funkcja ro.build.type jest niedostępna, kompilacja userdebug umożliwia uruchomienie powłoki adb jako root (terminal #).

Tworzenie i instalowanie SL4A

Aby utworzyć i zainstalować warstwę skryptów na Androida (SL4A), postępuj zgodnie z instrukcjami w sekcji Warstwa skryptów na Androida. Sekcja Dodawanie domyślnie kompilacji SL4A do kompilacji Androida jest opcjonalna.

Po utworzeniu gwarancji jakości usług 4 ostatni komunikat logu zawiera lokalizację pliku sl4a.apk, który musisz zainstalować na WSZYSTKICH urządzeniach. Oto przykładowy komunikat logu:

Copy: out/target/path/to/sl4a.apk

Skonfiguruj urządzenia do testowania

Skonfiguruj urządzenia, korzystając z tych wymagań dotyczących kompilacji/narzędzi ACTS:

  • Jeśli klucze dostawcy ADB są niedostępne, kliknij wyskakujące okienko Ufaj temu komputerowi w urządzeniu DUT, gdy się pojawi. Jeśli klucze dostawcy ADB są dostępne:

    • Klucze i sterowniki dostawcy ADB muszą być unikalne w jednostce organizacyjnej DUT.
    • Aby zawsze włączać debugowanie USB, klucze dostawcy ADB w drzewie źródłowym należy dodać do elementu ~/.bashrc (lub jego odpowiednika) za pomocą polecenia export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys, gdzie /path/to/directory to w pełni kwalifikowana ścieżka na hoście. Informacje o rozwiązywaniu problemów z ADB znajdziesz w artykule Uruchamianie aplikacji na urządzeniu sprzętowym.
  • Zezwalaj na debugowanie USB: po zainstalowaniu sterowników adb urządzenia adb mogą wyświetlić na urządzeniu prośbę o umożliwienie debugowania USB.

  • Zainstaluj aplikację sl4a.apk za pomocą usługi $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk

  • Upewnij się, że telefony z serwerem testowym korzystają z połączenia USB 2.0.

  • Testy zależą od działających sieci komórkowych, więc włóż do telefonu karty SIM i trzymaj telefon w miejscu, w którym dostępna jest stabilna sieć komórkowa.

  • Dodaj wszystkie karty SIM do pliku JSON zgodnie z opisem w sekcji Zapisywanie pliku konfiguracyjnego.

Konfigurowanie środowiska

Przed skonfigurowaniem środowiska sprawdź, czy Python w wersji 3.4 lub nowszej jest zainstalowany.

Uruchom:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler

Zainstaluj ACTS

Uruchom:

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

Aby sprawdzić instalację, uruchom act.py -h, aby wyświetlić listę dostępnych poleceń.

Zapisywanie pliku konfiguracyjnego

Aby przeprowadzać testy, musisz utworzyć plik z informacjami o konfiguracji. Oto przykładowy plik .config. Podobny plik jest dostępny w repozytorium Androida w sekcji tools/test/connectivity/acts/framework/sample_config.json. Zastąp XXXXXXX numerami seryjnymi urządzeń, by podać minimalne informacje potrzebne do przeprowadzenia testu połączeń telefonicznych.

{
  "_description": "Minimum Telephony Config",
  "testbed":
  [
      {
          "_description": "A testbed listing two AndroidDevices for adb.",
          "name": "ExampleTestBed",
          "AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
                            {"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
      }
  ],
  "logpath": "/path/to/logs",
  "testpaths": "/path/to/android/repo/tools/test/connectivity",
  "sim_conf_file": "/path/to/simcard_list.json"
}

Użyj kluczy w tabeli, by skonfigurować parametry testowe. Więcej opcji znajdziesz w sekcji Dodatkowe opcje konfiguracji.

Klucz Wartość
_description Dodaj komentarz do zawartości całego pliku konfiguracyjnego
testbed Specyfikacja środowiska, w którym można przeprowadzać testy
(testowane) _description Dodaj komentarz do każdego testowanego miejsca, ponieważ zespół ATS może kierować je do poszczególnych testów
(testowane) name Nazwa stanowiska testowego na potrzeby wywoływania z wiersza poleceń
(testowane) AndroidDevice Lista urządzeń, na które kierowany jest test
Uwaga: na liście może być wiele urządzeń. Test, który uruchamia połączenia telefoniczne, zakłada, że będą 2 urządzenia. Jeśli ich liczba jest mniejsza, kończy się to niepowodzeniem. Jeśli na liście są 2 urządzenia, a test oczekuje tylko jednego, test jest przeprowadzany na pierwszym.
(bazujące)(urządzenie z Androidem) serial Numer seryjny urządzenia (wydrukowany z: adb devices)
(bazujące)(urządzenie z Androidem) adb_logcat_param Parametry przekazywane po wywołaniu funkcji adb logcat podczas testowania
logpath Lokalizacja na serwerze testowym, w której zapisywane są logi
testpaths Lokalizacja kodu przypadku testowego
sim_conf_file Lokalizacja pliku .json z listą dostępnych kart SIM
Lista kart SIM zawiera identyfikator karty, funkcje karty, operatora i numer telefonu.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

Możesz pobrać numer telefonu z urządzenia w sekcji System > Informacje o telefonie. Identyfikator karty SIM jest zwykle wydrukowany na karcie SIM lub jest dostępny na urządzeniu w sekcji System > Informacje o telefonie > Stan karty SIM. Ciąg operatora jest określony na stronie tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py, a następnie wyszukaj CARRIER_.

Dodatkowe opcje konfiguracji

Plik entries.py znajdujący się pod adresem tools/test/connectivity/acts/framework/acts/config/entries.py w repozytorium Androida zawiera definicje głównych opcji konfiguracji wiersza poleceń.

Parametry dotyczące testów możesz też znaleźć w kodzie, wyszukując self.user_params.get.

Przeprowadzanie testów

Uruchamiaj testy z poziomu wiersza poleceń po zapisaniu pliku konfiguracyjnego. Istnieje wiele opcji, ale najprostszym jest użycie funkcji -c filename.config -tc TestCase:name. W tym przykładzie używamy pliku konfiguracyjnego o nazwie minimum.config:

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general

Udany test powinien mieć ostateczny komunikat wyjściowy podobny do tego:

INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0

Przeprowadzanie wielu testów

Aby uruchomić konkretne przypadki testowe w kilku plikach, utwórz plik testowy i przekaż go z flagą -tf , jak pokazano w przykładowym pakiecie testów regresji:

TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g

TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g

TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g

W tym przykładowym poleceniu założono, że plik ma nazwę regression_suite.

act.py -c minimum.config -tf regression_suite

Wielokrotne przeprowadzanie testów

Aby wielokrotnie uruchomić przypadek testowy (-tc) lub plik testowy (-tf), dodaj do polecenia -ti # (weryfikacje testowe).