Tradefed enthält das Konzept eines Schlüsselspeichers, in dem Secrets in einem Schlüsselspeicherdienst gespeichert und zum Zeitpunkt des Tests angefordert werden können, um sie während des Tests zu verwenden.
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 kannst du die gespeicherten Schlüssel über folgende Methoden verwenden: USE_KEYSTORE@{key}
JSONFileKeyStore
Die Beispielimplementierung in Tradefed Core verwendet einen JSON-Schlüsselspeicher, JSONFileKeyStoreClient
. Wenn Sie diesen Schlüsselspeicher verwenden möchten, müssen Sie eine JSON-Schlüsseldatei mit Schlüssel/Wert-Zuordnungen definieren.
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",
}
Fügen Sie dann die folgenden Zeilen in die 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 zugehörige Tests ausführen, können Sie jetzt Werte als 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 Schlüssels, der in einer hostbasierten Schlüsselspeicherdatei definiert ist, überschreibt den in der mit json-key-store-file
angegebenen Schlüsselspeicherdatei definierten Wert.
Wenn sich im Keystore mehrere hostbasierte Keystore-Dateien befinden, ist die Reihenfolge wichtig. Wenn der Wert für einen Schlüssel in mehreren Dateien definiert ist, wird der Wert in der letzten solchen Datei überschrieben.