เรียกใช้สคริปต์ Robo (Android)

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

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

สคริปต์ Robo ใช้การทดสอบ Robo เป็นเครื่องมือทดสอบ ในรูปแบบพื้นฐานที่สุด สคริปต์ Robo จะประกอบด้วยลำดับการดำเนินการของ UI เช่น ป้อนข้อความ "ชื่อผู้ใช้" แล้วแตะปุ่ม "ตกลง" สคริปต์ Robo ยังสามารถรวมการดำเนินการต่างๆ เช่น รอให้องค์ประกอบปรากฏขึ้น การแตะจุดที่เจาะจงภายในองค์ประกอบ และการดำเนินการคำสั่งเชลล์ของ Android Debug Bridge (adb)

สคริปต์ Robo มีข้อดีเหนือเฟรมเวิร์กการทดสอบแบบดั้งเดิมดังต่อไปนี้

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

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

  • เงื่อนไขการทริกเกอร์ต่างๆ เช่น ชื่อแพ็กเกจแอปที่ใช้งานอยู่ (หรือไม่) หรือองค์ประกอบที่เฉพาะเจาะจงแสดงบนหน้าจอ (หรือไม่)
  • การควบคุมการเรียกใช้ เช่น จํานวนการเรียกใช้สูงสุด ลําดับความสําคัญ ระยะการ Crawl ที่เกี่ยวข้อง
  • ประเภทการดําเนินการที่ไม่เป็นไปตามปกติ (แบบมีเงื่อนไข ไม่สนใจองค์ประกอบ การปิดหน้าจอ)

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

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

ใช้ฟีเจอร์สคริปต์ Robo ขั้นสูงเพิ่มเติมเพื่อทำสิ่งต่อไปนี้

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

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

บันทึกสคริปต์ Robo โดยใช้ Test Lab ใน Android Studio

เครื่องบันทึกสคริปต์ Robo ใน Android Studio ช่วยให้คุณบันทึกสคริปต์ Robo ได้โดยโต้ตอบกับแอปในอุปกรณ์โดยตรง ทําตามวิธีการต่อไปนี้เพื่อเริ่มต้นใช้งานสคริปต์ Robo ผ่านเครื่องมือ Firebase ใน Android Studio

  1. เปิด Android Studio แล้วเลือกเครื่องมือ -> Firebase

  2. ในแผง Firebase ให้คลิกบันทึกสคริปต์ Robo และใช้เพื่อแนะนําการทดสอบ Robo

  3. คลิกบันทึกสคริปต์ Robo กล่องโต้ตอบ "เลือกเป้าหมายการทำให้ใช้งานได้" จะปรากฏขึ้น

  4. เลือกอุปกรณ์ที่ต้องการบันทึกสคริปต์ Robo

  5. หลังจากบันทึกสคริปต์ Robo ในอุปกรณ์แล้ว ให้บันทึกไฟล์เป็นไฟล์ JSON ในตำแหน่งที่ต้องการ

  6. เปิดหน้า Test Lab ในคอนโซล Firebase แล้วอัปโหลดไฟล์สคริปต์ JSON และ APK ของแอปพลิเคชัน

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

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

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

เรียกใช้สคริปต์ Robo ใน Test Lab

หากต้องการเรียกใช้สคริปต์ Robo ใน Test Lab ให้ทําตามวิธีการต่อไปนี้

  1. เปิดหน้า Test Lab ในคอนโซล Firebase

  2. อัปโหลด APK หรือ AAB ของแอปในช่อง APK หรือ AAB ของแอป

  3. อัปโหลดไฟล์สคริปต์ Robo ที่บันทึกไว้หรือสร้างด้วยตนเองในช่องสคริปต์ Robo (ไม่บังคับ)

ระบุสคริปต์ Robo ในการเรียกใช้การทดสอบ Robo ในพื้นที่

หากต้องการระบุสคริปต์ Robo ในการเรียกใช้การทดสอบ Robo ในพื้นที่ ให้ใช้ตัวเลือกการทดสอบ Robo ต่อไปนี้

--robo-script-file <robo-script-path>

แทนที่ <robo-script-path> ด้วยเส้นทางไปยังไฟล์สคริปต์ Robo ในระบบไฟล์ในเครื่อง ทำตามวิธีการทดสอบ Robo ในพื้นที่

ระบุสคริปต์ Robo ในคําเรียกใช้การทดสอบ gcloud CLI

หากต้องการระบุสคริปต์ Robo ในคําเรียกใช้การทดสอบ gcloud CLI ให้ใช้ Flag gcloud CLI ต่อไปนี้

--robo-script = <robo-script-path>

แทนที่ <robo-script-path> ด้วยเส้นทางไปยังไฟล์สคริปต์ Robo ในระบบไฟล์ในเครื่องหรือใน Cloud Storage โดยใช้การเขียนแทน gs:// เช่น

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

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