Testy telefonii ACTS

Pakiet Android Comms Test Suite (ACTS) przeprowadza automatyczne testowanie stosów łączności, takich jak Wi-Fi, Bluetooth i usługi komórkowe. Narzędzie testujące wymaga adb . i Python, i można go znaleźć w tools/test/connectivity/acts .

Na tej stronie opisano sposób uruchamiania podstawowych testów telefonii dostępnych w programie Android Open Source Project (AOSP) dla użytkownika posiadającego dwa telefony.

Warunki wstępne

Aby przeprowadzić testy telefonii ACTS, powinieneś mieć dostęp do pełnego repozytorium Androida i zainstalować kompilacje userdebug na urządzeniach, które chcesz przetestować.

Pobieranie repozytorium Androida

Postępuj zgodnie z instrukcjami w Pobieranie źródła , aby pobrać repozytorium Androida na komputer wyposażony w połączenie USB z urządzeniami, które chcesz przetestować.

  • AOSP to wielogigabajtowa baza kodu, która stale się rozwija. Dostosuj odpowiednio swoje oczekiwania dotyczące czasu pobierania.
    • Jeśli rozmiar maszyny jest ograniczony, dodaj --depth=1 do polecenia repo init .
  • Aby uzyskać przyszłe aktualizacje narzędzi ACTS, przejdź do katalogu głównego Androida:
    • Użyj repo sync tools/test/connectivity
    • I repo sync external/sl4a

Weryfikacja kompilacji userdebug na urządzeniach

Zainstaluj wersję Androida z debugowaniem użytkownika na swoich urządzeniach testowych.

  • Zbuduj repozytorium, korzystając z instrukcji w części Budowanie systemu Android .
  • Wykonaj flashowanie urządzenia w sposób opisany w rozdziale Flashowanie urządzenia .
    • Polecenie adb shell getprop ro.build.type powinno zwrócić userdebug .
    • Jeśli ro.build.type nie jest dostępny, kompilacja userdebug umożliwia uruchomienie powłoki adb jako root (terminal # ).

Budowa i instalacja SL4A

Aby zbudować i zainstalować warstwę skryptową dla systemu Android (SL4A), postępuj zgodnie z instrukcjami zawartymi w warstwie skryptowej dla systemu Android . Sekcja Domyślne dodawanie kompilacji SL4A do kompilacji Androida jest opcjonalna.

Po zbudowaniu SLA4 ostatni komunikat dziennika zawiera lokalizację pliku sl4a.apk , który należy zainstalować na WSZYSTKICH urządzeniach. Oto przykład komunikatu dziennika:

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

Konfigurowanie urządzeń do testowania

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

  • Jeśli klucze dostawcy ADB są niedostępne, dotknij wyskakującego okienka Zaufaj temu komputerowi na urządzeniu DUT, gdy się pojawi. Jeśli dostępne są klucze dostawcy ADB:

    • Klucze i sterowniki dostawcy ADB muszą być unikalne dla testowanego urządzenia.
    • Aby zawsze włączać debugowanie USB, klucze dostawcy ADB w drzewie źródłowym muszą zostać dodane do ~/.bashrc (lub odpowiednika) przy użyciu export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys gdzie /path/to/directory to w pełni kwalifikowaną ścieżkę na hoście. Aby rozwiązać problemy z ADB, zobacz Uruchamianie aplikacji na urządzeniu sprzętowym .
  • Zezwalaj na debugowanie USB: Po zainstalowaniu sterowników adb urządzenia adb mogą wywołać na urządzeniu monit o zezwolenie na debugowanie USB.

  • Zainstaluj sl4a.apk za pomocą $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk

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

  • Testy te zależą od działających sieci komórkowych, dlatego należy wkładać karty SIM do telefonów i trzymać je w miejscu o dobrym zasięgu sieci komórkowej.

  • Dodaj wszystkie karty SIM do pliku .json zgodnie z opisem w sekcji Pisanie pliku konfiguracyjnego .

Konfigurowanie środowiska

Przed skonfigurowaniem środowiska sprawdź, czy zainstalowany jest język Python 3.4+.

Uruchomić:

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

Instalacja ACTSów

Uruchomić:

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

Aby zweryfikować instalację, uruchom act.py -h , który wyświetli listę dostępnych poleceń.

Zapisywanie pliku konfiguracyjnego

Aby uruchomić testy, należy utworzyć plik z informacjami konfiguracyjnymi. Oto przykładowy plik .config . Podobny plik jest dostępny w repozytorium Androida pod tools/test/connectivity/acts/framework/sample_config.json . Zastąp XXXXXXX numerami seryjnymi urządzeń, aby zapewnić minimum informacji niezbędnych do przeprowadzenia testu telefonii przez usługę ACTS.

{
  "_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 klawiszy w tabeli, aby skonfigurować parametry testu. Aby uzyskać więcej informacji, zobacz Dodatkowe opcje konfiguracji .

Klucz Wartość
_description Skomentuj zawartość całego pliku konfiguracyjnego
testbed Specyfikacja środowiska, w którym można uruchamiać testy
(testowane) _description Skomentuj każde stanowisko testowe, ponieważ ACTS może być ukierunkowane na poszczególne stanowiska testowe
(testowa) name Nazwa środowiska testowego do wywoływania z wiersza poleceń
(testowane) AndroidDevice Lista konkretnych urządzeń, których dotyczy test
Uwaga: na liście może znajdować się wiele urządzeń. Test, w którym telefony dzwonią do siebie, oczekuje, że będą dwa urządzenia, i kończy się niepowodzeniem, jeśli jest ich mniej. Jeśli na liście znajdują się dwa urządzenia, a test oczekuje tylko jednego, test zostanie uruchomiony na pierwszym urządzeniu.
(testbed)(AndroidDevice) serial Numer seryjny urządzenia (wydrukowany z adb devices )
(testowane) (urządzenie z Androidem) adb_logcat_param Parametry przekazywane po wywołaniu 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 zawierającego listę dostępnych kart SIM
Lista kart SIM zawiera identyfikator karty, możliwości 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 obszarze System > Informacje o telefonie . Identyfikator karty SIM jest zazwyczaj wydrukowany na karcie SIM lub jest dostępny na urządzeniu w obszarze System > Informacje o telefonie > Stan karty SIM . Ciąg operatora jest zdefiniowany w tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py , a następnie wyszukaj CARRIER_ .

Dodatkowe możliwości konfiguracji

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

Parametry specyficzne dla testu można także znaleźć w kodzie, wyszukując self.user_params.get .

Uruchamianie testów

Uruchom testy z wiersza poleceń po zapisaniu pliku konfiguracyjnego. Chociaż istnieje wiele opcji, najprostszą jest użycie -c filename.config -tc TestCase:name . W tym przykładzie użyto pliku konfiguracyjnego o nazwie minimum.config :

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

Pomyślne uruchomienie testu powinno zakończyć się następującym komunikatem wyjściowym:

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

Uruchamianie wielu testów

Aby uruchomić określone przypadki testowe w wielu plikach, utwórz plik testowy i przekaż go z flagą -tf , jak pokazano w przykładowym zestawie testów regresyjnych poniżej.

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 -ti # (iteracje testowe) do polecenia.