Tradefed inclut le concept de keystore, où les secrets peuvent être stockés dans un service keystore et demandés au moment de l'exécution du test pour l'utiliser pendant le test.
Utiliser un keystore
Pour utiliser un keystore, vous devez d'abord définir sa source votre international configuration.
Une fois cela fait, vous pouvez utiliser les clés stockées via: USE_KEYSTORE@{key}
JSONFileKeyStore
L'exemple d'implémentation dans Tradefed Core
utilise un keystore JSON,
JSONFileKeyStoreClient
Pour utiliser ce keystore, vous devez définir un fichier de clé JSON
avec des mappages clé-valeur.
Par exemple, vous pouvez définir un fichier /path/to/keystore.json
comme suit :
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
Vous devez ensuite ajouter les lignes suivantes à votre fichier de configuration global TF:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>
Lors de l'exécution de tests associés, vous pouvez désormais transmettre des valeurs en tant que
USE_KEYSTORE@test_account
, pour lequel TF interroge ensuite le keystore et l'utilise
sa valeur dans le cadre du test.
Fichier keystore basé sur l'hôte
Pour définir des paires clé-valeur basées sur l'hôte, vous pouvez définir un
/path/to/keystore_ssid.json
fichier en tant que
{
"host_a.*\\.corp\\.com": {
"wifi_lab_ssid": "ssid_a",
"wifi_lab_pwd": "secret_a"
},
"host_b.*\\.corp\\.com": {
"wifi_lab_ssid": "ssid_b",
"wifi_lab_pwd": "secret_b"
}
}
La clé d'une entrée du fichier est un modèle d'expression régulière (regex) pour la variable nom d'hôte. La valeur est l'ensemble des paires clé-valeur de tout hôte associé à correspondant.
Ensuite, mettez à jour votre fichier de configuration global TF pour inclure le keystore basé sur l'hôte. :
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
<option name="host-based-key-store-file" value="/path/to/keystore-ssid.json" />
</key_store>
La valeur d'une clé définie dans un fichier keystore basé sur l'hôte remplace celle définie
dans le fichier keystore spécifié avec json-key-store-file
.
Lorsque plusieurs fichiers keystore basés sur l'hôte sont présents dans le keystore, l'ordre ce qui est important. Si la valeur d'une clé est définie dans plusieurs fichiers, la valeur du paramètre le dernier fichier de ce type remplace le reste.