Tradefed inclui o conceito de keystore , onde os segredos podem ser armazenados em um serviço de keystore e solicitados no tempo de execução do teste para uso durante o teste.
Como usar o armazenamento de chaves
Para usar o keystore, você precisa primeiro definir a origem do keystore em sua configuração global .
Uma vez feito, você pode usar as chaves armazenadas via: USE_KEYSTORE@{key}
JSONFileKeyStore
A implementação de amostra no núcleo do Tradefed usa um keystore JSON, JSONFileKeyStoreClient
. Para usar esse keystore, você deve definir um arquivo de chave JSON que tenha mapeamentos de chave para valor.
Por exemplo, você pode definir um arquivo /path/to/keystore.json
como
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
Em seguida, você adicionaria as seguintes linhas em seu arquivo de configuração global do TF:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>
Ao executar testes relacionados, agora você pode passar valores como USE_KEYSTORE@test_account
, que o TF consultará o keystore e usará seu valor como parte do teste.
Arquivo de armazenamento de chaves baseado em host
Para definir pares de valores-chave baseados em host, você pode definir um arquivo /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"
}
}
A chave de uma entrada no arquivo é um padrão de expressão regular (regex) para o nome do host e o valor é o conjunto de pares chave-valor para qualquer host com um nome de host correspondente.
Em seguida, atualize seu arquivo de configuração global do TF para incluir o arquivo keystore baseado em 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>
O valor de uma chave definida em um arquivo de armazenamento de chaves baseado em host substitui aquele definido no arquivo de armazenamento de chaves especificado com json-key-store-file
.
Quando vários arquivos de keystore baseados em host estão presentes no keystore, a ordem é importante. Se o valor de uma chave for definido em vários arquivos, o valor no último desses arquivos substituirá o restante.