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

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

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

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

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