OmniLab ATS เป็นเครื่องมือทดสอบที่นักพัฒนาแอป Android และวิศวกรทดสอบสามารถใช้เพื่อใช้งานอินเทอร์เฟซผู้ใช้สำหรับเรียกใช้ชุดทดสอบ Android มาตรฐาน เช่น ชุดเครื่องมือทดสอบความเข้ากันได้ของ Android (CTS) เครื่องมือนี้ทำหน้าที่เป็นเว็บอินเทอร์เฟซสำหรับเฟรมเวิร์กการทดสอบต่างๆ เช่น Trade Federation (TF) และ Google Mobly ซึ่งช่วยให้คุณเรียกใช้ CTS และการทดสอบอุปกรณ์หลายเครื่องในชุดอุปกรณ์ทดสอบได้โดยมีการตั้งค่าเพียงเล็กน้อย รวมถึงกำหนดเวลาเพื่อเรียกใช้การทดสอบอย่างต่อเนื่อง
ตั้งค่า OmniLab ATS
ส่วนนี้จะอธิบายวิธีติดตั้งและตั้งค่า OmniLab ATS
OmniLab ATS ใช้ซอร์สโค้ดจากตำแหน่งต่อไปนี้
- OmniLab ATS ซอร์สโค้ด
- ซอร์สโค้ด TradeFed Cluster
ติดตั้ง OmniLab ATS
ปฏิบัติตามข้อกำหนดด้านฮาร์ดแวร์และซอฟต์แวร์สำหรับชุดทดสอบที่คุณเรียกใช้
ดูข้อกำหนดสำหรับ CTS ได้ที่ source.android.com
OmniLab ATS ไม่มีข้อกำหนดด้านฮาร์ดแวร์เพิ่มเติม แต่เราขอแนะนำให้ใช้ข้อกำหนดของโฮสต์ CTS เป็นจุดเริ่มต้น
การติดตั้ง OmniLab ATS ทําได้ 2 วิธีดังนี้
- เรียกใช้โปรแกรมติดตั้ง
- ติดตั้งด้วยตนเอง ซึ่งต้องติดตั้งโปรแกรมและทรัพยากรหลายรายการ
ติดตั้งด้วยโปรแกรมติดตั้ง
ใน Ubuntu 20.04 ขึ้นไป โปรแกรมติดตั้งจะติดตั้งและกําหนดค่าโปรแกรมและทรัพยากรทั้งหมดที่จําเป็นสําหรับเรียกใช้ OmniLab ATS
วิธีใช้โปรแกรมติดตั้ง
เรียกใช้โปรแกรมติดตั้งโดยทำดังนี้
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
เรียกใช้
mtt version
เพื่อตรวจสอบเวอร์ชัน OmniLab ATS CLI ที่ติดตั้ง
ติดตั้งด้วยตนเอง
ติดตั้ง Docker
ทำตามวิธีการติดตั้ง Docker Community Edition (CE) ในเครื่อง Linux
ทำตามขั้นตอนหลังการติดตั้งเพื่อจัดการ Docker ในฐานะผู้ใช้ที่ไม่ใช่รูท
คุณอาจต้องรีสตาร์ทหน้าต่างเทอร์มินัลหรือออกจากระบบแล้วลงชื่อเข้าใช้อีกครั้งเพื่อให้การเปลี่ยนแปลงสิทธิ์มีผล
ติดตั้ง Python 3
OmniLab ATS CLI ได้รับการยืนยันกับ Python เวอร์ชัน 3.7 ถึง 3.11
สำหรับ Ubuntu 16.04 หรือเก่ากว่า ให้เพิ่มที่เก็บข้อมูลสำหรับ Python 3 ก่อนโดยทำอย่างใดอย่างหนึ่งต่อไปนี้
ใช้คําสั่งนี้
sudo add-apt-repository ppa:deadsnakes/ppa
สร้างและติดตั้งที่เก็บจากแหล่งที่มา
หากต้องการติดตั้ง Python 3 ให้เรียกใช้คำสั่งต่อไปนี้
sudo apt-get update
sudo apt install python3 python3-distutils
หากต้องการติดตั้ง Python 3 เวอร์ชันที่เจาะจง (เช่น 3.10) ให้เรียกใช้คำสั่งเหล่านี้แทน
sudo apt-get update
sudo apt install python3.10 python3.10-distutils
รับ OmniLab ATS CLI
ดาวน์โหลดแพ็กเกจอินเทอร์เฟซบรรทัดคำสั่ง (CLI) ที่นี่
เริ่ม OmniLab ATS
เริ่ม OmniLab ATS ด้วยคำสั่งต่อไปนี้
mtt start
เมื่อเริ่ม UI เป็นครั้งแรก ระบบอาจใช้เวลา 2-3 นาทีจึงจะปรากฏ CLI จะแสดง URL ของเว็บเพื่อเข้าถึง UI ในเบราว์เซอร์ โดยค่าเริ่มต้น URL ของเว็บจะเป็น localhost:8000
หากจำเป็น คุณสามารถเปลี่ยนพอร์ตเริ่มต้นเมื่อเริ่มต้นด้วย Flag --port
หากมีเวอร์ชันใหม่พร้อมใช้งาน คุณสามารถอัปเดตเป็นเวอร์ชันปัจจุบันได้ คุณสามารถตรวจสอบบันทึกประจำรุ่นเพื่อดูรุ่นล่าสุด
หากต้องการอัปเดตเป็นเวอร์ชันปัจจุบัน ให้เรียกใช้คำสั่งต่อไปนี้
mtt start --force_update
หากต้องการหยุดแอป ให้เรียกใช้คำสั่งต่อไปนี้
mtt stop
หากต้องการดูรายการคำสั่งอื่นๆ ให้ใช้คำสั่งต่อไปนี้
mtt --help
สำรองและกู้คืนฐานข้อมูล
หากต้องการสำรองข้อมูลฐานข้อมูล OmniLab ATS ให้หยุดแอปและเรียกใช้คำสั่งต่อไปนี้ ซึ่งจะสำรองข้อมูลฐานข้อมูลปัจจุบันเป็นไฟล์ TAR ชื่อ mtt-backup.tar
ในไดเรกทอรีบ้าน
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."
หากต้องการกู้คืน ให้เรียกใช้คําสั่งต่อไปนี้ก่อนเริ่มแอป
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"
วิซาร์ดการตั้งค่า
หลังจากติดตั้งและเรียกใช้ OmniLab ATS เป็นครั้งแรก วิซาร์ดการตั้งค่าจะแนะนำคุณผ่านขั้นตอนต่างๆ เพื่อช่วยปรับแต่งเครื่องมือให้เหมาะกับสภาพแวดล้อมของคุณ การเปลี่ยนแปลงที่คุณทำที่นี่จะกำหนดค่าใหม่ได้ในภายหลังผ่านหน้าการตั้งค่า
กู้คืนข้อมูลสำรองการกําหนดค่า
หากมีไฟล์การกําหนดค่าที่สำรองข้อมูลไว้จากโฮสต์ OmniLab ATS อื่น คุณสามารถอัปโหลดไฟล์เพื่อคัดลอกการกําหนดค่าที่แก้ไขจากโฮสต์นั้นได้โดยคลิกปุ่มอัปโหลดไฟล์
รูปที่ 1 การกู้คืนข้อมูลสํารองการกําหนดค่า
ตั้งค่าบัญชีบริการเริ่มต้น
คุณสามารถตั้งค่าบัญชีบริการที่ OmniLab ATS จะใช้โดยค่าเริ่มต้นเมื่อเข้าถึงทรัพยากร (เช่น Google Cloud Storage, Google ไดรฟ์) หากต้องการตรวจสอบสิทธิ์บัญชีบริการ ให้คลิกอัปโหลดคีย์บัญชีบริการ แล้วเลือกไฟล์คีย์ JSON ของบัญชีบริการ
รูปที่ 2 การตั้งค่าบัญชีบริการ
เมื่อตรวจสอบสิทธิ์บัญชีบริการสําเร็จ อีเมลของบัญชีจะปรากฏที่มุมขวาบนของหน้า หากต้องการเปลี่ยนบัญชีบริการ ให้คลิกชื่อบัญชี นำบัญชีเริ่มต้นปัจจุบันออก และอัปโหลดคีย์บัญชีบริการใหม่
รูปที่ 3 การเปลี่ยนบัญชีบริการ
นำเข้าชุดการกําหนดค่า
ชุดการกําหนดค่าคือชุดการกําหนดค่าสําหรับการเรียกใช้ชุดทดสอบ ซึ่งรวมถึงการดําเนินการของอุปกรณ์ที่เกี่ยวข้องและแชแนลการสร้าง ชุดการกําหนดค่าจะโฮสต์ในที่เก็บข้อมูล Google Cloud Storage (GCS) ที่เฉพาะเจาะจง หลังจากตรวจสอบสิทธิ์ช่องทางการสร้าง GCS ด้วยบัญชี Google แล้ว คุณจะเห็นรายการชุดการกําหนดค่าทั้งหมดที่ใช้ได้
เลือกชุดการกําหนดค่าที่ต้องการเพิ่มลงในโฮสต์สถานีทดสอบ แล้วคลิกนําเข้ารายการที่เลือก
รูปที่ 4 การนําเข้าชุดการกําหนดค่า
รวมการตั้งค่า Wi-Fi
การทดสอบ CTS บางรายการกำหนดให้อุปกรณ์ต้องเชื่อมต่อกับฮอตสปอต Wi-Fi หากต้องการเลือกเครือข่าย Wi-Fi ให้ป้อน WiFi SSID และ WiFi PSK (ไม่บังคับ)
รูปที่ 5 การตั้งค่าฮอตสปอต Wi-Fi
หลังจากทําตามวิซาร์ดการตั้งค่าเสร็จแล้ว หน้าเว็บจะโหลดซ้ำโดยใช้การตั้งค่าใหม่
เชื่อมต่ออุปกรณ์
คุณต้องเปิดใช้การแก้ไขข้อบกพร่อง USB เพื่อใช้อุปกรณ์ทดสอบ วิธีเปิดใช้การแก้ไขข้อบกพร่อง
ทําตามวิธีการในหัวข้อเปิดใช้ตัวเลือกสําหรับนักพัฒนาแอปและการแก้ไขข้อบกพร่อง
หากวางแผนที่จะใช้บิลด์ Android ทดสอบที่โหลดคีย์ ADB ที่กําหนดเองไว้ล่วงหน้า ให้ใส่ไฟล์
.adb_key
ที่กําหนดเองไว้ในไดเรกทอรี~/.android/
ระบบจะโหลดไฟล์โดยอัตโนมัติและส่งไปยัง ADB เพื่อเปิดใช้การแก้ไขข้อบกพร่องผ่าน USB โดยอัตโนมัติหลังจากแฟลชอุปกรณ์สำหรับอุปกรณ์ที่ใช้บิลด์เหล่านั้น
เชื่อมต่ออุปกรณ์กับเครื่องโฮสต์โดยใช้ USB
อุปกรณ์จะปรากฏในแท็บอุปกรณ์ OmniLab ATS ภายใน 1 นาทีหลังจากรีเฟรชเว็บอินเทอร์เฟซ นอกจากนี้ คุณยังดูสถานะของอุปกรณ์ในแท็บนี้ได้อีกด้วย
รูปที่ 6 การเชื่อมต่ออุปกรณ์
สถานะต่างๆ ของอุปกรณ์มีดังนี้
- พร้อมใช้งาน - อุปกรณ์เชื่อมต่ออยู่และพร้อมทำการทดสอบ
- จัดสรรแล้ว - อุปกรณ์เชื่อมต่ออยู่และกำลังทำการทดสอบ อุปกรณ์แต่ละเครื่องจะทำการทดสอบได้ครั้งละ 1 รายการเท่านั้น ดังนั้นอุปกรณ์จะต้องทำการทดสอบปัจจุบันให้เสร็จสิ้นก่อนจึงจะทำการทดสอบใหม่ได้
เรียกใช้การทดสอบ
เลือกการทดสอบ
OmniLab ATS มาพร้อมกับชุดการกําหนดค่า CTS ที่รวมไว้ล่วงหน้า หากต้องการเรียกใช้การทดสอบอย่างใดอย่างหนึ่งเหล่านี้ ให้ไปที่แท็บชุดทดสอบ แล้วคลิกเรียกใช้การทดสอบสําหรับการทดสอบที่เลือก
รูปที่ 7 การเลือกการทดสอบ
หากต้องการแก้ไขหรือเพิ่มการทดสอบใหม่ โปรดดูการเพิ่มการทดสอบ
กำหนดค่าการทดสอบ
แก้ไขพารามิเตอร์ที่จะใช้กับการทดสอบนี้ พารามิเตอร์ส่วนใหญ่จะป้อนข้อมูลล่วงหน้าด้วยค่าที่กําหนดในการกําหนดค่าการทดสอบที่เลือก
ขั้นตอนนี้ทําเสร็จได้โดยใช้ค่าเริ่มต้น แต่คุณเปลี่ยนพารามิเตอร์ใดก็ได้ เช่น Max Retry และ Command ให้เหมาะกับความต้องการ
รูปที่ 8 การกำหนดค่าการทดสอบ
พารามิเตอร์การทดสอบมีดังนี้
- ชื่อ - ชื่อชุดทดสอบที่ต้องการเรียกใช้
- จํานวนการเรียกใช้ - จํานวนครั้งที่การทดสอบนี้ควรทํางานเมื่อกําหนดเวลาไว้ กำหนดเวลาการทดสอบโดยใช้ Trade Federation ซึ่งจะทำการทดสอบพร้อมกันได้สูงสุด 20 รายการหากมีขีดความสามารถ
- การลองใหม่สูงสุด - จำนวนครั้งที่จะลองเรียกใช้การทดสอบอีกครั้งสูงสุด หากการทดสอบอย่างน้อย 1 รายการไม่สําเร็จ โดยปกติแล้วค่านี้จะตั้งค่าเป็น 4-6 ครั้งสำหรับการทดสอบ CTS แบบเต็มเพื่อจัดการกับการทดสอบที่ไม่เสถียร
- เวลาหมดอายุของคิว - หากการทดสอบอยู่ในสถานะรอดำเนินการนานเกินไป ระบบจะยกเลิกการทดสอบโดยอัตโนมัติ ระบุระยะเวลาที่รอก่อนการยกเลิกได้ที่นี่ ค่าเริ่มต้นคือ 24 ชั่วโมง
คําสั่ง - คําสั่งเพื่อเรียกใช้ชุดทดสอบ คุณสามารถป้อนอาร์กิวเมนต์บรรทัดคำสั่งเพิ่มเติมได้ที่นี่ เช่น เรียกใช้ข้อบังคับเฉพาะใน CTS 8.1 ด้วย
cts-suite -m ShortModuleName
คำสั่งลองอีกครั้ง - คำสั่งสำหรับลองใช้ชุดทดสอบอีกครั้ง คุณเพิ่มอาร์กิวเมนต์บรรทัดคำสั่งเพิ่มเติมได้ที่นี่ ตัวอย่างเช่น หากต้องการลองทดสอบเฉพาะข้อบังคับใน CTS 8.1 อีกครั้ง ให้ใช้คำสั่งต่อไปนี้
cts --retry 0 -m ShortModuleName
อาร์กิวเมนต์ "ลองอีกครั้ง" อาจแตกต่างจากอาร์กิวเมนต์ที่ใช้ได้กับคําสั่งแรก ดังนั้นโปรดตรวจสอบพารามิเตอร์ที่รองรับในเว็บไซต์อย่างเป็นทางการของชุดทดสอบที่เลือก
การทดสอบครั้งก่อนหน้า - หากต้องการเรียกใช้การทดสอบครั้งก่อนหน้าอีกครั้ง ให้ทำดังนี้
ในพื้นที่ - หากการเรียกใช้เริ่มต้นในโฮสต์ปัจจุบัน ให้ป้อนรหัสการทดสอบที่เห็นเมื่อดูรายละเอียดของการทดสอบ
รูปที่ 9 การทดสอบครั้งก่อนในเครื่อง
ระยะไกล - หากการเรียกใช้เริ่มต้นในโฮสต์อื่น ให้อัปโหลดไฟล์ผลการทดสอบโดยเลือกระยะไกล คลิกอัปโหลดไฟล์ผลการทดสอบ แล้วเลือกไฟล์จากพื้นที่เก็บข้อมูลในเครื่อง
รูปที่ 10 การทดสอบระยะไกลครั้งก่อนหน้า
เลือกอุปกรณ์
คลิกช่องทําเครื่องหมายเพื่อเลือกอุปกรณ์ที่จะจัดสรรสําหรับการเรียกใช้ชุดทดสอบ จำนวนกลุ่มควรเปลี่ยนแปลงโดยอัตโนมัติให้ตรงกับจำนวนอุปกรณ์ที่เลือก
รูปที่ 11 การเลือกอุปกรณ์
หากต้องการเลือกอุปกรณ์ตามแอตทริบิวต์อื่นนอกเหนือจากหมายเลขซีเรียลของอุปกรณ์ ให้ป้อน "ข้อมูลจำเพาะของอุปกรณ์" ด้วยตนเอง ตัวอย่างเช่น หากต้องการเลือกอุปกรณ์ 3 เครื่องที่มีชื่อผลิตภัณฑ์เป็น "bramble" ให้ป้อนข้อมูลต่อไปนี้
product:bramble;product:bramble;product:bramble
แอตทริบิวต์ที่รองรับมีดังนี้
- build_id
- device_serial
- device_type
- hostname
- ผลิตภัณฑ์
- product_variant
- sim_state
อุปกรณ์ที่เลือกทั้งหมดต้องอยู่ในสถานะพร้อมใช้งานเพื่อเรียกใช้การทดสอบ และอุปกรณ์ทั้งหมดจะเปลี่ยนเป็นสถานะจัดสรรแล้วเมื่อเรียกใช้การทดสอบ การทดสอบจะอยู่ในสถานะรอดำเนินการขณะที่รอให้อุปกรณ์พร้อมใช้งาน
เพิ่มการดำเนินการของอุปกรณ์
การดำเนินการของอุปกรณ์คือสคริปต์ที่ทำงานได้ก่อนการทดสอบแต่ละครั้ง การดำเนินการบางอย่างของอุปกรณ์จะได้รับการกําหนดค่าไว้แล้ว เช่น การแฟลชและการรีบูต หากต้องการสร้างการดำเนินการของอุปกรณ์ใหม่ โปรดดูหัวข้อสร้างการดำเนินการของอุปกรณ์ใหม่
รูปที่ 12 การดำเนินการของอุปกรณ์
หากต้องการเพิ่มการดําเนินการของอุปกรณ์ในการทดสอบ ให้คลิกเพิ่มการดําเนินการใหม่ เลือกช่องทําเครื่องหมายสําหรับการดําเนินการที่จะเพิ่ม แล้วคลิกเพิ่มการดําเนินการ การดำเนินการของอุปกรณ์จะดำเนินการตามลำดับ คุณสามารถเรียงลำดับการดำเนินการใหม่ได้โดยลากการดำเนินการ
รูปที่ 13 การจัดเรียงการดำเนินการใหม่
ตั้งค่าทรัพยากรการทดสอบ
ทรัพยากรการทดสอบคือไฟล์ที่จําเป็นสําหรับการเรียกใช้การทดสอบ เช่น การเรียกใช้ CTS ต้องใช้ไฟล์ android-cts*.zip
และการแฟลชอุปกรณ์กำหนดให้คุณต้องระบุอิมเมจการสร้าง
URL ดาวน์โหลดสำหรับไฟล์ ZIP ของชุดทดสอบควรเป็นลิงก์ Google ไดรฟ์ที่ให้ไว้กับพาร์ทเนอร์โดยค่าเริ่มต้น คุณเลือกไฟล์อื่นได้โดยคลิกเรียกดู ในหน้าต่างป๊อปอัป คุณสามารถป้อนลิงก์ดาวน์โหลดไฟล์ ใช้ไฟล์จากแชแนลการสร้างที่ตรวจสอบสิทธิ์แล้ว หรืออัปโหลดไฟล์เพื่อใช้จากพื้นที่เก็บข้อมูลในเครื่อง
รูปที่ 14 ทรัพยากรทดสอบ
ด้านล่างนี้คือหน้าต่างป๊อปอัปสำหรับเลือกทรัพยากรทดสอบตาม URL ของเว็บ คุณสามารถป้อนลิงก์ URL ดาวน์โหลด แล้วคลิกปุ่มเลือกเพื่อยืนยันการเลือก
รูปที่ 15 เครื่องมือเลือกทรัพยากรทดสอบ - URL ของเว็บ
หากอัปโหลดทรัพยากรไปยัง Google ไดรฟ์, Google Cloud Storage (GCS) หรือแชแนลอื่นๆ คุณสามารถไปที่แท็บของแชแนลที่ต้องการและเลือกทรัพยากรในแท็บนั้นได้ ต่อไปนี้เป็นตัวอย่างการเลือกทรัพยากรจาก Google ไดรฟ์
รูปที่ 16 เครื่องมือเลือกทรัพยากรทดสอบ - Google ไดรฟ์
นอกจากการเลือกไฟล์แล้ว ระบบยังรองรับอักขระไวลด์การ์ดในช่องชื่อไฟล์ด้วย ดูเอกสารประกอบได้ที่นี่
รูปที่ 17 เครื่องมือเลือกทรัพยากรทดสอบ - การรองรับรูปแบบไวลด์การ์ด
นอกจากนี้ คุณยังเลือกไฟล์จากพื้นที่เก็บข้อมูลไฟล์ในเครื่องของ OmniLab ATS ได้ด้วย คุณสามารถอัปโหลดไฟล์ไปยังพื้นที่เก็บข้อมูลนี้ หรือใช้ไฟล์และไดเรกทอรีในเครื่องโดยตรงก็ได้
รูปที่ 18 เครื่องมือเลือกทรัพยากรทดสอบ - พื้นที่เก็บไฟล์ในเครื่อง
เพิ่มการกําหนดค่าการเรียกใช้ซ้ำ
คุณสามารถกําหนดเวลาการเรียกใช้ซ้ำที่จะเริ่มต้นหลังจากที่การเรียกใช้หลักเสร็จสมบูรณ์และโหลดผลลัพธ์ได้ แต่จะต้องใช้อุปกรณ์ การดําเนินการ หรือทรัพยากรอื่น
รูปที่ 19 การเพิ่มการกําหนดค่าการเรียกใช้ใหม่
เริ่มการทดสอบ
หลังจากป้อนข้อมูลที่จำเป็นสำหรับการทดสอบแล้ว ให้คลิกเริ่มการทดสอบ หากข้อมูลทั้งหมดถูกต้อง ระบบจะเริ่มการทดสอบ และระบบจะเปลี่ยนเส้นทางคุณไปยังหน้าเว็บเพื่อดูรายละเอียดและความคืบหน้าของการทดสอบ
รูปที่ 20 เริ่มการทดสอบ
สร้างแผนการทดสอบ
แผนทดสอบใช้ในการสร้างการทดสอบตามกำหนดการเป็นระยะ เช่น การเรียกใช้ CTS 9.0 ทุกวันเวลา 17:00 น. หากต้องการสร้างแผนการทดสอบใหม่ ให้คลิกสร้างแผนการทดสอบใหม่
รูปที่ 21 การสร้างแผนการทดสอบ
กำหนดค่าแผนทดสอบ
ป้อนชื่อแผนทดสอบและป้ายกำกับที่ต้องการเพิ่ม จากนั้นเลือกกําหนดเวลาที่จะใช้
- ด้วยตนเอง - แผนการทดสอบจะสร้างการทดสอบเมื่อผู้ใช้คลิกเรียกใช้แผนการทดสอบในหน้ารายการแผนการทดสอบเท่านั้น
- เป็นระยะ - แผนทดสอบจะกําหนดเวลาการเรียกใช้การทดสอบโดยอัตโนมัติตามกําหนดเวลาที่เลือกเป็นระยะ เช่น การตั้งเวลาการทดสอบทุกวันเวลา 17:00 น.
- กําหนดเอง - แผนทดสอบจะตั้งเวลาการเรียกใช้การทดสอบโดยอัตโนมัติตามนิพจน์ cron ที่ป้อน ตัวอย่างเช่น หากต้องการตั้งเวลาการทดสอบการทำงานทุกวันเวลา 17:00 น. นิพจน์ cron จะเป็น
0 17 * * *
รูปที่ 22 การกำหนดค่าแผนการทดสอบ
เพิ่มชุดทดสอบ
เพิ่มชุดทดสอบที่คุณต้องการตั้งเวลาตามแผนทดสอบโดยคลิก + เพิ่มการกำหนดค่าการเรียกใช้การทดสอบ เลือกชุดทดสอบจากเมนูแบบเลื่อนลงชื่อ แล้วคลิกขั้นตอนถัดไป จากนั้นเลือกอุปกรณ์ที่ต้องการทำการทดสอบ แล้วคลิกเพิ่มการกำหนดค่า คุณสามารถเพิ่มการกําหนดค่าหลายรายการสําหรับแผนการทดสอบแต่ละรายการได้
รูปที่ 23 การกำหนดค่าการทดสอบ
เพิ่มการดำเนินการของอุปกรณ์
เพิ่มการดำเนินการของอุปกรณ์ที่ต้องการให้ดำเนินการก่อนการทดสอบแต่ละครั้ง ดูรายละเอียดเพิ่มเติมได้ที่การเพิ่มการดำเนินการของอุปกรณ์
รูปที่ 24 การเพิ่มการทำงานของอุปกรณ์
ตั้งค่าทรัพยากรการทดสอบ
การเพิ่มทรัพยากรการทดสอบลงในแผนการทดสอบจะเหมือนกับการเพิ่มลงในการทดสอบแต่ละครั้ง ดูรายละเอียดเพิ่มเติมที่หัวข้อการตั้งค่าทรัพยากรการทดสอบ
รูปที่ 25 การตั้งค่าทรัพยากรทดสอบ
ดูการเรียกใช้การทดสอบ
รายการการทดสอบ
ดูรายการการเรียกใช้การทดสอบตามกำหนดการในหน้าการเรียกใช้การทดสอบ คลิกดูเพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับการทดสอบ
นอกจากนี้ คุณยังกรองรายการได้โดยป้อนสตริงลงในแถบตัวกรองแล้วกดแป้น Enter คุณใช้ตัวกรองหลายรายการได้โดยคั่นด้วยคอมมา ตัวกรองจะแสดงผลแถวทั้งหมดที่มีข้อความตรงกันทั้งหมด (ไม่จับคู่สตริงย่อย) ในคอลัมน์ใดก็ได้ ยกเว้นสถานะและสร้าง
ตัวกรองว่างจะแสดงผลทุกแถว ขณะนี้ยังไม่มีวิธีกรองหาแถวที่มีค่าว่าง
รูปที่ 26 รายการการทดสอบ
รายละเอียดการทดสอบ
คุณดูรายละเอียดของการทดสอบได้ที่นี่ เช่น สถานะ บันทึก และผลลัพธ์
รูปที่ 27 รายละเอียดการทดสอบ
สถานะการทดสอบ
ความคืบหน้าของการทดสอบจะแสดงในส่วนสถานะ หากมีข้อความที่เกี่ยวข้อง เช่น ความคืบหน้าการดาวน์โหลด เหตุผลในการยกเลิก หรือข้อความแสดงข้อผิดพลาด ระบบจะแสดงข้อความดังกล่าวที่นี่ด้วย
รูปที่ 28 สถานะการทดสอบ
สถานะการทดสอบมีดังนี้
- รอดำเนินการ - กำลังดาวน์โหลดทรัพยากรที่จำเป็น
- รอดำเนินการ - การทดสอบพร้อมที่จะทำงานเมื่ออุปกรณ์พร้อมใช้งาน
- กำลังดำเนินการ - การทดสอบกำลังดำเนินการบนอุปกรณ์ที่จัดสรร
- เสร็จสมบูรณ์ - การทดสอบเสร็จสมบูรณ์และรายงานผลลัพธ์แล้ว
- ยกเลิก - ผู้ใช้ยกเลิกการทดสอบหรือหมดเวลาขณะพยายามค้นหาอุปกรณ์ที่พร้อมใช้งาน
- ข้อผิดพลาด - เกิดข้อผิดพลาดที่ทำให้การทดสอบไม่ทํางาน
ยกเลิกการเรียกใช้ทดสอบ
หากการทดสอบยังไม่เสร็จสมบูรณ์ คุณสามารถยกเลิกได้โดยคลิกยกเลิก แล้วคลิกใช่ในกล่องโต้ตอบการยืนยัน นอกจากนี้ ระบบจะยกเลิกการเรียกใช้การทดสอบโดยอัตโนมัติหากการเรียกใช้อยู่ในสถานะรอดำเนินการนานกว่าระยะเวลาที่ระบุในช่อง queue_timeout_seconds การยกเลิกการทดสอบขณะอยู่ในสถานะกำลังทำงานอาจใช้เวลา 2-3 นาทีจึงจะมีผล
รูปที่ 29 การยกเลิกการเรียกใช้การทดสอบ
ผลการทดสอบ
หลังจากการทดสอบเสร็จสิ้น ระบบจะรวบรวมและแสดงผลลัพธ์ คุณดูรายละเอียดเพิ่มเติมได้โดยคลิกลูกศรสําหรับการเรียกใช้แต่ละครั้ง คลิกดูไฟล์เอาต์พุตเพื่อดูรายการต่างๆ ของการทดสอบที่เก็บรวบรวม เช่น test_result.xml
และ test_result_failures.html
รูปที่ 30 ผลการทดสอบ
คุณดูบันทึกของโฮสต์และ Tradefed ที่ใช้งานอยู่ได้ในแท็บบันทึก
รูปที่ 31 แท็บบันทึก
ผลลัพธ์ของข้อบังคับแต่ละข้อจะอยู่ในแท็บผลลัพธ์การทดสอบ
รูปที่ 32 แท็บผลการทดสอบ
คุณสามารถดาวน์โหลดไฟล์ที่ใช้เป็นทรัพยากรการทดสอบได้โดยคลิกเปิดในแท็บทรัพยากรการทดสอบ
รูปที่ 33 แท็บแหล่งข้อมูลทดสอบ
หากต้องการดูรายละเอียดของการทดสอบ เช่น create_time ให้ไปที่แท็บการกําหนดค่า
รูปที่ 34 แท็บการกําหนดค่า
ฟีเจอร์ขั้นสูง
จัดการไฟล์การกําหนดค่า
OmniLab ATS ใช้ไฟล์การกําหนดค่าที่เขียนด้วย YAML เพื่อโหลดตัวเลือกที่กําหนดไว้ล่วงหน้า เช่น การทดสอบ ช่องทางการสร้าง และการดําเนินการของอุปกรณ์ ตัวอย่างไฟล์การกําหนดค่ามีดังนี้
// example_file.yaml
tests:
- id : android.cts.9_0.arm
name: CTS 9.0 (ARM)
test_resource_defs:
- name: android-cts.zip
default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
test_resource_type: TEST_PACKAGE
command: cts
env_vars:
- name: TF_PATH
value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
- name: LD_LIBRARY_PATH
value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
setup_scripts:
output_file_patterns:
- android-cts/logs/latest/.*
- android-cts/results/latest/.*\.html
- android-cts/results/latest/compatibility_result\..*
- android-cts/results/latest/logo.png
- android-cts/results/latest/test_result.xml
result_file: test_result.xml
java_properties:
- name: CTS_ROOT
value: ${TF_WORK_DIR}
context_file_dir: android-cts/results/
context_file_pattern: '[\d_\.]+\.zip'
retry_command_line: retry --retry 0
runner_sharding_args: --shard-count ${TF_SHARD_COUNT}
build_channels:
- id: google_drive
name: Google Drive
provider_name: Google Drive
device_actions:
- id: flash
name: Flash
test_resource_defs:
- name: bootloader.img
test_resource_type: DEVICE_IMAGE
- name: radio.img
test_resource_type: DEVICE_IMAGE
- name: img.zip
test_resource_type: DEVICE_IMAGE
tradefed_target_preparers:
- class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
option_values:
- name: work-dir
values:
- ${TF_WORK_DIR}
- name: host-setup-command
values:
- adb -s $SERIAL reboot-bootloader
- fastboot -s $SERIAL flash bootloader bootloader.img
- fastboot -s $SERIAL flash radio radio.img
- fastboot -s $SERIAL reboot-bootloader
- fastboot -s $SERIAL -w update img.zip
- adb -s $SERIAL wait-for-device
- name: host-cmd-timeout
values:
- 10m
เมื่อตั้งค่าอินสแตนซ์ OmniLab ATS คุณจะแชร์การกำหนดค่ากับผู้ใช้รายอื่นได้โดยการส่งออกเป็นไฟล์ โดยไปที่หน้าการตั้งค่า แล้วคลิกส่งออกที่ด้านขวาบน
รูปที่ 35 การจัดการไฟล์การกําหนดค่า
หลังจากดาวน์โหลดไฟล์การกําหนดค่าแล้ว ให้แชร์ไฟล์กับผู้ใช้รายอื่น โดยสามารถเพิ่มไฟล์การกําหนดค่าลงในอินสแตนซ์ OmniLab ATS ได้โดยคลิกนําเข้า แล้วเลือกไฟล์การกําหนดค่า
สร้างการดําเนินการของอุปกรณ์ใหม่
การดำเนินการกับอุปกรณ์ใช้สำหรับทำให้กระบวนการตั้งค่าอุปกรณ์เป็นแบบอัตโนมัติ การดำเนินการคือสคริปต์ที่ทำงานในอุปกรณ์แต่ละเครื่องที่ทำการทดสอบก่อนการทดสอบแต่ละครั้ง รวมถึงก่อนการลองอีกครั้ง หากต้องการดูรายการการดำเนินการของอุปกรณ์ที่ใช้ได้ ให้ไปที่หน้าการตั้งค่า แล้วคลิกแท็บการดำเนินการของอุปกรณ์ การดําเนินการหลายอย่างของอุปกรณ์ได้รับการกําหนดค่าไว้แล้ว เช่น การรีบูตและการแฟลช
รูปที่ 36 แท็บการดำเนินการของอุปกรณ์
เพิ่มการทำงานของอุปกรณ์ใหม่
คลิกการกระทําบนอุปกรณ์ใหม่
รูปที่ 37 ปุ่มการดำเนินการกับอุปกรณ์ใหม่
ป้อนชื่อและคำอธิบาย
รูปที่ 38 ชื่อการดำเนินการของอุปกรณ์
คลิกเพิ่มผู้เตรียมเป้าหมาย
ป้อนชื่อคลาสแบบเต็มของผู้เตรียมการของกลุ่มการค้าเป้าหมาย เช่น
com.android.tradefed.targetprep.RunHostCommandTargetPreparer
รูปที่ 39 การเพิ่มผู้เตรียมเป้าหมาย
ดูรายการเครื่องมือเตรียมเป้าหมายที่ใช้ได้ได้ในเอกสารอ้างอิง com.android.tradefed.targetprep
รูปที่ 40 รายการผู้เตรียมเป้าหมาย
เพิ่มตัวเลือกที่จะใช้กับเครื่องมือเตรียมข้อมูลเป้าหมาย หากต้องการดูตัวเลือกที่มี ให้ไปที่ targetprep เพื่อดูซอร์สโค้ดสำหรับเครื่องมือเตรียมเป้าหมายแต่ละรายการใน AOSP
รูปที่ 41 ตัวอย่างตัวเลือกการดําเนินการ
หากต้องการเพิ่มตัวเลือก ให้คลิกเพิ่มตัวเลือกผู้เตรียมเป้าหมาย แล้วป้อนค่าที่จําเป็น
รูปที่ 42 ตัวอย่างคำสั่งการทำงาน
กำหนดทรัพยากรการทดสอบที่จำเป็นต่อการดำเนินการของอุปกรณ์ เช่น สร้างภาพสำหรับการแฟลช หากต้องการเพิ่มคําจํากัดความของทรัพยากร ให้คลิกเพิ่มทรัพยากรทดสอบและกรอกข้อมูลในช่องที่ต้องกรอก หากทราบตำแหน่งไฟล์ คุณสามารถระบุ URL การดาวน์โหลดเริ่มต้นได้โดยคลิกเรียกดู หากผู้เตรียมข้อมูลเป้าหมายยอมรับไดเรกทอรีเป็นทรัพยากรทดสอบ ให้เลือกคลายการบีบอัด จากนั้นระบุไดเรกทอรีปลายทางแบบสัมพัทธ์ภายใต้ไดเรกทอรีการทำงานชั่วคราวและชื่อไฟล์ที่จะทำการแตกไฟล์ หากไม่ได้ระบุชื่อไฟล์ ระบบจะแตกไฟล์ทั้งหมดจากทรัพยากรทดสอบ
รูปที่ 43 แหล่งข้อมูลการทดสอบการดำเนินการ
คลิกอัปเดต
รูปที่ 44 การดำเนินการบันทึกการเปลี่ยนแปลง
จัดการการทดสอบ
แก้ไขการทดสอบ
หากต้องการแก้ไขการทดสอบที่บันทึกไว้ ให้ไปที่หน้าการทดสอบ แล้วคลิกแก้ไขในแถวของการทดสอบที่ต้องการแก้ไข หลังจากเปลี่ยนการกําหนดค่าการทดสอบแล้ว ให้คลิกอัปเดต
รูปที่ 45 การแก้ไขการทดสอบ
เพิ่มการทดสอบใหม่
หากต้องการเพิ่มการทดสอบใหม่ ให้ไปที่หน้าการทดสอบ แล้วคลิกสร้างการทดสอบใหม่ ป้อนข้อมูลที่เหมาะสม แล้วคลิกสร้าง
รูปที่ 46 การสร้างการทดสอบ
รูปที่ 47 การคัดลอกการทดสอบ
ส่งออกการกำหนดค่าโฮสต์
หลังจากกําหนดค่าโฮสต์แล้ว คุณสามารถส่งออกการกําหนดค่าของโฮสต์ไปยังไฟล์ได้ คุณสามารถอัปโหลดไฟล์นี้ไปยังโฮสต์อื่นเพื่อคัดลอกการกำหนดค่าที่บันทึกไว้
หากต้องการส่งออกการกำหนดค่าของโฮสต์ ให้ไปที่หน้าการตั้งค่า แล้วคลิกส่งออกที่มุมขวาบน
รูปที่ 48 การส่งออกการกำหนดค่าโฮสต์
หากต้องการนําเข้าไฟล์การกําหนดค่าโฮสต์ ให้ไปที่หน้าการตั้งค่า แล้วคลิกนําเข้าที่มุมขวาบน
รูปที่ 49 การนําเข้าการกําหนดค่าโฮสต์
ใช้ไฟล์และไดเรกทอรีในเครื่อง
ตั้งแต่เวอร์ชัน R11 เป็นต้นไป ไฟล์ในไดเรกทอรี $HOME/.ats_storage
จะเข้าถึงได้อัตโนมัติใน OmniLab ATS คัดลอกหรือย้ายไฟล์ไปยังไดเรกทอรีดังกล่าว จากนั้นเลือกไฟล์จากแท็บไฟล์ในเครื่องเมื่อกำหนดเวลาการทดสอบ
cp /path/to/file $HOME/.ats_storage
รูปที่ 50 การเลือกไฟล์จากไดเรกทอรี $HOME/.ats_storage
คุณสามารถต่อเชื่อมไดเรกทอรีเพิ่มเติมลงในที่เก็บไฟล์ในเครื่องได้ด้วย Flag --mount_local_path
mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2
รูปที่ 51 ไดเรกทอรีเพิ่มเติมที่ต่อเชื่อมในที่จัดเก็บไฟล์ในเครื่อง
เปิดใช้โหมดโฮสต์หลายรายการ
เมื่อใช้โหมดหลายโฮสต์ ผู้ใช้จะใช้โฮสต์ตัวควบคุม ATS โฮสต์เดียวเพื่อจัดการอุปกรณ์และการทดสอบในโฮสต์ที่ทำงานของ ATS หลายโฮสต์ได้
รูปที่ 52 สถาปัตยกรรมโหมดหลายโฮสต์
หากต้องการเริ่มตัวควบคุม ATS ให้ใช้คำสั่งต่อไปนี้
mtt start --operation_mode=ON_PREMISE
ตรวจสอบว่าเข้าถึงตัวควบคุมได้ที่
http://${CONTROLLER_HOSTNAME}:8000
หากต้องการเริ่มทํางาน ให้ใช้คําสั่งต่อไปนี้
mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
หากเครือข่ายไม่อนุญาตให้โฮสต์สื่อสารกัน คุณต้องทำตามวิธีการตั้งค่าขั้นสูงเพิ่มเติมด้านล่างในเวิร์กเกอร์ ATS
เชื่อมต่อโฮสต์ 2 เครื่องโดยใช้อุโมงค์ SSH เลือกพอร์ตสำหรับพอร์ตหลักและพอร์ตเซิร์ฟเวอร์ไฟล์ เช่น 9000 และ 9006
ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
กำหนดค่าและเริ่ม ATS
DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \ --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \ --operation_mode=ON_PREMISE
โปรแกรมล้างไฟล์
ตัวล้างไฟล์เป็นงาน Cron ที่ทำงานทุกชั่วโมงเพื่อล้างไฟล์ตามการกำหนดค่าที่ผู้ใช้กำหนด ATS มีการกำหนดค่าเริ่มต้น 2 รายการเพื่อเก็บผลการทดสอบการเรียกใช้และลบไฟล์ชั่วคราว คู่มือนี้จะอธิบายวิธีปรับแต่งนโยบายและการกําหนดค่าเพื่อจัดการไฟล์อย่างมีประสิทธิภาพ
นโยบาย
นโยบายจะกำหนดการดำเนินการกับไฟล์หรือไดเรกทอรี และเกณฑ์ในการเลือกเป้าหมาย การดำเนินการที่ใช้ได้จะแสดงในตาราง
ประเภทการดำเนินการ | พารามิเตอร์ |
---|---|
ARCHIVE | remove_file : หากเป็น true ให้นำไฟล์ออกหลังจากเก็บถาวร |
DELETE |
เกณฑ์จะอิงตามแอตทริบิวต์ของไฟล์และข้อมูลระบบ เกณฑ์ที่ใช้ได้แสดงอยู่ในตาราง
ประเภทเกณฑ์ | คำอธิบาย | พารามิเตอร์ |
---|---|---|
LAST_MODIFIED_TIME | กรองไฟล์ตามวันที่และเวลาแก้ไขล่าสุด | ttl : ระบบรองรับนิพจน์เวลาหลายประเภท เช่น 10m , 2h , 7 days , 4w โปรดดูรูปแบบที่รองรับใน pytimeparse |
LAST_ACCESS_TIME | กรองไฟล์ตามวันที่และเวลาเข้าถึงล่าสุด | เหมือนกับ LAST_MODIFIED_TIME |
NAME_MATCH | กรองไฟล์ตามชื่อโดยใช้นิพจน์ทั่วไป | pattern : นิพจน์ทั่วไป เช่น [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip เพื่อจับคู่รหัสไปรษณีย์ของผลลัพธ์ |
SYSTEM_AVAILABLE_SPACE | ทริกเกอร์การดำเนินการตามพื้นที่ว่างในระบบ | threshold : ทริกเกอร์การดำเนินการเมื่อพื้นที่ว่างต่ำกว่าเกณฑ์ เช่น 200 (B), 200KB , 200MB , 200GB , 2TB |
รูปที่ 53 เพิ่มนโยบายใหม่สำหรับโปรแกรมล้างไฟล์
การกำหนดค่า
การกําหนดค่าจะรวมนโยบายอย่างน้อย 1 รายการเข้ากับไดเรกทอรีที่เฉพาะเจาะจง ระบบจะประมวลผลไฟล์และไดเรกทอรีภายในไดเรกทอรีที่ระบุตามนโยบายที่กําหนด นโยบายจะมีผลตามลำดับที่ปรากฏในการกําหนดค่า
ไดเรกทอรีเป้าหมายทั้งหมดต้องอยู่ภายใต้ไดเรกทอรี /data
หากการกําหนดค่าระบุไดเรกทอรีเป้าหมายเป็น logs
ระบบจะตีความเป็น /data/logs
รูปที่ 54 แก้ไขการกําหนดค่าโปรแกรมล้างไฟล์
รีเซ็ต
การคลิกรีเซ็ตการตั้งค่าจะเปลี่ยนการกำหนดค่าเครื่องมือล้างไฟล์กลับเป็นสถานะเริ่มต้น การดำเนินการนี้จะล้างรายการที่กำหนดเองทั้งหมด
รูปที่ 55 รีเซ็ตการตั้งค่าเครื่องมือล้างไฟล์
การสนับสนุน
รายงานข้อบกพร่อง
ข้อมูลที่คุณให้ไว้กับ OmniLab ATS จะช่วยปรับปรุงการพัฒนาเครื่องมือ และเราต้องการความคิดเห็นจากคุณ ดูรายละเอียดเกี่ยวกับรุ่นล่าสุดได้ที่บันทึกประจำรุ่นของ OmniLab ATS หากต้องการรายงานข้อบกพร่องหรือเสนอคำแนะนำ ให้ส่งรายงานข้อบกพร่อง พาร์ทเนอร์ควรรายงานข้อบกพร่องหรือคำแนะนำโดยใช้ช่องทางสำหรับพาร์ทเนอร์