การทดสอบ Robo เป็นเครื่องมือทดสอบที่ผสานรวมกับ Firebase Test Lab การทดสอบด้วยหุ่นยนต์จะวิเคราะห์โครงสร้างของอินเทอร์เฟซผู้ใช้ (UI) ของแอป จากนั้นจะสำรวจอย่างเป็นระบบโดยจำลองกิจกรรมของผู้ใช้โดยอัตโนมัติ การทดสอบด้วย Robo จะจำลองกิจกรรมของผู้ใช้แบบเดิมตามลำดับเดิมเสมอเมื่อคุณใช้เพื่อทดสอบแอปในการกำหนดค่าอุปกรณ์ที่เฉพาะเจาะจงด้วยการตั้งค่าเดียวกัน แนวทางการทดสอบแบบทําซ้ำนี้ช่วยให้คุณใช้การทดสอบ Robo เพื่อตรวจสอบการแก้ไขข้อบกพร่องและทดสอบหาการเกิดซ้ำได้
การทดสอบด้วยหุ่นยนต์จะบันทึกไฟล์บันทึก บันทึกภาพหน้าจอที่มีคำอธิบายประกอบชุดหนึ่ง แล้วสร้างวิดีโอจากภาพหน้าจอเหล่านั้นเพื่อแสดงการดำเนินการของผู้ใช้จำลองที่ดำเนินการ บันทึก ภาพหน้าจอ และวิดีโอเหล่านี้จะช่วยคุณระบุสาเหตุของข้อขัดข้องของแอปได้ ฟีเจอร์การทดสอบด้วยหุ่นยนต์เหล่านี้ยังช่วยค้นหาปัญหาเกี่ยวกับ UI ของแอปได้ด้วย
นอกจากการเรียกใช้การทดสอบ Robo ปกติแล้ว คุณยังปรับแต่งการทดสอบได้โดยใช้สคริปต์ Robo ซึ่งเป็นฟีเจอร์ของการทดสอบ Robo ดูข้อมูลเพิ่มเติมได้ที่เรียกใช้สคริปต์ Robo
หากต้องการลองใช้ Robo รุ่นเบต้าสำหรับ iOS ขึ้นไป โปรดดูเรียกใช้การทดสอบ Robo
สถิติการ Crawl ของการทดสอบ Robo
การทดสอบ Robo จะบันทึกสถิติระหว่างการ Crawl การทดสอบแต่ละครั้งเพื่อช่วยให้คุณตีความผลการทดสอบได้ Test Lab แสดงสถิติที่ด้านบนของแท็บการทดสอบด้วยโรโบในหน้าผลการทดสอบ
การดําเนินการ: จํานวนการดําเนินการทั้งหมดที่ทําระหว่างการ Crawl ซึ่งรวมถึงการดําเนินการของสคริปต์ Robo, การดําเนินการของ Monkey และคําแนะนําสําหรับ Robo
กิจกรรม: จํานวนกิจกรรมที่แตกต่างกันที่ครอบคลุมระหว่างการ Crawl
หน้าจอ: จํานวนหน้าจอที่ไม่ซ้ำกันซึ่งมีการเรียกดูระหว่างการ Crawl
Test Lab ยังใช้สถิติเพื่อสร้างภาพการทดสอบด้วย Roboast ในรูปแบบกราฟการ Crawl ด้วย กราฟมีหน้าจอเป็นโหนดและการดำเนินการเป็นขอบ การติดตามขอบระหว่างหน้าจอจะช่วยให้คุณทราบคร่าวๆ ว่า Robo Test ไปยังส่วนต่างๆ ของแอปอย่างไรตลอดการ Crawl
ระยะหมดเวลาในการทดสอบ Robo
การทดสอบด้วย Robo อาจใช้เวลา 5 นาทีขึ้นไปในการโต้ตอบ UI อย่างละเอียด ทั้งนี้ขึ้นอยู่กับความซับซ้อนของ UI ของแอป เราขอแนะนำให้ตั้งค่าการหมดเวลาการทดสอบเป็นอย่างน้อย 120 วินาที (2 นาที) สำหรับแอปส่วนใหญ่ และ 300 วินาที (5 นาที) สำหรับแอปที่มีความซับซ้อนปานกลาง ค่าเริ่มต้นสำหรับระยะหมดเวลาคือ 300 วินาที (5 นาที) สําหรับการทดสอบที่เรียกใช้จาก Android Studio และFirebaseคอนโซล และ 900 วินาที (15 นาที) สําหรับการทดสอบที่เรียกใช้จากgcloud
บรรทัดคําสั่ง
ข้อผิดพลาดการหมดเวลาของการเปิดแอป
หากแอปใช้เวลานานในการเริ่มต้น การทดสอบ Robo อาจแสดงข้อผิดพลาดและจะทำการ Crawl แอปไม่ได้ กรณีนี้จะเกิดขึ้นในกรณีที่ใช้เวลาเริ่มต้นนานมากเท่านั้น และแก้ไขได้โดยการแก้ไขแอปให้เริ่มต้นเร็วขึ้น
ควบคุมได้มากขึ้นด้วยสคริปต์ Robo
บางครั้งคุณอาจต้องควบคุมการทดสอบได้มากขึ้น เช่น คุณอาจต้องทดสอบเส้นทางที่ผู้ใช้ทั่วไปใช้ หรือป้อนอินพุต UI ที่เฉพาะเจาะจง เช่น ชื่อผู้ใช้และรหัสผ่าน สคริปต์ Robo ช่วยคุณได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับสคริปต์ Robo ได้ที่เรียกใช้สคริปต์ Robo และคู่มืออ้างอิงสคริปต์ Robo
การทดสอบ Robo และวิดเจ็ต UI ที่ไม่ใช่ Android
การทดสอบ Robo ใช้ Android API เพื่อดำเนินการกับวิดเจ็ต UI ของ Android โดยตรง ซึ่งจะช่วยให้การทดสอบสำรวจ UI ของคุณโดยอัตโนมัติ แต่ก็หมายความว่าการทดสอบจะต้องดึงข้อมูลลําดับชั้น UI ของ Android สําหรับหน้าจอเพื่อเรียกใช้การทดสอบบนหน้าจอนั้น
หากหน้าจอในแอปไม่ได้ใช้วิดเจ็ต UI ของ Android การทดสอบ Robo จะเปลี่ยนไปใช้การดําเนินการของ Monkey เพื่อทดสอบหน้าจอนั้น ซึ่งแตกต่างจากการดําเนินการทดสอบ Robo ที่เป็นแบบแผนมากกว่า Monkey Actions จะจําลองเหตุการณ์การแตะในตําแหน่งแบบสุ่มบางส่วนบนหน้าจอของอุปกรณ์
หากต้องการทดสอบหน้าจอที่ไม่ได้ใช้วิดเจ็ต UI ของ Android ให้ดีขึ้น คุณสามารถแทนที่การแตะแบบสุ่มของ Monkey Action ด้วยชุดการแตะและการโต้ตอบที่ใช้สคริปต์ผ่านFirebase Test Lab การทดสอบ Game Loop
การผสานรวมกับ Google Play
คุณสามารถใช้การทดสอบด้วย Robo ใน Google Play Console เมื่ออัปโหลดและเผยแพร่ไฟล์ APK ของแอปโดยใช้ช่องทางอัลฟ่าหรือเบต้า การทดสอบ Robo จะทำงานบนชุดอุปกรณ์จริงยอดนิยมจากสถานที่ตั้งทางภูมิศาสตร์ที่แตกต่างกัน ซึ่งจะครอบคลุมการทดสอบรูปแบบต่างๆ และการกำหนดค่าฮาร์ดแวร์ ดูข้อมูลเพิ่มเติมได้ที่ใช้รายงานก่อนการเปิดตัวเพื่อระบุปัญหา
ทดสอบการลงชื่อเข้าใช้บัญชีและการป้อนข้อความที่กำหนดไว้ล่วงหน้า
การทดสอบ Robo รองรับการลงชื่อเข้าใช้บัญชีทดสอบ และให้คุณป้อนข้อความที่กําหนดไว้ล่วงหน้าในช่องของแอปได้ สําหรับการลงชื่อเข้าใช้ที่กําหนดเองและอินพุตข้อความที่กําหนดไว้ล่วงหน้าอื่นๆ การทดสอบ Robo จะป้อนข้อความลงในช่อง EditText
ในแอปได้ สําหรับสตริงแต่ละรายการ คุณต้องระบุช่อง EditText
โดยใช้ชื่อทรัพยากร Android ดูข้อมูลเพิ่มเติมได้ที่การเข้าถึงแหล่งข้อมูล
ลงชื่อเข้าใช้
การทดสอบด้วยโรโบมี 2 วิธีที่ไม่สามารถใช้ร่วมกันเพื่อรองรับการลงชื่อเข้าใช้ ดังนี้
การลงชื่อเข้าใช้ที่กําหนดเอง: หากระบุข้อมูลเข้าสู่ระบบของบัญชีทดสอบ คุณต้องบอกการทดสอบด้วยหุ่นยนต์ว่าจะป้อนข้อมูลเข้าสู่ระบบที่ใด รวมถึงระบุข้อมูลเข้าสู่ระบบเหล่านั้นด้วย
การลงชื่อเข้าใช้โดยอัตโนมัติ: หากแอปมีหน้าจอลงชื่อเข้าใช้ที่ใช้บัญชี Google สำหรับการรับรองความถูกต้อง การทดสอบ Robo จะใช้บัญชีทดสอบ Google เว้นแต่คุณจะระบุข้อมูลเข้าสู่ระบบบัญชีทดสอบสำหรับการลงชื่อเข้าใช้ที่กำหนดเอง
หากต้องการระบุข้อมูลเข้าสู่ระบบบัญชีทดสอบสำหรับการลงชื่อเข้าใช้ที่กำหนดเอง ให้ทำตามขั้นตอนต่อไปนี้
ในหน้าเลือกมิติข้อมูล ให้เลือกตัวเลือกเพิ่มเติม
ในส่วนข้อมูลเข้าสู่ระบบของบัญชีทดสอบ (ไม่บังคับ) ให้ป้อนชื่อแหล่งข้อมูลชื่อผู้ใช้และรหัสผ่าน รวมถึงชื่อผู้ใช้และรหัสผ่านของบัญชีทดสอบ
การป้อนข้อความที่กําหนดไว้ล่วงหน้า
คุณสามารถระบุข้อความอินพุตที่กำหนดเองสำหรับช่องข้อความอื่นๆ ที่แอปใช้ หากต้องการระบุอินพุตข้อความสำหรับช่องเพิ่มเติม ให้ทำดังนี้
ในหน้าเลือกมิติข้อมูล ให้เลือกตัวเลือกเพิ่มเติม
ในส่วนช่องเพิ่มเติม (ไม่บังคับ) ให้ป้อนชื่อทรัพยากรอย่างน้อย 1 รายการ และป้อนสตริงในช่องข้อความที่เกี่ยวข้อง
ข้อผิดพลาดของอินพุตข้อความที่กําหนดไว้ล่วงหน้า {:#predefined-text}
การทดสอบ Robo จะค้นหาช่อง EditText
ที่มีชื่อทรัพยากร Android ที่ตรงกับนิพจน์ทั่วไปที่ระบุ หากไม่พบช่องที่ตรงกัน Robo จะไม่ป้อนข้อความของคุณ แต่จะไปทำการ Crawl ต่อตามปกติ
Deep Link
คุณระบุ Deep Link ที่แอปรองรับสำหรับการทดสอบได้สูงสุด 3 รายการ
ระบบจะออก Deep Link ให้กับแอปของคุณเป็น Intent ของ Android
ACTION_VIEW
ดังนั้น แต่ละลิงก์ต้องตรงกับตัวกรอง Intent ในแอป
หากระบุ Deep Link อย่างน้อย 1 รายการ ระบบจะเปิดแอปตามปกติก่อน (โดยใช้ Intent ACTION_MAIN
) และทำการ Crawl จนถึงการหมดเวลาที่กำหนด หลังจากทำการ Crawl หลักแล้ว ระบบจะทำการ Crawl Deep Link แต่ละรายการเป็นเวลา 30 วินาที
ข้อผิดพลาดเกี่ยวกับ Deep Link
หากการทดสอบ Robo ไม่พบกิจกรรมที่ตรงกับ Deep Link ของคุณ Test Lab จะละเว้นลิงก์นั้น ปัญหาเกี่ยวกับ Deep Link มักเกิดจากความคลาดเคลื่อนระหว่าง Deep Link ที่ระบุกับคำจำกัดความของ Deep Link ในแอป โปรดตรวจสอบทั้ง URL ที่ระบุและแอปเพื่อหาคำที่พิมพ์ผิดหรือความไม่สอดคล้องอื่นๆ
การรองรับการอนุญาตให้ใช้สิทธิแอป
Test Lab รองรับแอปที่ใช้บริการการอนุญาตให้ใช้แอปที่ Google Play นำเสนอ หากต้องการตรวจสอบการอนุญาตให้ใช้สิทธิให้เสร็จสมบูรณ์เมื่อทดสอบแอปด้วย Test Lab คุณต้องเผยแพร่แอปไปยังช่องทางเวอร์ชันที่ใช้งานจริงใน Play Store หากต้องการทดสอบแอปในช่องทางอัลฟ่าหรือเบต้าโดยใช้ Test Lab ให้นำการตรวจสอบการอนุญาตให้ใช้สิทธิออกก่อนอัปโหลดแอปไปยัง Test Lab
ขั้นตอนถัดไป
- ปรับแต่งการทดสอบโดยใช้สคริปต์ Robo