เอกสารนี้อธิบายวิธีใช้ สคริปต์ 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 ไม่ได้มาแทนที่การทดสอบทุกประเภท คุณยังคงต้องมีการทดสอบหน่วยเพื่อตรวจหาข้อบกพร่องเชิงตรรกะระดับต่ำในแอป ซึ่งโดยปกติแล้วการทดสอบเหล่านี้ไม่จำเป็นต้องใช้สภาพแวดล้อม Android หรือ iOS เราขอแนะนำให้คุณเสริมการทดสอบสคริปต์ Robo ด้วยการทดสอบเครื่องมือที่กำหนดเป้าหมายซึ่งสามารถมีการยืนยันที่เฉพาะเจาะจงและละเอียดเกี่ยวกับตรรกะทางธุรกิจ ซึ่งแสดงออกมาได้ดีที่สุดในโค้ด
บันทึกสคริปต์ Robo โดยใช้ Test Lab ใน Android Studio
เครื่องมือบันทึกสคริปต์ Robo ใน Android Studio ช่วยให้คุณบันทึกสคริปต์ Robo ได้โดยการโต้ตอบกับแอปในอุปกรณ์โดยตรง ทำตามวิธีการต่อไปนี้เพื่อเริ่มต้นใช้งานการเขียนสคริปต์ Robo ผ่านเครื่องมือ Firebase ใน Android Studio
เปิด Android Studio แล้วเลือก เครื่องมือ -> Firebase
ในบานหน้าต่าง Firebase ให้คลิกบันทึกสคริปต์ Robo และใช้เพื่อนำทางการทดสอบ Robo
คลิกบันทึกสคริปต์ Robo กล่องโต้ตอบ "เลือกเป้าหมายการติดตั้งใช้งาน" จะปรากฏขึ้น
เลือกอุปกรณ์ที่ต้องการบันทึกสคริปต์ Robo
หลังจากบันทึกสคริปต์ Robo ในอุปกรณ์แล้ว ให้บันทึกไฟล์เป็นไฟล์ JSON ในตำแหน่งที่ต้องการ
เปิดหน้า Test Lab ในคอนโซล Firebase แล้วอัปโหลดไฟล์สคริปต์ JSON และ APK ของแอปพลิเคชัน
คลิกปุ่มต่อไป ระบบจะแจ้งให้คุณเลือกระดับอุปกรณ์และ API หลังจากสคริปต์การทดสอบทำงานเสร็จแล้ว Test Lab จะสร้าง รายงานการทดสอบ
(ไม่บังคับ) หากต้องการคัดลอกหรือดาวน์โหลด Logcat ของรายงานการทดสอบและวิดีโอ ให้คลิกดูไฟล์ต้นฉบับ
โดยค่าเริ่มต้น กลไกความเสถียรของสคริปต์ Robo จะป้องกันไม่ให้สคริปต์ล้มเหลวตั้งแต่เนิ่นๆ
หากคุณเลือกโหมดการดำเนินการ strict และสคริปต์ Robo ล้มเหลวในจุดใดก็ตาม
Test Lab จะยกเลิกขั้นตอนอื่นๆ ทั้งหมดในสคริปต์และกลับมาทำการ
Crawl Robo ตามปกติ โดยส่วนใหญ่แล้ว สคริปต์ Robo จะล้มเหลวเนื่องจาก Robo ไม่พบองค์ประกอบที่จำเป็นบนหน้าจอ โปรดตรวจสอบว่าการนำทางของแอปเป็นไปตามที่คาดการณ์ได้และหน้าจอแสดงตามลำดับที่กำหนดไว้เพื่อหลีกเลี่ยงความล้มเหลว
เรียกใช้สคริปต์ Robo ใน Test Lab
หากต้องการเรียกใช้สคริปต์ Robo ใน Test Lab ให้ทำตามวิธีการต่อไปนี้
เปิดหน้า Test Lab ในคอนโซล Firebase
อัปโหลด APK หรือ AAB ของแอปในช่อง APK หรือ AAB ของแอป
อัปโหลดไฟล์สคริปต์ Robo ที่บันทึกไว้หรือสร้างขึ้นด้วยตนเองในช่องสคริปต์ Robo (ไม่บังคับ)
ระบุสคริปต์ Robo สำหรับการเรียกใช้การทดสอบ Robo ในเครื่อง
หากต้องการระบุสคริปต์ Robo สำหรับการเรียกใช้การทดสอบ Robo ในเครื่อง ให้ใช้ตัวเลือกการทดสอบ Robo ต่อไปนี้
--robo-script-file <robo-script-path>
แทนที่ <robo-script-path> ด้วยเส้นทางไปยังไฟล์สคริปต์ Robo ในระบบไฟล์ในเครื่อง
ทำตามวิธีการสำหรับการเรียกใช้การทดสอบ Robo ในเครื่อง
run
ระบุสคริปต์ 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>
ขั้นตอนถัดไป
- หากต้องการดูข้อมูลเกี่ยวกับโครงสร้าง ความสามารถ การใช้งาน และการดำเนินการของสคริปต์ Robo โปรดดู คู่มืออ้างอิงสคริปต์ Robo
- เรียกใช้การทดสอบ Robo