Android Test Station รองรับอุปกรณ์เสมือนของ Cuttlefish ที่ให้คุณทำการทดสอบได้โดยไม่ต้องใช้อุปกรณ์ Android จริง หมึกกระดองเหมาะที่จะทดสอบ ฟังก์ชันที่ไม่ต้องใช้ฮาร์ดแวร์ ก่อนเริ่มใช้อุปกรณ์เสมือน ให้ทำตามคู่มือผู้ใช้เพื่อติดตั้ง Android Test Station
ATS รองรับอุปกรณ์เสมือนใน 2 โหมด ได้แก่ ภายในและระยะไกล ตารางต่อไปนี้แสดงการเปรียบเทียบ 2 โหมด
อุปกรณ์เสมือนในเครื่อง | อุปกรณ์เสมือนระยะไกล |
---|---|
เรียกใช้ในโฮสต์ของผู้ปฏิบัติงาน ATS | เรียกใช้บนโฮสต์ระยะไกลที่โฮสต์ของผู้ปฏิบัติงาน ATS สามารถเข้าถึงได้ผ่าน SSH |
แบบ x86 | อาจเป็น x86 หรือ ARM ขึ้นอยู่กับสถาปัตยกรรมของโฮสต์ |
ตั้งค่าได้ง่ายขึ้น | ตั้งค่ายากขึ้น |
อุปกรณ์เสมือนในเครื่องและอุปกรณ์ระยะไกลสามารถเปิดใช้แยกกันได้ ดูรายละเอียดเกี่ยวกับแต่ละโหมดได้ที่
ตั้งค่าอุปกรณ์เสมือนเฉพาะที่
ส่วนนี้จะอธิบายขั้นตอนการตั้งค่า ATS สำหรับอุปกรณ์เสมือนในเครื่อง
ติดตั้งทรัพยากร Dependency ของ Cuttlefish
เรียกใช้คำสั่งต่อไปนี้เพื่อให้แน่ใจว่าได้โหลดโมดูลเคอร์เนลที่จำเป็นแล้ว
sudo modprobe -a kvm tun vhost_net vhost_vsock
เริ่ม Android Test Station ด้วยอุปกรณ์เสมือนในเครื่อง
ก่อนเริ่มต้น ATS ให้ตรวจสอบว่าอินสแตนซ์ Cuttlefish ทั้งหมดหยุดทำงานแล้ว ATS จะเปิดและหยุดอุปกรณ์เสมือนโดยอัตโนมัติในระหว่างรอบการทดสอบ และอินสแตนซ์ Cuttlefish ที่มีอยู่จะขัดแย้งกับอินสแตนซ์ที่จัดการโดย ATS ดูรายละเอียดเกี่ยวกับการหยุดอินสแตนซ์ Cuttlefish ได้ที่หยุดหมึกกระดอง
หากต้องการเปิดใช้อุปกรณ์เสมือนในเครื่อง ให้เรียกใช้คำสั่งต่อไปนี้
mtt start --max_local_virtual_devices N
N
คือจำนวนอุปกรณ์เสมือนสูงสุดที่ ATS จัดสรรได้พร้อมกัน ตัวเลขเริ่มต้นคือ 0
หากคำสั่งล้มเหลวเนื่องจากไม่มีโหนดของอุปกรณ์ ให้ทำตามขั้นตอนในข้อความแสดงข้อผิดพลาดเพื่อโหลดโมดูลเคอร์เนล หากยังคงล้มเหลว ให้รีบูตเครื่อง
ตั้งค่าอุปกรณ์เสมือนระยะไกล
ส่วนนี้จะอธิบายขั้นตอนการตั้งค่า ATS สำหรับอุปกรณ์เสมือนระยะไกล
ติดตั้งทรัพยากร Dependency ของ Cuttlefish
หากต้องการติดตั้งทรัพยากร Dependency ของ Cuttlefish ให้ทำตามขั้นตอนต่อไปนี้
ติดตั้งแพ็กเกจ Debian บนโฮสต์ระยะไกลโดยทำตามขั้นตอนใน Cuttlefish > เริ่มต้นใช้งาน
กำหนดค่าจำนวนอุปกรณ์เสมือนสูงสุดบนโฮสต์ระยะไกลโดยทำตามขั้นตอนต่อไปนี้
- แก้ไข
/etc/default/cuttlefish-host-resources
ที่มีสิทธิ์ระดับรูท - ตั้งค่า
num_cvd_accounts
เป็นจำนวนสูงสุดของอุปกรณ์เสมือนที่จะอนุญาตในโฮสต์นี้ - เรียกใช้
sudo systemctl restart cuttlefish-host-resources
- เรียกใช้
ifconfig
และยืนยันจำนวนอินเทอร์เฟซcvd-wtap-*
- แก้ไข
สร้างบัญชี SSH
เนื่องจากโฮสต์ ATS เชื่อมต่อกับโฮสต์ระยะไกลผ่าน SSH คุณจึงต้องเตรียมบัญชี SSH บนโฮสต์ระยะไกล เนื่องจาก ATS จัดการกับไฟล์ในไดเรกทอรี HOME เราขอแนะนำให้คุณสร้างบัญชีเฉพาะ
โฮสต์ ATS ต้องใช้คีย์ SSH 2 คีย์เพื่อเข้าสู่ระบบโฮสต์ระยะไกลโดยไม่ต้องใช้รหัสผ่าน ขั้นตอนต่อไปนี้อธิบายวิธีตั้งค่าคีย์ SSH
- หากต้องการสร้างคีย์ส่วนตัวและคีย์สาธารณะ ให้เรียกใช้
ssh-keygen
ในโฮสต์ ATS - อัปโหลดและเพิ่มคีย์สาธารณะไปยัง
~/.ssh/authorized_keys
ในโฮสต์ระยะไกล
หากบัญชี SSH ของคุณแตกต่างจากที่ใช้ติดตั้งทรัพยากร Dependency ของ Cuttlefish หากต้องการอนุญาตให้บัญชี SSH เปิดใช้งาน Cuttlefish ได้ ให้เรียกใช้คำสั่งนี้บนโฮสต์ระยะไกล
sudo usermod -aG kvm,cvdnetwork,render $USER
เริ่ม ATS ด้วยอุปกรณ์เสมือนระยะไกล
ก่อนเริ่มต้น ATS ให้ตรวจสอบว่าอินสแตนซ์ Cuttlefish ทั้งหมดหยุดทำงานแล้ว ATS จะเปิดและหยุดอุปกรณ์เสมือนโดยอัตโนมัติในระหว่างรอบการทดสอบ และอินสแตนซ์ Cuttlefish ที่มีอยู่จะขัดแย้งกับอินสแตนซ์ที่จัดการโดย ATS ดูรายละเอียดเกี่ยวกับการหยุดอินสแตนซ์ Cuttlefish ได้ที่หยุดหมึกกระดอง
ขอแนะนำให้ตั้งค่าโฮสต์ ATS และโฮสต์ระยะไกลในเครือข่ายภายใน เพื่อประสิทธิภาพที่ดีขึ้น
หากต้องการเปิดใช้อุปกรณ์เสมือนระยะไกล ให้เรียกใช้คำสั่งนี้ในโฮสต์ ATS
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY
USER
คือชื่อบัญชี SSH
HOST
คือที่อยู่ IPv4 ของโฮสต์ระยะไกล
N
คือจำนวนอุปกรณ์เสมือนสูงสุดที่ ATS จัดสรรได้พร้อมกัน
KEY
คือเส้นทางไปยังคีย์ SSH ส่วนตัวในโฮสต์ ATS
คำสั่งจะทดสอบการเชื่อมต่อกับโฮสต์ระยะไกลก่อนเริ่ม ATS
หากเห็นข้อความเตือน เช่น The specified --remote_virtual_devices and --remote_ssh_key are invalid.
ในคอนโซล คุณควรตรวจสอบการตั้งค่า SSH
โฮสต์ ATS จะเชื่อมต่อกับโฮสต์ระยะไกลได้สูงสุด 1 โฮสต์เพื่อหลีกเลี่ยงความขัดแย้งของทรัพยากร โฮสต์ ATS หลายรายการเชื่อมต่อกับโฮสต์ระยะไกลพร้อมกันไม่ได้
ทำการทดสอบด้วยอุปกรณ์เสมือน
ส่วนนี้จะอธิบายขั้นตอนการทำการทดสอบในอุปกรณ์เสมือนในเครื่องหรือระยะไกล
เลือกอุปกรณ์
ในรายการอุปกรณ์ ATS จะแสดงอุปกรณ์เสมือนเป็นตัวยึดตำแหน่งแทนหมายเลขซีเรียลจริง ตัวยึดตำแหน่งจะแสดงในรูปแบบ HOSTNAME:local-virtual-device-ID สำหรับอุปกรณ์เสมือนในเครื่อง remote-virtual-ADDRESS-ID สำหรับอุปกรณ์เสมือนระยะไกล รัฐอาจเป็น พร้อมใช้งานหรือจัดสรรแล้ว ตัวยึดตำแหน่งที่อยู่ในสถานะพร้อมใช้งานจะระบุว่าอุปกรณ์เสมือนไม่ได้ทำงานอยู่และจัดสรรสำหรับการทดสอบได้
รูปที่ 1 การเลือกอุปกรณ์เสมือน
เพิ่มการดำเนินการของอุปกรณ์
หากเลือกอุปกรณ์เสมือนอย่างน้อย 1 เครื่อง ควรเพิ่มการดำเนินการของอุปกรณ์ที่เกี่ยวข้องลงในรายการโดยอัตโนมัติ การดำเนินการดังกล่าวประกอบด้วยพารามิเตอร์ TradeFed ที่จำเป็นและทรัพยากรทดสอบเพื่อสร้างอุปกรณ์เสมือน
รูปที่ 2 การดำเนินการของอุปกรณ์สำหรับอุปกรณ์เสมือนเฉพาะที่
รูปที่ 3 การดำเนินการของอุปกรณ์สำหรับอุปกรณ์เสมือนระยะไกล
ตั้งค่าทรัพยากรการทดสอบ
อุปกรณ์เสมือนของ Cuttlefish ต้องใช้ทรัพยากรการทดสอบ 3 รายการ ได้แก่ เครื่องมือเครื่องเสมือน รูปภาพ และ Acloud
ในบิลด์ทั่วไปของ Cuttlefish (เช่น aosp_cf_x86_64_phone
ใน ci.android.com) เครื่องมือเครื่องเสมือนจะอัดแน่นอยู่ใน cvd-host_package.tar.gz
และรูปภาพจะอยู่ใน aosp_cf_x86_64_phone-img-*.zip
ไบนารีของ Acloud นั้นมีอยู่ใน ATS
และเข้ากันได้กับ Cuttlefish ทุกเวอร์ชัน ต้องเปลี่ยน URL การดาวน์โหลดเริ่มต้นของไบนารี Acloud เพื่อจุดประสงค์ในการแก้ไขข้อบกพร่องเท่านั้น
รูปที่ 4 ทรัพยากรทดสอบสำหรับอุปกรณ์เสมือน
ดูการดำเนินการทดสอบ
ระบบจะรวบรวมบันทึกของอุปกรณ์ ซึ่งรวมถึง kernel.log
, host_log.txt
และ launcher.log
ไว้ในโฟลเดอร์ไฟล์เอาต์พุต คลิกดูไฟล์เอาต์พุตเพื่อดู
รูปที่ 5 ผลการทดสอบ