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

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

เอกสารนี้อธิบายวิธีใช้ สคริปต์ 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 รองรับสิ่งต่อไปนี้:

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

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

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

ใช้คุณสมบัติขั้นสูงของ Robo script เพื่อทำสิ่งต่อไปนี้:

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

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

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

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

  1. เปิด Android Studio แล้วเลือก Tools -> Firebase

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

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

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

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

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

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

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

ตามค่าเริ่มต้น กลไกความทนทานของสคริปต์ Robo จะป้องกันไม่ให้เกิดความล้มเหลวตั้งแต่เนิ่นๆ หากคุณเลือกโหมดการดำเนินการ strict และสคริปต์ Robo ล้มเหลว ณ จุดใดก็ตาม Test Lab จะละทิ้งขั้นตอนเพิ่มเติมทั้งหมดในสคริปต์และดำเนินการรวบรวมข้อมูล 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>

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