Tradefed obejmuje koncepcję magazynu kluczy, w którym obiekty tajne mogą być przechowywane w usłudze magazynu kluczy i żądane w czasie wykonywania testu do użycia podczas testu.
Korzystanie z magazynu kluczy
Aby używać magazynu kluczy, musisz najpierw określić jego źródło w konfiguracji globalnej.
Gdy skończysz, możesz używać zapisanych kluczy w ten sposób: USE_KEYSTORE@{key}
JSONFileKeyStore
Przykładowa implementacja w rodzinie Tradefed korzysta z magazynu kluczy JSON (JSONFileKeyStoreClient
). Aby korzystać z tego magazynu kluczy, musisz zdefiniować plik kluczy JSON z mapowaniami kluczy na wartości.
Możesz na przykład zdefiniować plik /path/to/keystore.json
jako
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
Następnie dodaj te wiersze w pliku konfiguracji globalnej TF:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>
Podczas wykonywania powiązanych testów możesz teraz przekazywać wartości jako USE_KEYSTORE@test_account
, a TF będzie następnie wysyłać zapytania do kluczowego repozytorium i używać jego wartości w ramach testu.
Plik magazynu kluczy oparty na hoście
Aby zdefiniować pary klucz-wartość na podstawie hosta, możesz zdefiniować plik /path/to/keystore_ssid.json
jako
{
"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"
}
}
Kluczem wpisu w pliku jest wzorzec wyrażenia regularnego (wyrażenie regularne) odpowiadającej nazwie hosta, a wartością jest zbiór par klucz-wartość dla dowolnego hosta o pasującej nazwie hosta.
Następnie zaktualizuj plik konfiguracji globalnej TF, aby uwzględnić plik klucza hosta:
<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>
Wartość klucza zdefiniowanego w pliku magazynu kluczy hosta zastępuje wartość z pliku magazynu kluczy określonego za pomocą parametru json-key-store-file
.
Jeśli w archiwu kluczy znajduje się wiele plików archiwów kluczy hosta, kolejność ma znaczenie. Jeśli wartość klucza jest zdefiniowana w wielu plikach, wartość w ostatnim takim pliku zastępuje wartość w pozostałych.