Tradefed ประกอบด้วยแนวคิดของ keystore ซึ่งสามารถจัดเก็บข้อมูลลับไว้ในบริการคีย์สโตร์และขอใช้เมื่อทำการทดสอบในระหว่างการทดสอบ
ใช้คีย์สโตร์
หากต้องการใช้คีย์สโตร์ ก่อนอื่นคุณต้องกำหนดแหล่งที่มาสำหรับคีย์สโตร์ในการกำหนดค่าส่วนกลาง
เมื่อเสร็จแล้ว คุณจะใช้คีย์ที่เก็บไว้ได้ผ่าน 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"
}
}
คีย์ของรายการในไฟล์คือรูปแบบนิพจน์ทั่วไป (นิพจน์ทั่วไป) สำหรับชื่อโฮสต์ และค่าคือชุดคู่คีย์-ค่าสำหรับโฮสต์ที่มีชื่อโฮสต์ตรงกัน
จากนั้นอัปเดตไฟล์การกําหนดค่า 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
เมื่อมีไฟล์คีย์สโตร์ตามโฮสต์หลายไฟล์อยู่ในคีย์สโตร์ ลำดับจะมีความสำคัญ หากมีการกำหนดค่าสำหรับคีย์ในหลายไฟล์ ค่าในไฟล์สุดท้ายจะลบล้างส่วนที่เหลือ