สำหรับอุปกรณ์ที่ใช้ Android 6 หรือ Android 7 คุณสามารถทดสอบการจัดเตรียมอุปกรณ์โดยใช้ชุดทดสอบ Android Enterprise (AE) ซึ่งเป็นชุดทดสอบสำหรับตรวจสอบความเข้ากันได้ระดับองค์กรของอุปกรณ์ Android สายรัดรวมถึงแอปสนับสนุน กรณีทดสอบ ไฟล์การกำหนดค่า และตัวดำเนินการทดสอบ ( afw-test-tradefed
) ที่สร้างขึ้นบน cts-tradefed
ก่อนตั้งค่า AE Test Harness อย่าลืม เตรียมใช้งาน Device Administration
สำหรับอุปกรณ์ที่ใช้ Android 8 ขึ้นไป เลิกใช้งาน AE Test Harness
การตั้งค่าสภาพแวดล้อมการพัฒนา
สภาพแวดล้อมการพัฒนาสำหรับ AE Test Harness นั้นคล้ายกับ Android OS ทำตามขั้นตอนใน ข้อกำหนด เพื่อตั้งค่าเครื่องพัฒนา
กำลังดาวน์โหลดซอร์สโค้ด
ดาวน์โหลดซอร์สโค้ด AE Test Harness โดยใช้ขั้นตอนใน การดาวน์โหลดซอร์ส ซอร์สโค้ด AE Test Harness อยู่ในโปรเจ็กต์ ./ ./test/AfwTestHarness
ชื่อสาขาเป็นตัวกำหนดเวอร์ชันของ AE Test Harness ที่จะดาวน์โหลด (แต่ละแพลตฟอร์ม Android มี AE Test Harness เวอร์ชันแยกต่างหาก) ตัวอย่างเช่น ชื่อสาขาสำหรับ Android 7.0 Nougat คือ afw-test-harness-nougat-dev
ในการเริ่มต้น repo และดาวน์โหลดซอร์สโค้ดสำหรับสาขานี้ ให้ใช้คำสั่งต่อไปนี้:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
repo init -u https://android.googlesource.com/platform/manifest -b afw-test-harness-nougat-dev
repo sync -j24
หากต้องการตรวจสอบซอร์สโค้ดสำหรับเวอร์ชันอื่น ให้ระบุสาขาด้วยแท็กที่เกี่ยวข้อง สาขาที่มีจำหน่าย ได้แก่
ชื่อสาขา | แพลตฟอร์ม Android ที่รองรับ |
---|---|
afw-test-harness-nougat-dev | Android 7.0 |
afw-test-harness-2.1 | Android 7.0 |
afw-test-harness-marshmallow-dev | Android 6.0 |
afw-test-harness-1.5 | Android 6.0 |
โปรเจ็กต์การพึ่งพาอื่น ๆ ที่จำเป็นในการสร้างสายรัดนั้นจะถูกดาวน์โหลดด้วยซอร์สโค้ดด้วย
กำลังดูใน Android Studio
วิธีดูและแก้ไขซอร์สโค้ดใน Android Studio:
- เรียกใช้คำสั่งต่อไปนี้
make idegen
development/tools/idegen/idegen.sh
- ใน Android Studio ให้เปิด
android.ipr
ซอร์สโค้ด AE Test Harness อยู่ใน test/AfwTestHarness
การกำหนดค่าชุดทดสอบ AE
คุณสามารถปรับแต่งสายรัดได้โดยกำหนดค่า test/AfwTestHarness/afw-test.props
ในการรันสายรัดให้สำเร็จ ให้ทำตามขั้นตอนต่อไปนี้:
- กำหนดค่าเครือข่าย Wi-Fi ใน
afw-test.props
ด้วยคุณสมบัติดังต่อไปนี้:wifi_ssid wifi_password (optional) wifi_security_type (optional, available options are: NONE, WEP or WPA)
- รับอย่างน้อยหนึ่งบัญชีจากโดเมนที่ผูกไว้กับ Test DPC เป็นตัวควบคุมนโยบายด้านอุปกรณ์ ระบุรายละเอียดใน
afw-test.props
ด้วยคุณสมบัติดังต่อไปนี้:work_account_username work_account_password
AE Test Harness ใช้ Test DPC เพื่อทดสอบขั้นตอนการเตรียมใช้งาน ดังนั้นบัญชี จะต้อง ผูกกับ Test DPC เพื่อเรียกใช้สายรัดทดสอบ
การสร้างสายรัดทดสอบ AE
เริ่มต้นการกำหนดค่าบิลด์โดยใช้:
source build/envsetup.sh
lunch
เลือกประเภทอุปกรณ์แล้วกด Enter
สร้างสายรัดโดยใช้:
make afw-test-harness -j32
สิ่งนี้จะสร้างไดเร็กทอรี ( out/host/linux-x86/afw-th/android-cts
) พร้อมไบนารี ไฟล์การกำหนดค่า และเครื่องมือที่จำเป็นทั้งหมดเพื่อเรียกใช้ชุดทดสอบ ไดเร็กทอรีนี้ถูกบีบอัดเป็นไฟล์ ( out/host/linux-x86/afw-th/android-afw-test-harness.zip
) เพื่อแจกจ่าย
การเรียกใช้ชุดทดสอบ AE
ใช้ขั้นตอนต่อไปนี้เพื่อเรียกใช้ชุดทดสอบ AE:
- ในสภาพแวดล้อมการสร้างของคุณ ให้เรียกใช้ตัวดำเนินการทดสอบโดยใช้:
afw-test-tradefed
สิ่งนี้จะเริ่มต้นคอนโซลcts-tf
โหลดแผนการทดสอบ กรณีทดสอบ และafw-test.props
จากout/host/linux-x86/afw-th/android-cts
- จากโฟลเดอร์ที่คลายซิปของ
android-afw-test-harness.zip
ให้เรียกใช้ตัวดำเนินการทดสอบโดยใช้:cts-tf> ./android‐cts/tools/afw-test‐tradefed
ซึ่งจะโหลดแผนการทดสอบ กรณีทดสอบ และafw-test.props
จากไดเรกทอรีandroid-cts
ตรวจสอบให้แน่ใจ./android‐cts/repository/testcases/afw-test.props
มีบัญชีงานและการกำหนดค่า Wi-Fi - เรียกใช้แผนการทดสอบ แผนการทดสอบแต่ละแผนคือไฟล์ XML ที่มีชุดของแพ็คเกจการทดสอบจากไดเร็กทอรีแพ็คเกจการทดสอบ
AfwTestHarness/tests
แผนทั่วไป ได้แก่ :-
afw-userdebug-build
ประกอบด้วยแพ็คเกจทดสอบทั้งหมดที่ต้องการ build userdebug -
afw-user-build
. ทำงานบนบิลด์ผู้ใช้แต่ต้องมีการตั้งค่าอุปกรณ์ทดสอบอย่างถูกต้อง รวมถึงการตั้งค่าเริ่มต้นให้เสร็จสิ้นและเปิดใช้งานการดีบัก USB
หากต้องการรันแผนการทดสอบafw-userdebug-build
ให้ใช้:cts-tf> run cts --plan afw-userdebug-build
หากต้องการดูแผนการทดสอบทั้งหมด ให้ใช้list plans
คำสั่ง หากต้องการดูคำจำกัดความของแผน โปรดดูที่out/host/linux-x86/afw-th/android-cts/repository/plans
-
- เรียกใช้ชุดทดสอบ หากต้องการรันแพ็คเกจทดสอบเดียว ให้ใช้
cts-tf> run cts --package com.android.afwtest.NfcProvisioning
หากต้องการดูแพ็คเกจทั้งหมด ให้ใช้list packages
คำสั่ง สำหรับตัวเลือกเพิ่มเติม ให้ใช้คำสั่งrun cts --help
การดีบักชุดทดสอบ AE
รันคำสั่งทั้งหมดในคอนโซล afw-test-tradefed ( cts-tf
) ซึ่งคุณสามารถเปิดใช้งานได้โดยการรัน afw-test-tradefed
- แสดงข้อมูลเพิ่มเติมด้วยแฟล็ก
-l INFO
หรือ-l DEBUG
ตัวอย่าง:cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
- เรียกใช้สายรัดทดสอบบนอุปกรณ์เฉพาะที่มีแฟล็ก
-s
ตัวอย่าง:cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
- เรียกใช้สายรัดทดสอบบนอุปกรณ์ที่เชื่อมต่อทั้งหมดด้วยแฟ
--all-devices
ตัวอย่าง:cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
- ดูการดำเนินการที่กำลังทำงานอยู่ในปัจจุบันโดยใช้การเรียกใช้
list invocations
หรือli
- ดูสรุปการดำเนินการทดสอบที่ผ่านมาโดยใช้
list results
หรือlr
- ดูคำสั่ง
list
อื่นๆ โดยใช้help list
- ตรวจสอบ logcat แบบเรียลไทม์ด้วยตัวกรองโดยใช้
afwtest
จากนั้นเปิดเทอร์มินัลอื่นและเริ่ม logcat โดยใช้:adb logcat | grep afwtest
หลังจากการทดสอบเสร็จสิ้น:- ดูการเข้า
out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time
Logcat อุปกรณ์แบบเต็มและบันทึกโฮสต์ (บันทึกafw-test-tradefed
) จะถูกบันทึกในไฟล์ zip แยกกัน - ค้นหาข้อมูลที่เกี่ยวข้องโดยค้นหา afwtest จาก logcat ของอุปกรณ์ ตัวอย่าง:
zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
- หากต้องการดูบันทึก afw-test-tradefed แบบเต็ม ให้ใช้:
zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
- ดูการเข้า
- แพ็คเกจทดสอบทำให้ขั้นตอนการเตรียมใช้งานขององค์กรเป็นไปโดยอัตโนมัติโดยไปที่หน้า UI และบันทึกบันทึกการนำทางในไฟล์ Logcat ของอุปกรณ์สำหรับแต่ละหน้า ตัวอย่าง:
afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
หน้า UI สำหรับแพ็คเกจการทดสอบcom.android.afwtest.NfcProvisioning
รวมถึง:-
com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
-
com.android.afwtest.uiautomator.pages.PageSkipper
-
com.android.afwtest.uiautomator.pages.LandingPage
-
- หากการทดสอบล้มเหลวระหว่างกระบวนการเตรียมใช้งาน Logcat มีข้อผิดพลาดคล้ายกับ:
TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
ซึ่งมักเกิดจากข้อผิดพลาดในหน้า UI ก่อนหน้าหรือหน้าที่โหลดไม่สำเร็จ ดังนั้นให้ลองค้นหาข้อความแสดงข้อผิดพลาดอื่นๆ ใน logcat ก่อนเกิดข้อผิดพลาดนี้ จากนั้นลองทำซ้ำด้วยตนเองตามขั้นตอนการเตรียมใช้งาน - หากแพ็คเกจทดสอบล้มเหลว:
- ภาพหน้าจอถูกบันทึกไปที่
out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time
โดยใช้ไวยากรณ์ต่อไปนี้:screenshot-test_ test_class_full_name _ test_case_name - random_number .png
ข้อมูลนี้จะถูกบันทึกไว้ในบันทึกของโฮสต์ด้วย -
out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time
จะถูกบันทึกเป็น:bug- test_class_full_name _ test_case_name - random_number .zip
- ภาพหน้าจอถูกบันทึกไปที่
- หลังจากรันแพ็คเกจทดสอบทั้งหมดแล้ว ระบบจะจับภาพหน้าจอและบันทึกไปที่
out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time
as:screenshot- random_number .png
ข้อมูลนี้จะถูกบันทึกไว้ในบันทึกของโฮสต์ด้วย
คำถามที่พบบ่อย
ฉันสามารถรันแผนการทดสอบ afw-userdebug-build
บนอุปกรณ์ที่แฟลชด้วย user build ได้หรือไม่
ไม่ แพ็คเกจทดสอบในโรงงานแผน afw-userdebug-build
จะรีเซ็ตอุปกรณ์ทดสอบก่อนที่จะเรียกใช้ขั้นตอนการทดสอบจริงและกำหนดให้เปิดใช้งานการดีบัก adb
โดยอัตโนมัติ ด้วยบิลด์ผู้ใช้ การดีบัก adb
สามารถเปิดใช้งานได้โดยการเปลี่ยนการตั้งค่าด้วยตนเองในตัวเลือกสำหรับนักพัฒนาเท่านั้น
ฉันสามารถรันแผนการทดสอบ afw-user-build
บนอุปกรณ์ที่แฟลชด้วย userdebug build ได้หรือไม่
ใช่ แต่เราขอแนะนำให้คุณเรียกใช้แผนการทดสอบนี้ในรุ่นผู้ใช้
บางครั้งการทดสอบของฉันล้มเหลวเนื่องจากการโหลด UI ใช้เวลานานเกินไป ฉันจะแก้ไขปัญหานี้ได้อย่างไร
กำหนดการตั้งค่า timeout_size
ใน . ./android-cts/repository/testcases/afw-test.props
การตั้งค่าที่ถูกต้องคือ: S, M, L, XL, XXL
แพ็คเกจการทดสอบ com.android.afwtest.NfcProvisioning
(หรือ SuwDoProvisioning
) ล้มเหลวในอุปกรณ์ของฉัน เนื่องจากการตั้งค่าเริ่มต้นที่ติดตั้งแสดง UI ที่กำหนดเอง (เช่น Term & Conditions) หลังจากการเตรียมใช้งานเสร็จสิ้น ฉันจะข้าม UI ที่กำหนดเองนี้ได้อย่างไร
ควรมี UI น้อยที่สุดหลังจากกระบวนการจัดเตรียม ชุดทดสอบจะข้าม UI ดังกล่าวโดยอัตโนมัติหาก UI มีปุ่มที่มีข้อความหรือคำอธิบายเนื้อหาที่มีความหมายซึ่งมีคำต่อไปนี้: ข้าม เสร็จสิ้น เสร็จสิ้น ยอมรับ ตกลง ถัดไป ดำเนินการต่อ หรือดำเนินการต่อ หรือคุณสามารถกำหนดปุ่มใน afw-test.props
เพื่อกำหนดค่าสายรัดทดสอบเพื่อข้าม UI ของคุณ ตัวอย่าง:
oem_widgets=your_btn your_btn.text=your_customized_text your_btn.package=your_package your_btn.action=click
หากต้องการกำหนดวิดเจ็ตหลายรายการ ให้คั่นด้วยเครื่องหมายจุลภาค
แพ็คเกจการทดสอบ com.android.afwtest.NfcProvisioning
(หรือ SuwDoProvisioning
) ล้มเหลว และหน้าจอ UI สุดท้ายคือ "ยืนยันบัญชีของคุณ" เหตุใดจึงเกิดขึ้น และฉันจะกู้คืนอุปกรณ์ทดสอบได้อย่างไร
ความล้มเหลวนี้เกิดขึ้นเนื่องจากชุดทดสอบก่อนหน้าล้มเหลวในการล้างการป้องกันการรีเซ็ตเป็นค่าจากโรงงานเมื่อสิ้นสุดการทดสอบ คุณต้องป้อนบัญชีด้วยตนเองเพื่อปลดล็อกอุปกรณ์
อุปกรณ์ของฉันต้องใช้เวลามากขึ้นในการรีเซ็ตเป็นค่าเริ่มต้น ฉันสามารถขยายเวลาการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงานได้หรือไม่?
ใช่. กำหนดการตั้งค่า factory_reset_timeout_min
ใน afw-test.props
การตั้งค่าที่ถูกต้องใช้เวลาเพียงไม่กี่นาที คุณสามารถตั้งค่าเป็นจำนวนนาทีที่ใช้ได้กับอุปกรณ์ของคุณ