Tradefed incluye el concepto de un almacén de claves, en el que los secretos se pueden almacenar en un servicio de almacén de claves y solicitarse en el tiempo de ejecución de la prueba para usarlos durante la prueba.
Usa un almacén de claves
Para usar un almacén de claves, primero debes definir la fuente del almacén de claves en tu configuración global.
Cuando termines, puedes usar las claves almacenadas a través de: USE_KEYSTORE@{key}
JSONFileKeyStore
La implementación de ejemplo en Tradefed Core usa un almacén de claves JSON, JSONFileKeyStoreClient
. Para usar este almacén de claves, debes definir un archivo de claves JSON que tenga asignaciones de claves a valores.
Por ejemplo, puedes definir un archivo /path/to/keystore.json
como
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
Luego, agrega las siguientes líneas en tu archivo de configuración global de TF:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>
Cuando ejecutes pruebas relacionadas, ahora puedes pasar valores como USE_KEYSTORE@test_account
, que TF consultará en el almacén de claves y usará su valor como parte de la prueba.
Archivo de almacén de claves basado en host
Para definir pares clave-valor basados en el host, puedes definir un archivo /path/to/keystore_ssid.json
como
{
"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 clave de una entrada en el archivo es un patrón de expresión regular (regex) para el nombre de host, y el valor es el conjunto de pares clave-valor para cualquier host con un nombre de host coincidente.
Luego, actualiza el archivo de configuración global de TF para incluir el archivo del almacén de claves basado en el host:
<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>
El valor de una clave definida en un archivo de almacén de claves basado en el host anula el que se define en el archivo de almacén de claves especificado con json-key-store-file
.
Cuando hay varios archivos de almacén de claves basados en el host en el almacén de claves, el orden es importante. Si el valor de una clave se define en varios archivos, el valor del último archivo anula el resto.