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