เรียกใช้สคริปต์ 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 พื้นฐานจะเข้ามาแทนที่และ ทดสอบแอปต่อไป แนวทางการทดสอบต่อเนื่องนี้ช่วยให้ ใช้กรณีการใช้งานที่สำคัญหลายอย่างได้ เช่น คุณสามารถใช้สคริปต์ Robo เพื่อนำ แอปไปสู่สถานะหนึ่งๆ ได้โดยการดำเนินการตามขั้นตอนการลงชื่อเข้าใช้ที่กำหนดเอง
บันทึกได้ คุณไม่จำเป็นต้องเขียนโค้ดสคริปต์ Robo ด้วยตนเอง โดยสามารถบันทึกได้โดยใช้ เครื่องมือบันทึกสคริปต์ Robo ใน Android Studio โดยปกติแล้วการสร้างหรือแก้ไขสคริปต์ Robo ไม่จำเป็นต้องมีความรู้ด้านการพัฒนาแอปบนอุปกรณ์เคลื่อนที่
ยืดหยุ่น สคริปต์ 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 ไม่ได้มาแทนที่การทดสอบทุกประเภท คุณยังคงต้องมี Unit Test เพื่อตรวจหาข้อบกพร่องของตรรกะระดับล่างในแอป ซึ่งโดยปกติแล้วการทดสอบเหล่านี้ไม่จำเป็นต้องใช้สภาพแวดล้อม 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. คลิก Record Robo script กล่องโต้ตอบเลือกเป้าหมายการติดตั้งใช้งาน จะปรากฏขึ้น

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

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

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

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

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

โดยค่าเริ่มต้น กลไกความเสถียรของสคริปต์ 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 ให้ใช้แฟล็ก 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>

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