Tradefed 包含密钥库的概念,密钥可存储在密钥库服务中,并在测试运行时请求以在测试期间使用。
使用密钥库
要使用密钥库,您需要先在全局配置中定义密钥库的来源。
完成后,您便可以通过以下方式使用存储的密钥:USE_KEYSTORE@{key}
JSONFileKeyStore
Tradefed Core 中的示例实现使用 JSON 密钥库 JSONFileKeyStoreClient
。要使用此密钥库,您需要定义一个 JSON 密钥文件,其中包含密钥到值的映射。
例如,您可以将 /path/to/keystore.json
文件定义为
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
然后,您需要在 TF 全局配置文件中添加以下行
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>
执行相关测试时,您现在可以将值作为 USE_KEYSTORE@test_account
传入,TF 随后将查询密钥库并使用其值作为测试的一部分。
基于主机名的密钥库文件
要定义基于主机的键值对,您可以将 /path/to/keystore_ssid.json
文件定义为
{
"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"
}
}
文件中的条目的键是主机名的正则表达式 (regex) 模式,值是任何具有匹配主机名的主机的键值对集。
然后更新您的 TF 全局配置文件以包含基于主机的密钥库文件
<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>
在基于主机的密钥库文件中定义的密钥的值会覆盖使用 json-key-store-file
指定的密钥库文件中定义的值。
当密钥库中存在多个基于主机的密钥库文件时,顺序很重要。如果密钥的值在多个文件中定义,则最后一个此类文件中的值将覆盖其余文件。