Catch up on highlights from Firebase at Google I/O 2023. Learn more

ทำการทดสอบ Robo

การทดสอบ Robo เป็นเครื่องมือทดสอบที่ผสานรวมกับ Firebase Test Lab การทดสอบ Robo จะวิเคราะห์โครงสร้างของส่วนติดต่อผู้ใช้ (UI) ของแอปของคุณ จากนั้นสำรวจอย่างเป็นระบบ โดยจำลองกิจกรรมของผู้ใช้โดยอัตโนมัติ การทดสอบ Robo จะจำลองกิจกรรมของผู้ใช้เดียวกันในลำดับเดียวกันเสมอ เมื่อคุณใช้เพื่อทดสอบแอปในการกำหนดค่าอุปกรณ์เฉพาะด้วยการตั้งค่าเดียวกัน แนวทางการทดสอบที่ทำซ้ำได้นี้ช่วยให้คุณใช้การทดสอบ Robo เพื่อตรวจสอบความถูกต้องของการแก้ไขจุดบกพร่องและทดสอบการถดถอย

การทดสอบ Robo จะบันทึกไฟล์บันทึก บันทึกชุดของภาพหน้าจอที่มีคำอธิบายประกอบ จากนั้นสร้างวิดีโอจากภาพหน้าจอเหล่านั้นเพื่อแสดงให้คุณเห็นถึงการดำเนินการของผู้ใช้จำลองที่ดำเนินการ บันทึก ภาพหน้าจอ และวิดีโอเหล่านี้สามารถช่วยคุณระบุสาเหตุที่แท้จริงของการหยุดทำงานของแอป คุณลักษณะการทดสอบ Robo เหล่านี้สามารถช่วยคุณค้นหาปัญหาเกี่ยวกับ UI ของแอปได้

นอกเหนือจากการเรียกใช้การทดสอบ Robo ตามปกติแล้ว คุณยังสามารถปรับแต่งการทดสอบของคุณโดยใช้สคริปต์ Robo ซึ่งเป็นคุณสมบัติของการทดสอบ Robo หากต้องการเรียนรู้เพิ่มเติม ดูที่ เรียกใช้สคริปต์ Robo

สถิติการรวบรวมข้อมูลการทดสอบ Robo

เพื่อช่วยคุณตีความผลการทดสอบ Robo การทดสอบ Robo จะบันทึกสถิติระหว่างการรวบรวมข้อมูลการทดสอบแต่ละครั้ง Test Lab แสดงสถิติที่ด้านบนของแท็บการทดสอบ Robo ในหน้าผลการทดสอบของคุณ:

  • การดำเนินการ: จำนวนรวมของการดำเนินการที่ดำเนินการระหว่างการรวบรวมข้อมูล รวมถึงการดำเนินการของสคริปต์ Robo การดำเนินการของ Monkey และคำสั่ง Robo

  • กิจกรรม: จำนวนกิจกรรมที่แตกต่างกันซึ่งครอบคลุมระหว่างการรวบรวมข้อมูล

  • หน้าจอ: จำนวนหน้าจอที่แตกต่างกันซึ่งเข้าชมระหว่างการรวบรวมข้อมูล

Test Lab ยังใช้สถิติเพื่อสร้างการแสดงภาพของการทดสอบ Robo ในรูปแบบของกราฟการรวบรวมข้อมูล กราฟมีหน้าจอเป็นโหนดและการกระทำเป็นขอบ เมื่อติดตามขอบระหว่างหน้าจอ คุณจะได้แนวคิดว่าการทดสอบ Robo สำรวจแอปของคุณอย่างไรตลอดการรวบรวมข้อมูล

หมดเวลาการทดสอบ Robo

การทดสอบ Robo อาจใช้เวลาห้านาทีหรือมากกว่านั้นขึ้นอยู่กับความซับซ้อนของ UI ของแอปของคุณในการโต้ตอบกับ UI อย่างละเอียด เราขอแนะนำให้ตั้งค่าการหมดเวลาทดสอบเป็นอย่างน้อย 120 วินาที (2 นาที) สำหรับแอปส่วนใหญ่ และ 300 วินาที (5 นาที) สำหรับแอปที่ซับซ้อนปานกลาง ค่าเริ่มต้นสำหรับการหมดเวลาคือ 300 วินาที (5 นาที) สำหรับการทดสอบที่เรียกใช้จาก Android Studio และคอนโซล Firebase และ 900 วินาที (15 นาที) สำหรับการทดสอบที่เรียกใช้จากบรรทัดคำสั่ง gcloud

ข้อผิดพลาดหมดเวลาเริ่มต้นของแอป

หากแอปของคุณใช้เวลานานในการเริ่มต้น การทดสอบ Robo อาจทำให้เกิดข้อผิดพลาด และไม่สามารถรวบรวมข้อมูลแอปของคุณได้ กรณีนี้จะเกิดขึ้นในกรณีที่เวลาเริ่มต้นทำงานนานมากเท่านั้น และสามารถแก้ไขได้โดยการแก้ไขแอปของคุณเพื่อให้เริ่มทำงานเร็วขึ้นเท่านั้น

