Prove di telefonia ACTS

Android Comms Test Suite (ACTS) esegue test automatizzati di stack di connettività, come Wi-Fi, Bluetooth e servizi cellulari. Lo strumento di test richiede adb . e Python e può essere trovato 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 telefoni.

Prerequisiti

Per eseguire i test di telefonia ACTS, dovresti avere accesso a un repository Android completo e installare le build di userdebug sui dispositivi che desideri testare.

Download di un repository Android

Segui le istruzioni in Download del sorgente per scaricare un repository Android su un computer dotato di connessione USB ai dispositivi che desideri testare.

  • AOSP è una codebase multigigabyte che continua a crescere. Modifica di conseguenza le tue aspettative sui tempi di download.
    • Se una macchina ha limiti di dimensione, aggiungi --depth=1 al comando repo init .
  • Per ottenere futuri aggiornamenti sugli strumenti ACTS, vai alla directory principale di Android:
    • Utilizzare repo sync tools/test/connectivity
    • E repo sync external/sl4a

Verifica delle build di userdebug sui dispositivi

Installa una versione di debug utente di Android sui tuoi dispositivi di prova.

  • Crea il repository utilizzando le istruzioni in Creazione di Android .
  • Eseguire il flashing del dispositivo come descritto in Flashare 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 la shell adb come root (terminale # ).

Costruire e installare SL4A

Per creare e installare Scripting Layer For Android (SL4A), seguire le istruzioni 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 registro contiene la posizione del file sl4a.apk , che devi installare su TUTTI i dispositivi. Ecco un esempio di messaggio di registro:

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

Configurazione dei dispositivi da testare

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

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

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

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

  • Assicurati che i telefoni utilizzino una connessione USB 2.0 al server di test.

  • Questi test dipendono dalle reti cellulari attive, quindi inserisci le carte SIM nei telefoni e tieni i telefoni in un'area con un buon servizio cellulare.

  • Aggiungi tutte le schede SIM a un file .json come descritto in Scrittura di un file di configurazione .

Impostazione dell'ambiente

Prima di configurare l'ambiente, verifica che sia installato Python 3.4+.

Correre:

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

Installazione di ACTS

Correre:

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 di comandi disponibili.

Scrivere un file di configurazione

Per eseguire i test, è necessario creare un file con le informazioni di configurazione. Ecco un esempio di file .config . 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 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"
}

Utilizzare i tasti nella tabella per configurare i parametri del test. Fare riferimento a Opzioni di configurazione aggiuntive per ulteriori opzioni.

Chiave Valore
_description Commenta il contenuto dell'intero file di configurazione
testbed Specifica di un ambiente in cui possono essere eseguiti i test
(banco di prova) _description Commenta ogni banco di prova, poiché ACTS può prendere di mira banchi di prova individuali
name (banco di prova). Nome del banco di prova per la chiamata dalla riga di comando
(banco di prova) AndroidDevice Elenco dei dispositivi specifici target del test
Nota: possono essere elencati più dispositivi. Un test che esegue telefoni che si chiamano tra loro prevede che ci siano due dispositivi e fallisce se ce ne sono meno. Se sono elencati due dispositivi e il test ne prevede solo uno, il test verrà eseguito sul primo dispositivo.
(banco di prova) (dispositivo Android) serial Numero di serie del dispositivo (stampato dai adb devices )
(banco di prova) (dispositivo Android) adb_logcat_param Parametri 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 del test case
sim_conf_file Il percorso del file .json che elenca le schede SIM disponibili
L'elenco delle carte SIM include l'ID della carta, le funzionalità della carta, l'operatore e il numero di telefono.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

È possibile estrarre il numero di telefono dal dispositivo in Sistema > Informazioni sul telefono . L'ID della carta SIM è generalmente stampato sulla carta SIM oppure è disponibile nel dispositivo in Sistema > Informazioni sul telefono > Stato SIM . La stringa dell'operatore è definita in tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py , quindi cercare CARRIER_ .

Ulteriori opzioni di configurazione

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

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

Esecuzione di test

Esegui test dalla riga di comando dopo aver scritto il file di configurazione. Sebbene siano disponibili molte opzioni, la più semplice è utilizzare -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'esecuzione di test riuscita dovrebbe avere un messaggio di output finale come questo:

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

Esecuzione di più test

Per eseguire casi di test specifici su più file, crea un file di test e passalo con il flag -tf , come mostrato nella suite di test di regressione di esempio di seguito.

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

Esecuzione di test più volte

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