การทดสอบการเตรียมอุปกรณ์

สำหรับอุปกรณ์ที่ใช้ 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:

  1. เรียกใช้คำสั่งต่อไปนี้
    make idegen
    development/tools/idegen/idegen.sh
    
  2. ใน Android Studio ให้เปิด android.ipr

ซอร์สโค้ด AE Test Harness อยู่ใน test/AfwTestHarness

การกำหนดค่าชุดทดสอบ AE

คุณสามารถปรับแต่งสายรัดได้โดยกำหนดค่า test/AfwTestHarness/afw-test.props ในการรันสายรัดให้สำเร็จ ให้ทำตามขั้นตอนต่อไปนี้:

  1. กำหนดค่าเครือข่าย Wi-Fi ใน afw-test.props ด้วยคุณสมบัติดังต่อไปนี้:
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. รับอย่างน้อยหนึ่งบัญชีจากโดเมนที่ผูกไว้กับ 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:

  1. ในสภาพแวดล้อมการสร้างของคุณ ให้เรียกใช้ตัวดำเนินการทดสอบโดยใช้:
    afw-test-tradefed
    
    สิ่งนี้จะเริ่มต้นคอนโซล cts-tf โหลดแผนการทดสอบ กรณีทดสอบ และ afw-test.props จาก out/host/linux-x86/afw-th/android-cts
  2. จากโฟลเดอร์ที่คลายซิปของ 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
  3. เรียกใช้แผนการทดสอบ แผนการทดสอบแต่ละแผนคือไฟล์ 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
  4. เรียกใช้ชุดทดสอบ หากต้องการรันแพ็คเกจทดสอบเดียว ให้ใช้
    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 การตั้งค่าที่ถูกต้องใช้เวลาเพียงไม่กี่นาที คุณสามารถตั้งค่าเป็นจำนวนนาทีที่ใช้ได้กับอุปกรณ์ของคุณ