หน้านี้จะให้ความช่วยเหลือในการแก้ปัญหาและตอบคำถามที่พบบ่อยเกี่ยวกับการทดสอบด้วย Firebase Test Lab และปัญหาที่ทราบแล้วก็มีเอกสารอธิบายไว้ด้วย หากไม่พบสิ่งที่ต้องการหรือต้องการความช่วยเหลือเพิ่มเติม โปรดเข้าร่วมแชแนล #test-lab ใน Firebase Slack หรือติดต่อทีมสนับสนุนของ Firebase
การแก้ปัญหา
ทำไมการทดสอบของฉันจึงใช้เวลานานมากในการทำงาน
เมื่อคุณเลือกอุปกรณ์ที่มีระดับความจุสูงในแคตตาล็อก Test Lab การทดสอบอาจเริ่มเร็วขึ้น เมื่ออุปกรณ์มีความจุต่ำ การทดสอบอาจใช้เวลานานขึ้น หากจำนวนการทดสอบที่เรียกใช้มีมากกว่าความจุของอุปกรณ์ที่เลือกมาก การทดสอบอาจใช้เวลานานกว่าจะเสร็จสิ้น
การทดสอบที่ทำงานในระดับความจุของอุปกรณ์ทุกระดับอาจใช้เวลานานขึ้นเนื่องจากปัจจัยต่อไปนี้
การเข้าชม ซึ่งส่งผลต่อความพร้อมใช้งานของอุปกรณ์และความเร็วในการทดสอบ
ความล้มเหลวของอุปกรณ์หรือโครงสร้างพื้นฐาน ซึ่งอาจเกิดขึ้นได้ทุกเมื่อ หากต้องการตรวจสอบว่ามีโครงสร้างพื้นฐานที่รายงานสำหรับ Test Lab หรือไม่ โปรดดูแดชบอร์ดสถานะ Firebase
ดูข้อมูลเพิ่มเติมเกี่ยวกับความจุของอุปกรณ์ใน Test Lab ได้ที่ข้อมูลความจุของอุปกรณ์สำหรับ Android และ iOS
เหตุใดฉันจึงได้รับผลการทดสอบที่สรุปไม่ได้
ผลการทดสอบที่สรุปไม่ได้มักเกิดขึ้นเนื่องจากการยกเลิกการทดสอบหรือข้อผิดพลาดด้านโครงสร้างพื้นฐาน
ข้อผิดพลาดเกี่ยวกับโครงสร้างพื้นฐานเกิดจากปัญหาภายในของ Test Lab เช่น ข้อผิดพลาดเกี่ยวกับเครือข่ายหรือลักษณะการทำงานของอุปกรณ์ที่ไม่คาดคิด Test Lab จะลองทำการทดสอบที่ทำให้เกิดข้อผิดพลาดเกี่ยวกับโครงสร้างพื้นฐานซ้ำหลายครั้งเป็นการภายในก่อนที่จะรายงานผลลัพธ์ที่สรุปไม่ได้ แต่คุณสามารถปิดใช้การลองใหม่เหล่านี้ได้โดยใช้ failFast
หากต้องการหาสาเหตุของข้อผิดพลาด ให้ทำตามขั้นตอนต่อไปนี้
ตรวจสอบการหยุดทำงานที่ทราบในแดชบอร์ดสถานะ Firebase
ลองทำการทดสอบอีกครั้งใน Test Lab เพื่อยืนยันว่าสามารถทำซ้ำได้
หมายเหตุ: Test Lab จะไม่เรียกเก็บเงินจากคุณสำหรับข้อผิดพลาดเกี่ยวกับโครงสร้างพื้นฐาน
ลองทำการทดสอบในอุปกรณ์หรือประเภทอุปกรณ์อื่น (หากมี)
หากยังพบปัญหาอยู่ โปรดติดต่อทีม Test Lab ในแชแนล#test-lab บน Firebase Slack
ทำไมชาร์ดดิ้งจึงทำให้การทดสอบใช้เวลานานขึ้น
ชาร์ดดิ้งอาจทำให้การทดสอบใช้เวลานานขึ้นเมื่อจำนวนชาร์ดที่คุณระบุเกินจำนวนอุปกรณ์ที่พร้อมใช้งานใน Test Lab เพื่อหลีกเลี่ยงสถานการณ์นี้ ให้ลองเปลี่ยนไปใช้อุปกรณ์อื่น ดูข้อมูลเพิ่มเติมเกี่ยวกับการเลือกอุปกรณ์อื่นได้ที่
ความจุของอุปกรณ์
ทำไมการทดสอบของฉันจึงใช้เวลานานกว่าจะเริ่ม
เมื่อคุณส่งคำขอทดสอบ ระบบจะตรวจสอบแอป ลงชื่ออีกครั้ง ฯลฯ ก่อนเพื่อเตรียมพร้อมสำหรับการทดสอบในอุปกรณ์ โดยปกติแล้ว กระบวนการนี้จะเสร็จสมบูรณ์ภายในไม่กี่วินาที แต่อาจได้รับผลกระทบจากปัจจัยต่างๆ เช่น ขนาดของแอป
หลังจากเตรียมแอปแล้ว ระบบจะกำหนดเวลาการดำเนินการทดสอบและยังคงอยู่ในคิวจนกว่าอุปกรณ์จะพร้อมใช้งาน สถานะเมทริกซ์จะเป็น "รอดำเนินการ" (ไม่ว่าการดำเนินการทดสอบจะอยู่ในคิวหรือกำลังทำงานอยู่ก็ตาม) จนกว่าการดำเนินการทดสอบทั้งหมดจะเสร็จสิ้น
หมายเหตุ: เวลาที่การทดสอบใช้ในการรออุปกรณ์ที่พร้อมใช้งานจะไม่นับรวมในเวลาที่เรียกเก็บเงิน
ทำไมการทดสอบของฉันจึงใช้เวลานานกว่าจะเสร็จสิ้น
หลังจากดำเนินการทดสอบเสร็จแล้ว ระบบจะดาวน์โหลดอาร์ติแฟกต์การทดสอบจากอุปกรณ์ ประมวลผล และอัปโหลดไปยัง Cloud Storage ระยะเวลาของขั้นตอนนี้อาจได้รับผลกระทบจากจำนวนและขนาดของอาร์ติแฟกต์
การแก้ปัญหาเฉพาะสำหรับ Android
แอปไม่แสดงข้อมูลและค้นหาภาพหน้าจอไม่พบ
อาร์ติแฟกต์การดำเนินการทดสอบ (เช่น ภาพหน้าจอและไฟล์บันทึก) จะจัดเก็บไว้ใน Google Cloud Storage และแสดงผลโดยตรงในคอนโซล Firebase หากการดำเนินการทดสอบเกิดขึ้นภายใน 90 วันที่ผ่านมา ให้ตรวจสอบว่าคุณได้มอบหมายบทบาทระดับโปรเจ็กต์ (เจ้าของโปรเจ็กต์ ผู้แก้ไขโปรเจ็กต์ หรือผู้ดูโปรเจ็กต์) แล้ว
โปรดตรวจสอบว่าไม่ได้เปิดใช้ Cloud Audit Logging สำหรับโปรเจ็กต์หรือองค์กรของคุณ
หากการดำเนินการเกิดขึ้นนานกว่า 90 วันที่ผ่านมา เป็นไปได้มากว่าอาร์ติแฟกต์การทดสอบจะถูกลบโดยอัตโนมัติ คุณตรวจสอบการกำหนดค่าที่เก็บผลลัพธ์ได้โดยคลิกแท็บผลการทดสอบ ในแดชบอร์ด Test Lab ระบบจะกำหนดค่าที่เก็บข้อมูลผลลัพธ์เริ่มต้นให้เก็บออบเจ็กต์ไว้เป็นเวลา 90 วัน
หากต้องการเก็บอาร์ติแฟกต์การทดสอบไว้นานขึ้น ให้เรียกใช้คำสั่ง gcloud firebase test android run พร้อมแฟล็ก --results-bucket และส่งชื่อที่เก็บข้อมูลผลลัพธ์ ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบอ้างอิง gcloud firebase test android run
เหตุใดฉันจึงได้รับผลลัพธ์ของกรอบการทดสอบการวัดคุมบางส่วนหรือขาดหายไป
เมื่อทำการทดสอบการวัดคุม คุณอาจเห็นข้อผิดพลาดในการทดสอบที่ระบุผลลัพธ์บางส่วนซึ่งมีข้อความ เช่น Test run failed to complete. Expected
x tests, received y (โดยที่ y น้อยกว่า x)
ข้อผิดพลาดนี้หมายความว่า Test Lab ไม่สามารถแยกวิเคราะห์ logcat สำหรับเครื่องหมายเริ่มต้นหรือสิ้นสุดของกรอบการทดสอบที่มักสร้างโดย AndroidJUnitRunner
สาเหตุที่พบบ่อยของปัญหานี้มีดังนี้
คำอธิบายปัญหา
การแก้ไขที่เป็นไปได้
กรอบการทดสอบไม่ทำงานเนื่องจากหมดเวลา หากระยะเวลารวมของการทดสอบนานกว่าระยะหมดเวลาที่คุณระบุหรือนานกว่าระยะหมดเวลาสูงสุด Test Lab จะยกเลิกกรอบการทดสอบที่เหลือ
เพิ่มระยะหมดเวลาสำหรับเมทริกซ์เพื่อให้แน่ใจว่าการทดสอบทั้งหมดจะเสร็จสมบูรณ์
ชาร์ดการทดสอบหากยังไม่ได้ดำเนินการ เพื่อให้แต่ละชาร์ดเรียกใช้ชุดย่อยของการทดสอบและดำเนินการเสร็จสมบูรณ์ในระยะเวลาที่สั้นลง
หากเปิดใช้ชาร์ดดิ้งแล้ว ให้เพิ่มจำนวนชาร์ด
กรอบการทดสอบดำเนินการไม่เสร็จสมบูรณ์เนื่องจากออกจากระบบก่อนเวลาหรือติดขัด
กรอบการทดสอบอาจออกก่อนเวลาอันควรเนื่องจากมีข้อยกเว้นที่ตรวจไม่พบหรือข้อผิดพลาดในการยืนยัน กรอบการทดสอบอาจติดอยู่ในลูปไม่สิ้นสุดหรืออาจดำเนินการต่อไม่ได้ เช่น หากแอปไม่แสดงมุมมองที่ถูกต้องและกรอบการทดสอบไม่สามารถดำเนินการกับ UI ได้
ตรวจสอบวิดีโอและ logcat เพื่อดูว่าการทดสอบหยุดลงที่จุดใด
เครื่องมือรันทดสอบที่กำหนดเอง (รวมถึง AndroidJUnitRunner ที่ขยาย) ขัดข้องโดยไม่คาดคิด หรือเขียนเครื่องหมายเริ่มต้นหรือสิ้นสุดกรอบการทดสอบที่ไม่คาดคิดลงใน logcat
ตรวจสอบโค้ด Test Runner
มีการเขียนบันทึกมากเกินไปใน logcat ซึ่งทำให้บัฟเฟอร์ทำงานหนักเกินไปหรือทำให้กระบวนการ logcat ขัดข้อง
ลดการเขียนลงใน logcat
แอปที่อยู่ระหว่างการทดสอบขัดข้อง
แก้ไขข้อบกพร่องของแอป
คำถามที่พบบ่อย (FAQ)
โควต้าแบบไม่มีค่าใช้จ่ายสำหรับ Test Lab มีอะไรบ้าง ฉันควรทำอย่างไรหากพื้นที่เก็บข้อมูลเต็ม
Firebase Test Lab มีโควต้าที่ไม่มีค่าใช้จ่ายสำหรับการทดสอบในอุปกรณ์และการใช้ Cloud API โปรดทราบว่าโควต้าการทดสอบจะใช้แพ็กเกจราคามาตรฐานของ Firebase ส่วนโควต้า Cloud API จะไม่ใช้
โควต้าการทดสอบ
โควต้าการทดสอบจะกำหนดตามจำนวนอุปกรณ์ที่ใช้ในการทดสอบ
แพ็กเกจ Firebase Spark มีโควต้าการทดสอบคงที่โดยไม่มีค่าใช้จ่ายสำหรับผู้ใช้ สำหรับแพ็กเกจ Blaze โควต้าอาจเพิ่มขึ้นหากการใช้งาน Google Cloud เพิ่มขึ้นเมื่อเวลาผ่านไป หากคุณใช้โควต้าการทดสอบจนถึงขีดจำกัดแล้ว ให้รอจนถึงวันถัดไปหรืออัปเกรดเป็นแพ็กเกจ Blaze หากปัจจุบันคุณใช้แพ็กเกจ Spark อยู่
หากใช้แพ็กเกจ Blaze อยู่แล้ว คุณสามารถขอเพิ่มโควต้าได้
ดูข้อมูลเพิ่มเติมได้ที่โควต้าการทดสอบ
คุณสามารถตรวจสอบการใช้โควต้าการทดสอบได้ในคอนโซล Google Cloud
โควต้า Cloud Testing API
Cloud Testing API มีขีดจำกัดโควต้า 2 รายการ ได้แก่ คำขอต่อวันต่อโปรเจ็กต์ และคำขอทุก 100 วินาทีต่อโปรเจ็กต์ คุณสามารถตรวจสอบการใช้งานได้ในคอนโซล Google Cloud
โควต้า Cloud Tool Results API
Cloud Tool Results API มีขีดจำกัดโควต้า 2 รายการ ได้แก่ คำค้นหาต่อวันต่อโปรเจ็กต์ และคำค้นหาทุก 100 วินาทีต่อโปรเจ็กต์ คุณสามารถตรวจสอบการใช้งานได้ในคอนโซล Google Cloud
โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับขีดจำกัด API ที่หัวข้อโควต้า Cloud API สำหรับ Test Lab หากคุณใช้โควต้า API ถึงขีดจำกัดแล้ว ให้ทำดังนี้
ส่งคำขอโควต้าที่สูงขึ้นโดยแก้ไขโควต้า โดยตรงในคอนโซล Google Cloud (โปรดทราบว่าขีดจำกัดส่วนใหญ่จะตั้งค่าเป็นค่าสูงสุดโดยค่าเริ่มต้น) หรือ
ขอโควต้า API เพิ่มโดยกรอกแบบฟอร์มคำขอในคอนโซล Google Cloud หรือติดต่อทีมสนับสนุนของ Firebase
ฉันจะทราบได้อย่างไรว่าการเข้าชมที่มาถึงแบ็กเอนด์ของฉันมาจาก Test Lab
จากแบ็กเอนด์ คุณสามารถระบุได้ว่าการเข้าชมมาจากอุปกรณ์ทดสอบที่โฮสต์โดย Firebase หรือไม่โดยการตรวจสอบที่อยู่ IP ต้นทางกับช่วง IP ของเรา
Test Lab ใช้กับ VPC-SC ได้ไหม
Test Lab ไม่ทำงานร่วมกับ VPC-SC ซึ่งจะบล็อกการคัดลอกแอปและอาร์ติแฟกต์การทดสอบอื่นๆ ระหว่างที่จัดเก็บข้อมูลภายในของ Test Lab กับที่เก็บข้อมูลผลลัพธ์ของผู้ใช้
ฉันจะตรวจหาการทดสอบที่ไม่เสถียรใน Test Lab ได้อย่างไร
หากต้องการตรวจหาลักษณะการทำงานที่ไม่สอดคล้องกันในการทดสอบ เราขอแนะนำให้ใช้ตัวเลือก
--num-flaky-test-attempts
ระบบจะเรียกเก็บเงินหรือนับการเรียกใช้ซ้ำเพื่อแก้ไขความไม่แน่นอนรวมอยู่ในโควต้ารายวันของคุณเช่นเดียวกับการดำเนินการทดสอบตามปกติ
โปรดทราบข้อมูลต่อไปนี้
การดำเนินการทดสอบทั้งหมดจะทำงานอีกครั้งเมื่อตรวจพบความล้มเหลว ระบบไม่รองรับการลองใหม่เฉพาะกรอบการทดสอบที่ล้มเหลว
การเรียกใช้การลองใหม่เพื่อแก้ไขความไม่แน่นอนจะกำหนดเวลาให้ทำงานพร้อมกัน แต่ไม่รับประกันว่าจะทำงานพร้อมกัน เช่น เมื่อการเข้าชมเกินจำนวนอุปกรณ์ที่พร้อมใช้งาน
หมายเหตุ: ข้อผิดพลาดเกี่ยวกับโครงสร้างพื้นฐานไม่เกี่ยวข้องกับฟีเจอร์การแก้ไขความไม่แน่นอนและจะไม่ทริกเกอร์การเรียกใช้การแก้ไขความไม่แน่นอนซ้ำ
คำถามที่พบบ่อยเกี่ยวกับ iOS
แม้ว่ารายการเหล่านี้บางรายการจะอยู่ในแผนกลยุทธ์ของเรา แต่ขณะนี้เราไม่สามารถให้คำมั่นสัญญาว่าจะรองรับแพลตฟอร์มการทดสอบและการพัฒนาแอปเหล่านี้
ฉันจะดูรายละเอียดอุปกรณ์ เช่น ความละเอียด ฯลฯ ได้จากที่ใด
ข้อมูลอุปกรณ์โดยละเอียดจะพร้อมใช้งานผ่าน API และเข้าถึงได้จากไคลเอ็นต์ gcloud โดยใช้คำสั่ง describe ดังนี้
gcloud firebase test ios models describe MODEL
ฉันจะใช้ชาร์ดดิ้งกับการทดสอบ iOS ได้ไหม
Test Lab สำหรับ iOS ไม่รองรับชาร์ดดิ้งในตัว อย่างไรก็ตาม คุณสามารถใช้ไคลเอ็นต์ Flank เพื่อชาร์ดกรอบการทดสอบ iOS ได้
หมายเหตุ: การใช้ชาร์ดดิ้ง iOS ของ Flank จะสร้างเมทริกซ์ทดสอบแยกต่างหากสำหรับชาร์ดแต่ละรายการ
ซึ่งทำได้โดยการตั้งค่าคีย์และค่า OnlyTestIdentifiers ในไฟล์ .xctestrun
ดูรายละเอียดเพิ่มเติมได้ที่หน้า man สำหรับ xcodebuild.xctestrun
ทำไมการทดสอบ iOS ของฉันจึงไม่มีวิดีโอในผลลัพธ์
สำหรับ iOS 18 ขึ้นไป เราไม่สามารถรองรับวิดีโอในผลการค้นหาได้
คำถามที่พบบ่อยเกี่ยวกับ Android โดยเฉพาะ
Test Lab รองรับอุปกรณ์ที่สวมใส่ได้ไหม
แน่นอน Test Lab รองรับ Google Pixel Watch ตอนนี้คุณสามารถทำการทดสอบแอป Wear แบบสแตนด์อโลนใน Google Pixel Watch ได้แล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์ Test Lab ได้ที่ทดสอบในอุปกรณ์ที่พร้อมใช้งาน
Test Lab รองรับอุปกรณ์ Google รุ่นล่าสุดไหม
แน่นอน Test Lab รองรับ Google Pixel Tablet และ Google Pixel Fold คุณสามารถทำการทดสอบในอุปกรณ์จริงแบบสแตนด์อโลนได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์ Test Lab ได้ที่ทดสอบในอุปกรณ์ที่พร้อมใช้งาน
ฉันจะตรวจหาการทดสอบที่ทำงานอยู่ใน Test Lab ได้อย่างไร
หากคุณกำลังทดสอบแอปใน Firebase หรือทำการทดสอบสำหรับรายงานก่อนการเปิดตัว ใน Play Console คุณสามารถตรวจหาว่ามีการทดสอบในอุปกรณ์ที่โฮสต์โดย Firebase หรือไม่โดยการตรวจสอบพร็อพเพอร์ตี้ระบบ firebase.test.lab ในไฟล์ MainActivity จากนั้นคุณจะดำเนินการคำสั่งเพิ่มเติมได้โดยอิงตามค่าบูลีนสำหรับ testLabSetting ดูข้อมูลเพิ่มเติมได้ที่ลักษณะการทำงานของการทดสอบที่แก้ไข
แม้ว่ารายการเหล่านี้บางรายการจะอยู่ในแผนกลยุทธ์ของเรา แต่ขณะนี้เราไม่สามารถให้คำมั่นสัญญาว่าจะรองรับแพลตฟอร์มการทดสอบและการพัฒนาแอปเหล่านี้ อย่างไรก็ตาม หากคุณสร้างแอปด้วยเฟรมเวิร์กที่รองรับ Espresso (เช่น Flutter) คุณสามารถเขียนการทดสอบการวัดคุมโดยใช้ Espresso แล้วทำการทดสอบใน Test Lab ได้
Test Lab รองรับการทดสอบแอปที่ผ่านการปรับให้ยากต่อการอ่าน (Obfuscate) ไหม เช่น ด้วย ProGuard หรือ R8
Test Lab ไม่รองรับการปรับให้ยากต่อการอ่าน (Obfuscation) หรือการถอดรหัสซอร์สโค้ดที่สร้างความสับสนอย่างชัดเจน แม้ว่าแอปน่าจะทำงานได้ แต่ข้อมูลแอปที่สร้างความสับสน เช่น สแต็กเทรซ จะปรากฏเป็นข้อมูลที่สร้างความสับสนในบันทึก
ฉันจะใช้อุปกรณ์แบบพับได้ในสถานะและท่าทางต่างๆ ขณะทดสอบใน Test Lab ได้ไหม
แน่นอน คุณทดสอบอุปกรณ์แบบพับได้ในสถานะและท่าทางแบบพับได้
อุปกรณ์แบบพับได้อาจอยู่ในสถานะพับต่างๆ เช่น FLAT (กางออกเต็มที่) หรือ HALF_OPENED (ระหว่างกางออกเต็มที่กับพับสนิท)
ในทางกลับกัน ท่าทางจะประกอบด้วยการวางแนวอุปกรณ์และสถานะพับได้ที่เฉพาะเจาะจง เช่น ท่าตั้งโต๊ะ ซึ่งเป็นสถานะ HALF_OPENED ในแนวนอน หรือท่าหนังสือ ซึ่งเป็นสถานะ HALF_OPENED ในแนวตั้ง
หากทำการทดสอบการวัดคุม คุณสามารถใช้ไลบรารี Jetpack WindowManager และทำตามเอกสารประกอบการทดสอบแอปในอุปกรณ์แบบพับได้ เพื่อทดสอบในสถานะและท่าทางต่างๆ
หรืออีกวิธีหนึ่งคือ สถานะที่ใช้ได้จะขึ้นอยู่กับอุปกรณ์และสามารถโต้ตอบได้โดยใช้ adb
shell command cmd device_state
หากต้องการแสดงสถานะปัจจุบัน ให้เรียกใช้ adb shell cmd device_state state
หากต้องการตั้งค่าหรือลบล้างสถานะปัจจุบัน ให้เรียกใช้ adb shell cmd device_state state <IDENTIFIER>
หากต้องการรีเซ็ตสถานะ ให้เรียกใช้ adb shell cmd device_state state reset
หากต้องการตรวจสอบสถานะที่ใช้ได้ ให้เรียกใช้คำสั่ง adb shell cmd device_state print-states ในอุปกรณ์แบบพับได้
Google Pixel Fold (รหัสรุ่น felix)
$ adb shell cmd device_state print-states
Supported states: [
DeviceState{ identifier = 0 , name = 'CLOSED' , app_accessible = true} ,
DeviceState{ identifier = 1 , name = 'HALF_OPENED' , app_accessible = true} ,
DeviceState{ identifier = 2 , name = 'OPENED' , app_accessible = true} ,
DeviceState{ identifier = 3 , name = 'REAR_DISPLAY_STATE' , app_accessible = true} ,
]
Samsung Galaxy Z Fold4 (รหัสรุ่น q4q)
$ adb shell cmd device_state print-states
Supported states: [
DeviceState{ identifier = 0 , name = 'CLOSE' , app_accessible = true} ,
DeviceState{ identifier = 1 , name = 'TENT' , app_accessible = true} ,
DeviceState{ identifier = 2 , name = 'HALF_FOLDED' , app_accessible = true} ,
DeviceState{ identifier = 3 , name = 'OPEN' , app_accessible = true} ,
]
ฉันจะลองใช้ Test Lab ได้ไหมหากไม่มีแอป
คุณไม่จำเป็นต้องเพิ่ม Firebase SDK เพื่อใช้ Test Lab ซึ่งต่างจากผลิตภัณฑ์อื่นๆ ของ Firebase หากยังไม่มีแอป คุณสามารถดาวน์โหลด APK ทางออนไลน์หรือสร้างแอปและ APK ทดสอบจากตัวอย่างรายการใดรายการหนึ่งในที่เก็บ AndroidX GitHub
โปรดทราบว่าคุณต้องใช้ไฟล์ APK ของแอปเพื่อเรียกใช้การทดสอบ Robo เท่านั้น ส่วนการทดสอบการวัดคุมต้องใช้ทั้งแอปและ APK ทดสอบที่สร้างจากซอร์สโค้ด ดูข้อมูลเพิ่มเติมได้ที่การทดสอบที่มีการวัดคุม
ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์ของ Test Lab ได้ที่เริ่มต้นการทดสอบสำหรับ Android ด้วย Firebase Test Lab
อุปกรณ์ใดเหมาะที่สุดสำหรับการทดสอบความแตกต่างของภาพหน้าจอ
การทดสอบความแตกต่างของภาพหน้าจอ คือการยืนยันการทดสอบโดยอิงตามการเปรียบเทียบรูปภาพหน้าจอที่ได้ขณะทำการทดสอบกับรูปภาพอ้างอิงที่แสดงถึงลักษณะการทำงานที่คาดไว้ การทดสอบดังกล่าวอาจมีความเสี่ยงที่จะเกิดข้อผิดพลาดในอุปกรณ์บางประเภทมากกว่าอุปกรณ์อื่นๆ เราขอแนะนำให้กำหนดเป้าหมายอุปกรณ์จำลอง Arm (*.arm) สำหรับการทดสอบประเภทนี้ อุปกรณ์จำลอง Arm ใช้รูปภาพที่คล้ายกันมากหรือเหมือนกับโปรแกรมจำลอง "ทั่วไป" ของ Android Studio
นอกจากนี้ เราขอแนะนำให้คุณตรวจสอบไลบรารีการทดสอบที่ช่วยให้การทดสอบภาพหน้าจอมีประสิทธิภาพมากขึ้นเมื่อมีการเปลี่ยนแปลงที่คาดไว้
Test Lab อัปเดตอุปกรณ์เสมือนจริงไหม
แน่นอน อุปกรณ์เสมือนจริงจะอัปเดตเมื่อมีการเปลี่ยนแปลงต่อไปนี้
การอัปเดตรูปภาพที่มีอยู่
การเลิกใช้งาน API ระดับก่อนหน้า
เพิ่มระดับ API ใหม่ของ Android แล้ว
ฉันจะเปิดใช้รายงานความครอบคลุมได้อย่างไร
หากต้องการเปิดใช้รายงานความครอบคลุม ให้เพิ่ม coverage=true ลงในช่อง environmentVariables
หากใช้ Android Test Orchestrator คุณจะต้องระบุไดเรกทอรีเพื่อจัดเก็บผลลัพธ์ความครอบคลุม ดังนี้
-- environment - variables coverage = true , coverageFilePath =/ sdcard / Download /
หากไม่ได้ใช้ Orchestrator คุณสามารถระบุเส้นทางไฟล์ได้ดังนี้
-- environment - variables coverage = true , coverageFile =/ sdcard / Download / coverage . ec
ฉันจะดูรายละเอียดอุปกรณ์ เช่น ความละเอียด, ABI ที่รองรับ ฯลฯ ได้จากที่ใด
ข้อมูลอุปกรณ์โดยละเอียดจะพร้อมใช้งานผ่าน API และเข้าถึงได้จากไคลเอ็นต์ gcloud โดยใช้คำสั่ง describe ดังนี้
gcloud firebase test android models describe MODEL
ฉันจะเข้าสู่ระบบแอป Wear โดยไม่ใช้โทรศัพท์ได้อย่างไร
หากแอปของคุณรองรับ Google Sign-In ฟีเจอร์นี้ควรทำงานโดยอัตโนมัติกับบัญชีทดสอบ หรือหากปกติแล้วแอปของคุณต้องใช้โทรศัพท์ในการเข้าสู่ระบบ คุณสามารถสร้างตัวแปรบิลด์ที่ข้ามการเข้าสู่ระบบและใช้โทเค็นที่ฝังอยู่ในบิลด์ทดสอบ หรืออ่านจากไฟล์ในดิสก์ที่ปกติแล้วจะพุชโดยใช้ --other-files option ดูข้อมูลเพิ่มเติมได้ที่การเข้าสู่ระบบและการป้อนข้อความที่กำหนดเองด้วยการทดสอบ Robo
ปัญหาที่ทราบ
CAPTCHA สำหรับการลงชื่อเข้าใช้
การทดสอบ Robo ไม่สามารถข้ามหน้าจอลงชื่อเข้าใช้ที่ต้องมีการดำเนินการเพิ่มเติมจากผู้ใช้นอกเหนือจากการป้อนข้อมูลเข้าสู่ระบบเพื่อลงชื่อเข้าใช้ เช่น การทำ CAPTCHA
ปัญหาที่ทราบแล้วเฉพาะ iOS
ลงชื่อเข้าใช้โดยอัตโนมัติ
การลงชื่อเข้าใช้โดยอัตโนมัติด้วยบัญชี Google ไม่รองรับการทดสอบ Robo สำหรับ iOS+ (เบต้า)
ปัญหาที่ทราบแล้วเกี่ยวกับ Android
การรองรับเฟรมเวิร์ก UI
การทดสอบ Robo ทำงานได้ดีที่สุดกับแอปที่ใช้องค์ประกอบ UI จากเฟรมเวิร์ก UI ของ Android (รวมถึงออบเจ็กต์ View, ViewGroup และ WebView) หากคุณใช้การทดสอบ Robo เพื่อทดสอบแอปที่ใช้เฟรมเวิร์ก UI อื่นๆ รวมถึงแอปที่ใช้เกมเอนจิน Unity การทดสอบอาจออกโดยไม่สำรวจนอกเหนือจากหน้าจอแรก