Tradefed 包含密鑰庫的概念,其中機密可以存儲在密鑰庫服務中,並在測試運行時請求以在測試期間使用。
如何使用密鑰庫
要使用密鑰庫,您需要首先在全局配置中定義密鑰庫的來源。
完成後,您可以通過以下方式使用存儲的密鑰: USE_KEYSTORE@{key}
JSONFileKeyStore
Tradefed 核心中的示例實現使用 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
file 指定的密鑰庫文件中定義的值。
當密鑰庫中存在多個基於主機的密鑰庫文件時,順序很重要。如果鍵的值在多個文件中定義,則最後一個此類文件中的值將覆蓋其余文件。