ATS ของ OmniLab รองรับอุปกรณ์เสมือน Cuttlefish ซึ่งช่วยให้คุณเรียกใช้การทดสอบได้โดยไม่ต้องใช้อุปกรณ์ Android จริง Cuttlefish เหมาะสำหรับ การทดสอบฟังก์ชันที่ไม่ขึ้นอยู่กับฮาร์ดแวร์ ก่อนเริ่มใช้อุปกรณ์เสมือน ให้ทำตามคู่มือผู้ใช้เพื่อติดตั้ง OmniLab ATS
OmniLab ATS รองรับอุปกรณ์เสมือนใน 2 โหมด ได้แก่ โหมดในเครื่องและโหมดระยะไกล ตารางต่อไปนี้แสดงการเปรียบเทียบ 2 โหมด
| อุปกรณ์เสมือนในเครื่อง | อุปกรณ์เสมือนระยะไกล |
|---|---|
| ทำงานบนโฮสต์ของผู้ปฏิบัติงาน ATS | ทำงานบนโฮสต์ระยะไกลที่โฮสต์ของ Worker ATS เข้าถึงได้ผ่าน SSH |
| ใช้ x86 | อาจเป็น x86 หรือ ARM ขึ้นอยู่กับสถาปัตยกรรมของโฮสต์ |
| ตั้งค่าได้ง่ายกว่า | ตั้งค่ายากกว่า |
คุณเปิดใช้เครื่องเสมือนในเครื่องและระยะไกลแยกกันได้ ดูรายละเอียดเกี่ยวกับ แต่ละโหมดได้ที่
ตั้งค่าอุปกรณ์เสมือนในเครื่อง
ส่วนนี้จะอธิบายขั้นตอนในการตั้งค่า ATS ของ OmniLab สำหรับอุปกรณ์เสมือนในพื้นที่
ติดตั้งการอ้างอิงของ 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 NN คือจำนวนอุปกรณ์เสมือนสูงสุดที่ 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 ในโฮสต์ระยะไกล เนื่องจาก ATS ของ OmniLab จะจัดการไฟล์ในไดเรกทอรี HOME เราจึงขอแนะนำให้คุณสร้างบัญชีเฉพาะ
โฮสต์ OmniLab ATS ต้องใช้คู่คีย์ SSH เพื่อเข้าสู่ระบบโฮสต์ระยะไกล โดยไม่ต้องใช้รหัสผ่าน ขั้นตอนต่อไปนี้จะอธิบายวิธีตั้งค่าคีย์ 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 และ โฮสต์ระยะไกลในเครือข่ายท้องถิ่นเพื่อประสิทธิภาพที่ดีขึ้น
หากต้องการเปิดใช้อุปกรณ์เสมือนระยะไกล ให้เรียกใช้คำสั่งนี้ในโฮสต์ OmniLab ATS
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEYUSER คือชื่อบัญชี 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 หลายรายการจะเชื่อมต่อกับโฮสต์ระยะไกล 1 รายพร้อมกันไม่ได้
ทำการทดสอบกับอุปกรณ์เสมือน
ส่วนนี้จะอธิบายขั้นตอนการทดสอบบนอุปกรณ์เสมือนในเครื่องหรือระยะไกล
เลือกอุปกรณ์
ในรายการอุปกรณ์ OmniLab ATS จะแสดงอุปกรณ์เสมือนเป็นตัวยึดตำแหน่งแทน หมายเลขซีเรียลจริง ตัวยึดตำแหน่งจะแสดงในรูปแบบ HOSTNAME:local-virtual-device-ID สำหรับอุปกรณ์เสมือนในเครื่อง และ remote-virtual-ADDRESS-ID สำหรับอุปกรณ์เสมือนระยะไกล สถานะจะเป็นพร้อมใช้งานหรือจัดสรรแล้ว ตัวยึดตำแหน่งในสถานะพร้อมใช้งานบ่งชี้ว่า อุปกรณ์เสมือนไม่ได้ทำงานและสามารถจัดสรรสำหรับการทดสอบได้
รูปที่ 1 การเลือกอุปกรณ์เสมือน
เพิ่มการทำงานของอุปกรณ์
หากเลือกอุปกรณ์เสมือนอย่างน้อย 1 เครื่อง ระบบจะเพิ่มการดำเนินการของอุปกรณ์ที่เชื่อมโยงลงในรายการโดยอัตโนมัติ การดำเนินการประกอบด้วยพารามิเตอร์ TradeFed ที่จำเป็นและทรัพยากรการทดสอบเพื่อสร้างอุปกรณ์เสมือน
รูปที่ 2 การดำเนินการกับอุปกรณ์สำหรับอุปกรณ์เสมือนในเครื่อง
รูปที่ 3 การดำเนินการกับอุปกรณ์สำหรับอุปกรณ์เสมือนระยะไกล
ตั้งค่าทรัพยากรทดสอบ
อุปกรณ์เสมือน Cuttlefish ต้องใช้ทรัพยากรการทดสอบ 3 อย่าง ได้แก่ เครื่องมือเครื่องเสมือน รูปภาพ และ Acloud
ในการสร้าง Cuttlefish ทั่วไป (เช่น aosp_cf_x86_64_only_phone-userdebug บน ci.android.com
) เครื่องมือเครื่องเสมือนจะอยู่ใน cvd-host_package.tar.gz และ
รูปภาพจะอยู่ใน aosp_cf_x86_64_only_phone-img-*.zip ไบนารี Acloud
สร้างขึ้นใน OmniLab ATS และใช้ได้กับ Cuttlefish ทุกเวอร์ชัน คุณจะต้องเปลี่ยน
URL การดาวน์โหลดเริ่มต้นของไบนารี Acloud เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง
เท่านั้น
รูปที่ 4 ทดสอบทรัพยากรสำหรับอุปกรณ์เสมือน
ดูการทดสอบ
ระบบจะรวบรวมบันทึกของอุปกรณ์ ซึ่งรวมถึง kernel.log, host_log.txt และ launcher.log ไว้ในโฟลเดอร์ไฟล์เอาต์พุต
คลิกดูไฟล์เอาต์พุตเพื่อดูไฟล์
รูปที่ 5 ผลการดำเนินการทดสอบ