ควบคุมได้มากขึ้นด้วยสคริปต์ Robo

บางครั้งคุณต้องการการควบคุมการทดสอบของคุณมากขึ้น ตัวอย่างเช่น คุณอาจต้องการทดสอบการเดินทางของผู้ใช้ทั่วไปหรือระบุอินพุต UI เฉพาะ เช่น ชื่อผู้ใช้และรหัสผ่าน สคริปต์ Robo สามารถช่วยได้ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับสคริปต์ Robo โปรดดูคู่มืออ้างอิงการเรียกใช้ สคริปต์ Robo และ สคริปต์ Robo

การทดสอบ Robo และวิดเจ็ต UI ที่ไม่ใช่ Android

การทดสอบ Robo ใช้ Android API เพื่อดำเนินการกับวิดเจ็ต Android UI โดยตรง ซึ่งจะช่วยให้การทดสอบสำรวจ UI ของคุณโดยอัตโนมัติ แต่ก็หมายความว่าพวกเขาจำเป็นต้องสามารถแยกลำดับชั้นของ Android UI สำหรับหน้าจอเพื่อเรียกใช้การทดสอบได้

หากหน้าจอในแอปของคุณไม่ได้ใช้วิดเจ็ต UI ของ Android การทดสอบ Robo จะใช้ Monkey Actions เพื่อทดสอบหน้าจอนั้น Monkey Actions ไม่เหมือนกับการดำเนินการทดสอบ Robo ที่มีระเบียบแบบแผนมากกว่า เพียงจำลองเหตุการณ์การแตะบนตำแหน่งกึ่งสุ่มบนหน้าจอของอุปกรณ์

หากต้องการทดสอบหน้าจอที่ไม่ใช้วิดเจ็ต Android UI ให้ดีขึ้น คุณสามารถแทนที่การแตะของ Monkey Action ได้ตามอำเภอใจด้วยชุดการแตะและการโต้ตอบแบบมีสคริปต์ผ่าน Firebase Test Lab Game Loop Tests

การผสานรวมกับ Google Play

คุณสามารถใช้การทดสอบ Robo ใน Google Play Console เมื่อคุณอัปโหลดและเผยแพร่ไฟล์ APK ของแอปโดยใช้ช่องอัลฟ่าหรือเบต้า การทดสอบ Robo ทำงานบนชุดอุปกรณ์จริงที่ได้รับความนิยมจากตำแหน่งที่ตั้งทางภูมิศาสตร์ต่างๆ โดยครอบคลุมการทดสอบในฟอร์มแฟคเตอร์และการกำหนดค่าฮาร์ดแวร์ต่างๆ หากต้องการเรียนรู้เพิ่มเติม โปรดดู ที่ ใช้รายงานก่อนการเปิดตัวเพื่อระบุปัญหา

ทดสอบการลงชื่อเข้าใช้บัญชีและการป้อนข้อความที่กำหนดไว้ล่วงหน้า

การทดสอบ Robo รองรับการลงชื่อเข้าใช้บัญชีทดสอบ และยังอนุญาตให้คุณป้อนข้อความที่กำหนดไว้ล่วงหน้าลงในช่องต่างๆ ในแอปของคุณ สำหรับการลงชื่อเข้าใช้แบบกำหนดเองและการป้อนข้อความที่กำหนดไว้ล่วงหน้าอื่นๆ การทดสอบ Robo สามารถป้อนข้อความลงในช่อง EditText ในแอปของคุณได้ สำหรับแต่ละสตริง คุณต้องระบุฟิลด์ EditText โดยใช้ชื่อทรัพยากร Android หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ การเข้าถึงทรัพยากร

เข้าสู่ระบบ

การทดสอบ Robo มีสองวิธีที่พิเศษร่วมกันเพื่อสนับสนุนการลงชื่อเข้าใช้:

  • การลงชื่อเข้าใช้แบบกำหนดเอง: หากคุณให้ข้อมูลประจำตัวของบัญชีทดสอบ คุณต้องบอก Robo test ว่าควรป้อนที่ใด และระบุข้อมูลประจำตัวเหล่านั้นด้วย

  • การลงชื่อเข้าใช้อัตโนมัติ: หากแอปของคุณมีหน้าจอลงชื่อเข้าใช้ที่ใช้บัญชี Google สำหรับการรับรองความถูกต้อง การทดสอบ Robo จะใช้บัญชีทดสอบของ Google เว้นแต่คุณจะให้ข้อมูลรับรองบัญชีทดสอบสำหรับการลงชื่อเข้าใช้แบบกำหนดเอง

