Lưu trữ khoá bí mật bằng kho khoá

Tradefed bao gồm khái niệm về kho khoá, nơi các thông tin bí mật có thể được lưu trữ trong dịch vụ kho khoá và được yêu cầu tại thời điểm chạy kiểm thử để sử dụng trong quá trình kiểm thử.

Sử dụng kho khoá

Để sử dụng kho khoá, trước tiên, bạn cần xác định nguồn cho kho khoá trong cấu hình toàn cục.

Sau khi hoàn tất, bạn có thể sử dụng các khoá đã lưu trữ thông qua: USE_KEYSTORE@{key}

JSONFileKeyStore

Phương thức triển khai mẫu trong lõi Tradefed sử dụng kho khoá JSON, JSONFileKeyStoreClient. Để sử dụng kho khoá này, bạn sẽ xác định một tệp khoá JSON có các mối liên kết khoá với giá trị.

Ví dụ: bạn có thể xác định tệp /path/to/keystore.json

{
  "test_account": "foo@gmail.com",
  "test_account_pwd": "helloworld",
  "wifi_lab_ssid": "Google_private_AP",
  "wifi_lab_pwd": "secret123",
}

Sau đó, bạn sẽ thêm các dòng sau vào tệp cấu hình chung TF:

<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>

Khi thực thi các chương trình kiểm thử có liên quan, bạn hiện có thể truyền các giá trị dưới dạng USE_KEYSTORE@test_account. Sau đó, TF sẽ truy vấn kho khoá và sử dụng giá trị đó trong quá trình kiểm thử.

Tệp kho khoá dựa trên máy chủ

Để xác định các cặp khoá-giá trị dựa trên máy chủ lưu trữ, bạn có thể xác định tệp /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"
  }
}

Khoá của một mục nhập trong tệp là mẫu biểu thức chính quy (regex) cho tên máy chủ và giá trị là tập hợp các cặp khoá-giá trị cho bất kỳ máy chủ lưu trữ nào có tên máy chủ phù hợp.

Sau đó, hãy cập nhật tệp cấu hình toàn cục TF để đưa tệp kho khoá dựa trên máy chủ vào:

<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>

Giá trị của khoá được xác định trong tệp kho khoá dựa trên máy chủ sẽ ghi đè giá trị được xác định trong tệp kho khoá được chỉ định bằng json-key-store-file.

Khi có nhiều tệp kho khoá dựa trên máy chủ trong kho khoá, thứ tự sẽ rất quan trọng. Nếu giá trị của một khoá được xác định trong nhiều tệp, thì giá trị trong tệp cuối cùng sẽ ghi đè các giá trị còn lại.