Tradefed inclut le concept de keystore, dans lequel les secrets peuvent être stockés dans un service keystore et demandés au moment de l'exécution du test pour être utilisés pendant le test.
Utiliser un keystore
Pour utiliser un keystore, vous devez d'abord définir la source du keystore dans votre configuration globale.
Une fois que vous avez terminé, 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 contenant des mappages de 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 dans 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>
Lorsque vous exécutez des tests associés, vous pouvez désormais transmettre des valeurs en tant que USE_KEYSTORE@test_account
. TF interroge ensuite le keystore et 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 fichier /path/to/keystore_ssid.json
comme
{
"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 dans le fichier est un modèle d'expression régulière pour le nom d'hôte, et la valeur est l'ensemble de paires clé-valeur pour tout hôte dont le nom d'hôte correspond.
Ensuite, mettez à jour votre fichier de configuration global TF pour inclure le fichier 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 de keystore basé sur l'hôte remplace celle définie dans le fichier de keystore spécifié avec json-key-store-file
.
Lorsque plusieurs fichiers de keystore basés sur l'hôte sont présents dans le keystore, l'ordre a son importance. Si la valeur d'une clé est définie dans plusieurs fichiers, la valeur du dernier fichier de ce type remplace les autres.