Tradefed umfasst das Konzept eines Schlüsselspeichers, in dem Secrets in einem Schlüsselspeicherdienst gespeichert und zur Laufzeit des Tests zur Verwendung während des Tests angefordert werden können.
Schlüsselspeicher verwenden
Wenn Sie einen Keystore verwenden möchten, müssen Sie zuerst die Quelle für den Keystore in Ihrer globalen Konfiguration definieren.
Anschließend können Sie die gespeicherten Schlüssel so verwenden: USE_KEYSTORE@{key}
JSONFileKeyStore
Die Beispielimplementierung im Tradefed-Kern verwendet einen JSON-Schlüsselspeicher, JSONFileKeyStoreClient
. Wenn Sie diesen Keystore verwenden möchten, müssen Sie eine JSON-Schlüsseldatei mit Schlüssel/Wert-Zuordnungen definieren.
Sie können beispielsweise eine /path/to/keystore.json
-Datei so definieren:
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
Fügen Sie dann die folgenden Zeilen in Ihre globale TF-Konfigurationsdatei ein:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>
Beim Ausführen zugehöriger Tests können Sie jetzt Werte als USE_KEYSTORE@test_account
übergeben. TF fragt dann den Keystore ab und verwendet den Wert im Rahmen des Tests.
Hostbasierte Schlüsselspeicherdatei
Um hostbasierte Schlüssel/Wert-Paare zu definieren, können Sie eine /path/to/keystore_ssid.json
-Datei wie folgt definieren:
{
"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"
}
}
Der Schlüssel eines Eintrags in der Datei ist ein regulärer Ausdruck für den Hostnamen und der Wert ist die Gruppe von Schlüssel/Wert-Paaren für jeden Host mit einem passenden Hostnamen.
Aktualisieren Sie dann die globale TF-Konfigurationsdatei, um die hostbasierte Keystore-Datei einzuschließen:
<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>
Der Wert eines Schlüssels, der in einer hostbasierten Schlüsselspeicherdatei definiert ist, überschreibt den Wert, der in der mit json-key-store-file
angegebenen Schlüsselspeicherdatei definiert ist.
Wenn mehrere hostbasierte Keystore-Dateien im Keystore vorhanden sind, ist die Reihenfolge wichtig. Wenn der Wert für einen Schlüssel in mehreren Dateien definiert ist, überschreibt der Wert in der letzten Datei die anderen.