Tradefed umfasst das Konzept eines Schlüsselspeichers, bei dem Secrets in einem Schlüsselspeicherdienst gespeichert und bei der Testausführung zur Verwendung während des Tests angefordert werden können.
Schlüsselspeicher verwenden
Wenn Sie einen Schlüsselspeicher verwenden möchten, müssen Sie zuerst die Quelle für den Schlüsselspeicher in Ihrer globalen Konfiguration definieren.
Anschließend können Sie die gespeicherten Schlüssel mit folgendem Befehl verwenden: USE_KEYSTORE@{key}
JSONFileKeyStore
Die Beispielimplementierung in Tradefed Core verwendet einen JSON-Schlüsselspeicher, JSONFileKeyStoreClient
. Um diesen Schlüsselspeicher zu verwenden, definieren Sie eine JSON-Schlüsseldatei, die Schlüssel/Wert-Zuordnungen enthält.
Sie können eine /path/to/keystore.json
-Datei beispielsweise so definieren:
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
Dann fügen Sie 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>
Wenn Sie entsprechende Tests ausführen, können Sie jetzt Werte wie USE_KEYSTORE@test_account
übergeben. TF fragt dann den Schlüsselspeicher danach ab und verwendet den Wert im Test.
Hostbasierte Schlüsselspeicherdatei
Wenn Sie hostbasierte Schlüssel/Wert-Paare definieren möchten, können Sie eine /path/to/keystore_ssid.json
-Datei so 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 (Regex) für den Hostnamen und der Wert ist die Reihe von Schlüssel/Wert-Paaren für jeden Host mit einem übereinstimmenden Hostnamen.
Aktualisieren Sie dann die globale TF-Konfigurationsdatei, um die hostbasierte Schlüsselspeicherdatei aufzunehmen:
<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 in einer hostbasierten Schlüsselspeicherdatei definierten Schlüssels überschreibt den Wert, der in der mit json-key-store-file
angegebenen Schlüsselspeicherdatei definiert ist.
Wenn im Schlüsselspeicher mehrere hostbasierte Schlüsselspeicherdateien vorhanden sind, ist die Reihenfolge entscheidend. Wenn der Wert für einen Schlüssel in mehreren Dateien definiert ist, überschreibt der Wert in der letzten Datei den Rest.