Configurazione dei test ACTS

Questa pagina descrive come configurare i test ACTS.

Fonti di configurazione

Android Comms Test Suite (ACTS) ha tre principali fonti di configurazione:

  • L'interfaccia della riga di comando (CLI)
  • Il file di configurazione di ACTS
  • Variabili ambientali

I valori di queste origini vengono combinati in un'unica configurazione utilizzata per eseguire un test ACTS. Se i valori vengono specificati in più posizioni, i valori vengono sovrascritti in base all'ordine riportato sopra (dove la CLI ha la precedenza).

Una nota sulle variabili d'ambiente

Fare attenzione quando si utilizzano variabili di ambiente per i test ACTS. Questi valori sono i meno visibili all'utente e non sono consigliati per l'uso al di fuori della workstation dello sviluppatore. Le variabili di ambiente sono disabilitate durante i test automatizzati ACTS per prevenire l'avvelenamento dell'ambiente.

Variabili di configurazione richieste

Ogni test ACTS richiede l'impostazione delle seguenti variabili.

Percorsi di prova ACTS

ACTS viene eseguito da un'unica posizione di ingresso principale. Di conseguenza, la posizione del percorso di prova è sconosciuta al corridore.

Imposta la posizione del percorso di test utilizzando la variabile di ambiente ACTS_TESTPATH ​​o con il flag -tp / --testpaths nella riga di comando. Il valore può essere un elenco di directory.

Lezioni di prova ACTS

ACTS deve sapere quali classi di test eseguire. Può trattarsi di una regex o di un elenco di nomi di classi di test.

Per impostare questo valore, utilizzare il flag -tc / --test_class nella riga di comando. Tieni presente che questo flag accetta anche un elenco di nomi di classi. I nomi delle classi devono corrispondere ai nomi dei file corrispondenti, ad esempio SampleTest deve essere trovato in SampleTest.py .

Percorso del registro ACTS

ACTS deve avere una posizione in cui scrivere i log diversa da STDOUT. ACTS scrive log di debug completi contenenti dati che possono aiutare a determinare il motivo per cui alcuni test falliscono. Per evitare confusione, ACTS non scrive questi log su STDOUT.

Per impostare il percorso del registro, utilizzare la variabile di ambiente ACTS_LOGPATH o il flag -lp / --logpath nella riga di comando.

Percorso di configurazione di ACTS

Per eseguire il test, ACTS deve sapere quale banco di prova esiste. La configurazione ACTS contiene tutti i dispositivi nel banco di prova e qualsiasi test speciale o parametro ambientale che potrebbe essere necessario. Imposta questo valore sulla riga di comando utilizzando -c / --config .

Se sono presenti più banchi di prova nella configurazione, ACTS esegue i test per ciascun banco di prova. Per eseguire il test solo per un singolo testbed nell'elenco, utilizzare l'argomento della riga di comando -tb/--testbed <NAME> .

Un esempio di workstation locale

La maggior parte degli utenti ACTS sviluppa su un singolo ramo repository Android e ha una configurazione simile a questa:

# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='~/android/<REPO_BRANCH>/tools/test/connectivity/acts_tests/'

# On cmdline
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin

Se gli utenti ACTS eseguono su più rami, spesso eseguono ACTS dalla directory acts/framework e utilizzano un percorso relativo per ACTS_TESTPATH ​​:

# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='../acts_tests/'

# On cmdline
$ cd ~/android/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin

Configurazione dei tuoi banchi di prova

Il file di configurazione di ACTS fornisce tutte le informazioni necessarie per eseguire test sui dispositivi hardware:

{
  "testbed": {
    "my_testbed": {
      "my_testbed_value": "value"
    },
    "another_testbed": {
      "AndroidDevice": [
        "53R147"
      ]
    }
  },
  "user_parameter_1": "special environment value",
  "user_parameter_2": "other special value"
}

L'unità base di questa configurazione è il banco di prova. Nella configurazione di esempio sopra, il testbed my_testbed viene creato con un singolo valore testbed. Il secondo testbed, another_testbed , ha una speciale configurazione del controller che contiene le informazioni per un elenco di dispositivi Android. Questi dispositivi sono memorizzati in un elenco di dispositivi in self.android_devices . Tieni presente che se un banco di prova non specifica un oggetto AndroidDevice , una classe di test che prevede un oggetto AndroidDevice solleva un'eccezione. Per un elenco completo delle configurazioni dei controller supportate fornite con ACTS, vedere l'elenco in /acts/framework/acts/controllers/ .

Tutti gli altri valori (che non sono valori speciali menzionati nella sezione precedente) sono archiviati in self.user_params come dizionario. Questo è un buon posto per conservare informazioni sull'ambiente o testare, ad esempio se i telefoni si trovano in un ambiente di dati misurati o per quanto tempo raccogliere dati per un test.

Casi speciali per dispositivi Android

Per comodità di sviluppo quando desideri avere a disposizione più dispositivi con proprietà diverse, AndroidDevice presenta alcuni casi speciali.

Formato di configurazione JSON

Tutte le coppie chiave/valore nel JSON seguente sono impostate sull'oggetto AndroidDevice corrispondente. Se la configurazione tenta di sovrascrivere un parametro definito nell'attributo AndroidDevice , viene generato ControllerError .

  "AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
                    {"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]

Quindi, nello script di test, puoi utilizzare una funzione di filtro per recuperare il dispositivo corretto e accedere a parametri aggiuntivi dall'oggetto dispositivo:

  def setup_class(self):
      self.pub = next(filter(lambda ad: ad.label == 'publisher',
                             self.android_devices))
      self.sub = next(filter(lambda ad: ad.label == 'user_parameter_1',
                             self.android_devices))

Parametro facoltativo

Quello che segue è un parametro facoltativo:

  • adb_logcat_param : una stringa aggiunta al comando adb logcat per raccogliere i log adb. Per impostazione predefinita, viene utilizzato adb logcat -v threadtime -b all . Se adb_logcat_param è impostato, la sezione -b all viene sovrascritta. Ad esempio, impostando adb_logcat_param su -b radio il comando viene modificato in adb logcat -v threadtime -b radio .