ในการจัดเตรียมข้อมูลรับรองบัญชีทดสอบสำหรับการลงชื่อเข้าใช้แบบกำหนดเอง ให้ทำดังต่อไปนี้:

  1. ในหน้า เลือกขนาด เลือก ตัวเลือกเพิ่มเติม

  2. ภายใต้ ข้อมูลรับรองบัญชีทดสอบ (ไม่บังคับ) ให้ป้อนชื่อผู้ใช้และรหัสผ่าน ชื่อทรัพยากร และชื่อผู้ใช้และรหัสผ่านสำหรับบัญชีทดสอบ

การป้อนข้อความที่กำหนดไว้ล่วงหน้า

คุณสามารถระบุข้อความป้อนแบบกำหนดเองสำหรับฟิลด์ข้อความอื่นๆ ที่แอปของคุณใช้ ในการป้อนข้อความสำหรับฟิลด์เพิ่มเติม ให้ทำดังต่อไปนี้:

  1. ในหน้า เลือกขนาด เลือก ตัวเลือกเพิ่มเติม

  2. ภายใต้ ฟิลด์เพิ่มเติม (ไม่บังคับ) ให้ป้อนชื่อทรัพยากรอย่างน้อยหนึ่งชื่อ และสตริงที่จะป้อนในช่องข้อความที่เกี่ยวข้อง

ข้อผิดพลาดในการป้อนข้อความที่กำหนดไว้ล่วงหน้า

การทดสอบ Robo จะค้นหาฟิลด์ EditText ด้วยชื่อทรัพยากร Android ที่ตรงกับนิพจน์ทั่วไปที่ให้มา ถ้า Robo ไม่พบฟิลด์ที่ตรงกัน มันจะไม่ป้อนข้อความของคุณ แต่อย่างอื่นก็ยังคงรวบรวมข้อมูลตามปกติ

คุณสามารถระบุ ลิงก์ในรายละเอียด ได้สูงสุดสามลิงก์ที่แอปของคุณสนับสนุนสำหรับการทดสอบ ลิงก์ในรายละเอียดจะออกไปยังแอปของคุณเป็น Android ACTION_VIEW Intents ดังนั้น แต่ละลิงก์ต้องตรงกับตัวกรองเจตนาในแอปของคุณ

หากมีการระบุลิงก์ในรายละเอียดอย่างน้อยหนึ่งลิงก์ แอปจะเปิดใช้งานตามปกติก่อน (โดยใช้จุดประสงค์ ACTION_MAIN ) และรวบรวมข้อมูลจนถึงระยะหมดเวลาที่ระบุ หลังจากการรวบรวมข้อมูลหลัก แต่ละ Deep Link จะได้รับการรวบรวมข้อมูลเพิ่มอีก 30 วินาทีต่อครั้ง

หากการทดสอบ Robo ไม่พบกิจกรรมที่ตรงกับ Deep Link ของคุณ Test Lab จะเพิกเฉยต่อลิงก์นั้น ปัญหา Deep Link มักจะเป็นผลมาจากความแตกต่างระหว่าง Deep Link ที่ให้มาและคำจำกัดความในแอปของคุณ ตรวจสอบทั้ง URL ที่ให้มาและแอปของคุณเพื่อหาข้อผิดพลาดหรือความไม่สอดคล้องกันอื่นๆ

การสนับสนุนสิทธิ์ใช้งานแอป

Test Lab รองรับแอพที่ใช้บริการ App Licensing จาก Google Play หากต้องการตรวจสอบใบอนุญาตให้สำเร็จเมื่อทดสอบแอปกับ Test Lab คุณต้องเผยแพร่แอปไปยังช่องทางการผลิตใน Play Store หากต้องการทดสอบแอปของคุณในช่องอัลฟ่าหรือเบต้าโดยใช้ Test Lab ให้นำการตรวจสอบสิทธิ์การใช้งานออกก่อนอัปโหลดแอปไปยัง Test Lab

ปัญหาที่ทราบ

ขณะนี้การทดสอบ Robo มีข้อจำกัดที่ทราบดังต่อไปนี้:

  • รองรับเฟรมเวิร์ก UI: การทดสอบ Robo ใช้งานได้กับแอปที่ใช้องค์ประกอบ UI จากเฟรมเวิร์ก UI ของ Android เท่านั้น (รวมถึงออบเจกต์ View และ ViewGroup แต่ไม่รวมออบเจ็กต์ WebView ) หากคุณใช้การทดสอบ Robo เพื่อทดสอบแอพที่ใช้เฟรมเวิร์ก UI อื่น รวมถึงแอพที่ใช้ Unity game engine การทดสอบอาจออกโดยไม่ต้องสำรวจนอกเหนือจากหน้าจอแรก
  • แคปต์ชาสำหรับลงชื่อเข้าใช้: การทดสอบ Robo ไม่สามารถข้ามหน้าจอลงชื่อเข้าใช้ที่ต้องการการดำเนินการเพิ่มเติมของผู้ใช้นอกเหนือจากการป้อนข้อมูลรับรองเพื่อลงชื่อเข้าใช้ ตัวอย่างเช่น การกรอกแคปต์ชา

ขั้นตอนถัดไป