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.

Questa pagina descrive come eseguire i test di 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.

Scaricare un repository Android

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

  • AOSP è una base di codice di diversi gigabyte che continua a crescere. Modifica di conseguenza le tue aspettative sui tempi di download.
    • Se una macchina ha dimensioni limitate, 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 userdebug sui dispositivi

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

  • Crea il repository seguendo le istruzioni riportate in Crea Android.
  • Esegui il flashing del dispositivo come descritto in Eseguire il flashing di un dispositivo.
    • Il comando adb shell getprop ro.build.type dovrebbe restituire userdebug.
    • Se ro.build.type non è disponibile, una build userdebug consente di eseguire il prompt adb come utente root (# del terminale).

Crea e installa SL4A

Per compilare e installare Scripting Layer for Android (SL4A), segui le istruzioni riportate in Scripting Layer for 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 i seguenti requisiti per la compilazione/gli strumenti ACTS:

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

    • I driver e le chiavi del fornitore 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 relativi ad ADB, consulta Eseguire app su un dispositivo hardware.
  • Consenti il debug USB: quando sono installati i driver adb, 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 con un buon servizio di telefonia cellulare.

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

Configura l'ambiente

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

Esegui:

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 nella sezione tools/test/connectivity/acts/framework/sample_config.json. Sostituisci XXXXXXX con i numeri di serie del dispositivo per fornire le informazioni minime di cui necessita ACTS 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 altre opzioni, consulta Opzioni di configurazione aggiuntive.

Chiave Valore
_description Commentare i contenuti dell'intero file di configurazione
testbed Specifica di un ambiente in cui è possibile eseguire i test
(testbed) _description Commenta ogni testbed, poiché ACTS può avere come target singoli testbed
(testa) name Nome del testbed da chiamare dalla riga di comando
(testbed) AndroidDevice Elenco di dispositivi specifici scelti come target del test
Nota: possono essere elencati più dispositivi. Un test che esegue telefonate tra smartphone si aspetta che ci siano due dispositivi e non va a buon fine se ce ne sono meno. Se sono elencati due dispositivi e il test ne prevede solo uno, il test viene eseguito sul primo dispositivo.
(testbed)(AndroidDevice) serial Numero di serie del dispositivo (stampato da adb devices)
(testbed)(AndroidDevice) adb_logcat_param Parametri che vengono passati quando viene chiamato adb logcat 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 sul telefono. L'ID della scheda SIM è generalmente stampato sulla scheda stessa 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 che si trova in tools/test/connectivity/acts/framework/acts/config/entries.py nel repository Android contiene le definizioni delle principali opzioni di configurazione della riga di comando.

Puoi anche trovare i parametri specifici del 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. Questo esempio utilizza un file di configurazione denominato minimum.config:

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

Un test eseguito correttamente 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 casi di test specifici in 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 si chiami regression_suite.

act.py -c minimum.config -tf regression_suite

Eseguire i 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.