Check out what’s new from Firebase at Google I/O 2022. Learn more

เริ่มต้นกับการทดสอบ Robo

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

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

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

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

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

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

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

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

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

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

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

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

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

เริ่มต้นใช้งานสคริปต์ Robo ผ่านเครื่องมือ Firebase ใน Android Studio:

  1. เปิด Android Studio
  2. ในเมนูหลัก เลือก เครื่องมือ > Firebase
  3. เลือก Test Lab แล้วคลิก บันทึก Robo Script และใช้เพื่อแนะนำ Robo Test
  4. ทำตามขั้นตอนที่เหลือในเครื่องมือเพื่อบันทึก Robo Script ของคุณ
  5. อัปโหลด Robo Script นั้นไปที่ Test Lab แล้วเริ่มการทดสอบของคุณ

ข้อผิดพลาดสคริปต์ Robo

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

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

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

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

เพื่อทดสอบหน้าจอที่ดีขึ้นซึ่งไม่ได้ใช้วิดเจ็ต UI ของ Android คุณสามารถแทนที่การแตะโดยอำเภอใจของ 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 ไม่พบฟิลด์ที่ตรงกัน ฟิลด์นั้นจะไม่ป้อนข้อความของคุณ แต่จะทำการรวบรวมข้อมูลต่อไปตามปกติ

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

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

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

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

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

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

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

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