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 comandorepo init
.
- Se una macchina ha dimensioni limitate, aggiungi
- Per ricevere aggiornamenti futuri sugli strumenti ACTS, vai alla directory radice di Android:
- Utilizza
repo sync tools/test/connectivity
- e
repo sync external/sl4a
- Utilizza
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 restituireuserdebug
. - Se
ro.build.type
non è disponibile, una build userdebug consente di eseguire il prompt adb come utente root (#
del terminale).
- Il comando
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) utilizzandoexport 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.