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

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

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

สคริปต์ Robo ใช้ Robo test เป็นเครื่องมือทดสอบ สคริปต์ Robo ประกอบด้วยลำดับการดำเนินการใน UI เช่น ป้อนข้อความ "ชื่อผู้ใช้" แล้วแตะปุ่ม "ตกลง" ในรูปแบบที่พื้นฐานที่สุด สคริปต์ Robo ยังอาจมีการดำเนินการต่างๆ เช่น การรอให้องค์ประกอบปรากฏขึ้น การแตะที่จุดใดจุดหนึ่งภายในองค์ประกอบ และการเรียกใช้คำสั่ง Shell ของ 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 จะดำเนินการทำการ Crawl แบบอัตโนมัติทั้งหมดต่อ
  • นำแอปไปไว้ในสถานะหรือหน้าจอที่เฉพาะเจาะจงเพื่อทำการวิเคราะห์ เช่น วิเคราะห์ข้อความในแอป นโยบายความเป็นส่วนตัว หรือระดับที่เจาะจงของเกม
  • ทำการทดสอบการใช้เครื่องมือจากต้นทางถึงปลายทาง โดยการทดสอบ Robo จะทำการรวบรวมข้อมูลแบบอัตโนมัติทั้งหมดต่อหลังจากสคริปต์ Robo เสร็จสมบูรณ์หรือไม่

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

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

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

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

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

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

  2. ในแผง Firebase ให้คลิก Record Robo Script and Use it to Guide Robo Test

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

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

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

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

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

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

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

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