เรียกใช้สคริปต์ 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 ไม่จำเป็นต้องมีความรู้เกี่ยวกับการพัฒนาแอปบนอุปกรณ์เคลื่อนที่
ยืดหยุ่น สคริปต์ 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. คลิกบันทึกสคริปต์ Robo กล่องโต้ตอบ Select Deployment Target จะปรากฏขึ้น

  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>

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