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