Test della telefonia ACTS

La Test Suite per le comunicazioni Android (ACTS) esegue test automatici degli stack di connettività, ad esempio Wi-Fi, Bluetooth e servizi cellulari. Lo strumento di test richiede adb e Python. Lo strumento si trova in tools/test/connectivity/acts.

In questa pagina viene descritto come eseguire i test della telefonia di base disponibili in Android Open Source Project (AOSP) per un utente con due smartphone.

Prerequisiti

Per eseguire i test di telefonia ACTS, devi avere accesso a un repository Android completo e installare le build di debug degli utenti sui dispositivi che vuoi testare.

Scarica un repository Android

Segui le istruzioni in Scaricare il codice sorgente per scaricare un repository Android su una macchina dotata di connessione USB ai dispositivi che vuoi testare.

  • AOSP è un codebase multigigabyte in continua crescita. Regola i tempi di download previsti di conseguenza.
    • Se una macchina è vincolata a dimensioni, aggiungi --depth=1 al comando repo init.
  • Per ricevere aggiornamenti futuri sugli strumenti ACTS, vai alla directory radice di Android:
    • Utilizza repo sync tools/test/connectivity
    • e repo sync external/sl4a

Verificare le build di debug degli utenti sui dispositivi

Installa una versione userdebug di Android sui tuoi dispositivi di test.

  • Per creare il repository, segui le istruzioni in Build Android.
  • Esegui il flashing del dispositivo come descritto nella sezione Eseguire il flashing del dispositivo.
    • Il comando adb shell getprop ro.build.type dovrebbe restituire userdebug.
    • Se ro.build.type non è disponibile, una build userdebug consente di eseguire la shell adb come root (terminale #).

Crea e installa SL4A

Per creare e installare lo scripting Layer per Android (SL4A), segui le istruzioni riportate nella pagina Scripting Layer per Android. La sezione Aggiunta di build SL4A alle build Android per impostazione predefinita è facoltativa.

Dopo aver creato SLA4, l'ultimo messaggio di log contiene la posizione del file sl4a.apk, che devi installare su TUTTI i dispositivi. Ecco un esempio di messaggio di log:

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

Configura i dispositivi da testare

Configura i dispositivi utilizzando questi requisiti di build/strumento ACTS:

  • Se le chiavi dei fornitori ADB non sono disponibili, tocca il popup Considera questo computer attendibile sul DUT quando viene visualizzato. Se sono disponibili le chiavi del fornitore ADB:

    • Le chiavi e i driver dei fornitori ADB devono essere univoci per il DUT.
    • Per attivare sempre il debug USB, le chiavi del fornitore ADB nella struttura di origine devono essere aggiunte a ~/.bashrc (o equivalente) utilizzando export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys, dove /path/to/directory è il percorso completo sull'host. Per la risoluzione dei problemi di ADB, consulta Eseguire app su un dispositivo hardware.
  • Consenti debug USB: quando i driver ADB sono installati, i dispositivi ADB potrebbero attivare una richiesta sul dispositivo per consentire il debug USB.

  • Installa sl4a.apk utilizzando $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk

  • Assicurati che gli smartphone utilizzino una connessione USB 2.0 al server di test.

  • Questi test dipendono dalle reti cellulari attive, quindi inserisci le schede SIM negli smartphone e tienili in un'area in cui il servizio cellulare sia buono.

  • Aggiungi tutte le schede SIM a un file JSON come descritto in Scrivere un file di configurazione.

Configurare l'ambiente

Prima di configurare l'ambiente, verifica che Python 3.4 o versioni successive sia installato.

Corsa:

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

Installa ACTS

Corsa:

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

Per verificare l'installazione, esegui act.py -h, che stampa un elenco dei comandi disponibili.

Scrivi un file di configurazione

Per eseguire i test, devi creare un file con le informazioni di configurazione. Ecco un file .config di esempio. Un file simile è disponibile nel repository Android in tools/test/connectivity/acts/framework/sample_config.json. Sostituisci XXXXXXX con i numeri di serie del dispositivo per fornire le informazioni minime necessarie ad ATS per eseguire un test di telefonia.

{
  "_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"
}

Utilizza le chiavi nella tabella per configurare i parametri di test. Per ulteriori opzioni, consulta Opzioni di configurazione aggiuntive.

Chiave Valore
_description Commenta i contenuti dell'intero file di configurazione
testbed Specifica di un ambiente in cui possono essere eseguiti i test
(testa) _description Commenta ogni banco di test, poiché gli ACTS possono scegliere come target singoli test
(testa) name Nome del banco di test per le chiamate dalla riga di comando
(testa) AndroidDevice Elenco di dispositivi specifici a cui si rivolge il test
Nota: possono essere elencati più dispositivi. Un test che esegue smartphone che si chiamano tra di loro prevede la presenza di due dispositivi e, se ce ne sono meno, non va a buon fine. Se nell'elenco sono presenti due dispositivi e il test ne prevede solo uno, il test viene eseguito sul primo dispositivo.
(testbed)(dispositivo Android) serial Numero di serie del dispositivo (stampato da adb devices)
(testbed)(dispositivo Android) adb_logcat_param Parametri che vengono passati quando adb logcat viene chiamato durante il test
logpath La posizione sul server di test in cui vengono salvati i log.
testpaths La posizione del codice dello scenario di test
sim_conf_file La posizione del file .json che elenca le schede SIM disponibili
L'elenco delle schede SIM include l'ID della scheda, le funzionalità della scheda, l'operatore e il numero di telefono.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

Puoi recuperare il numero di telefono dal dispositivo in Sistema > Informazioni sullo smartphone. In genere l'ID della scheda SIM è stampato sulla scheda SIM o è disponibile sul dispositivo in Sistema > Informazioni sullo smartphone > Stato SIM. La stringa dell'operatore è definita in tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py, quindi cerca CARRIER_.

Opzioni di configurazione aggiuntive

Il file entries.py situato all'indirizzo tools/test/connectivity/acts/framework/acts/config/entries.py nel repository Android ha definizioni per le principali opzioni di configurazione della riga di comando.

Puoi anche trovare parametri specifici per il test nel codice cercando self.user_params.get.

Esegui test

Esegui i test dalla riga di comando dopo la scrittura del file di configurazione. Anche se esistono molte opzioni, la più semplice è usare -c filename.config -tc TestCase:name. In questo esempio viene utilizzato un file di configurazione denominato minimum.config:

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

Un'esecuzione di test riuscita dovrebbe avere un messaggio di output finale simile al seguente:

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

Esegui più test

Per eseguire scenari di test specifici su più file, crea un file di test e passalo con il flag -tf , come mostrato nell'esempio della suite di test di regressione:

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

Questo comando di esempio presuppone che il file sia denominato regression_suite.

act.py -c minimum.config -tf regression_suite

Esegui test più volte

Per eseguire più volte uno scenario di test (-tc) o un file di test (-tf), aggiungi -ti # (iterazioni di test) al comando.