เอเจนต์ App Testing เป็นเอเจนต์การสร้าง การจัดการ และการดำเนินการกรอบการทดสอบที่ขับเคลื่อนโดย Gemini ใน Firebase คุณกำหนดเป้าหมายการทดสอบด้วยภาษาธรรมชาติ และ Agent จะใช้ AI เพื่อทำความเข้าใจและไปยังส่วนต่างๆ ของแอป จำลองการโต้ตอบของผู้ใช้ และแสดงผลการทดสอบโดยละเอียด
วิธีที่เอเจนต์ App Testing ใช้ข้อมูลของคุณ
เอเจนต์ App Testing ให้บริการโดย Gemini ใน Firebase และอยู่ภายใต้ข้อกำหนดเดียวกัน ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Gemini ใน Firebase ใช้ข้อมูลของคุณได้ที่หัวข้อวิธีที่ Gemini ใน Firebase ใช้ข้อมูลของคุณ
ก่อนเริ่มต้น
ลงทะเบียนแอปกับ Firebase หากยังไม่ได้ลงทะเบียน
หากไม่ได้ใช้ผลิตภัณฑ์อื่นๆ ของ Firebase คุณเพียงแค่ต้องสร้างโปรเจ็กต์และลงทะเบียนแอป โดยไม่จำเป็นต้องเพิ่ม SDK ลงในแอป อย่างไรก็ตาม หากตัดสินใจใช้ผลิตภัณฑ์เพิ่มเติมในอนาคต โปรดทำตามขั้นตอนทั้งหมดในเพิ่ม Firebase โดยใช้คอนโซล Firebase
สร้างกรอบการทดสอบ
หากต้องการเรียกใช้การทดสอบที่ใช้ AI เป็นแนวทาง เอเจนต์ App Testing จะใช้กรอบการทดสอบภาษาธรรมชาติเพื่อเรียกใช้การทดสอบกับแอป
กรอบการทดสอบแต่ละรายการจะแบ่งออกเป็นขั้นตอนต่างๆ ซึ่งจะดำเนินการตามลำดับ ขั้นตอนช่วยให้คุณแบ่งกรอบการทดสอบออกเป็นระยะๆ โดยแต่ละระยะจะมีการยืนยันของตัวเอง Agent อาจดำเนินการหลายอย่างในขั้นตอนเดียว
คุณสร้างกรอบการทดสอบได้ 2 วิธี ได้แก่ ใช้ไฟล์ YAML หรือใช้คอนโซล Firebase ไฟล์ YAML ช่วยให้คุณจัดการกรอบการทดสอบได้ด้วยตนเอง โดยปกติจะอยู่ในที่เก็บซอร์สโค้ดที่มีเวอร์ชัน หรือจะใช้คอนโซล Firebase เพื่อจัดเก็บกรอบการทดสอบจากระยะไกลพร้อมกับข้อมูล App Distribution ก็ได้
การใช้ไฟล์ YAML
ตัวอย่างต่อไปนี้แสดงไฟล์ YAML ที่กำหนดกรอบการทดสอบ 2 รายการ
tests:
- displayName: Login as guest
id: login-as-guest
steps:
- goal: Log in as a guest
finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
prerequisiteTestCaseId: login-as-guest
steps:
- goal: Open the article on "Bob Dylan"
hint: Use the search function to find it
finalScreenAssertion: >-
The article is opened and the title "Bob Dylan" is visible.
- goal: Find Bob Dylan's birthday in the article
hint: >-
Look for the "Born" section in the infobox on the right side of the page.
finalScreenAssertion: >-
The text "May 24, 1941" is visible on the screen.
คุณสามารถจัดระเบียบกลุ่มการทดสอบในไฟล์เดียวและแยกชุดโปรแกรมทดสอบเหล่านี้ออกเป็นหลายไฟล์ได้ คุณสามารถเพิ่มกรอบการทดสอบที่จำเป็นต้องมีก่อนได้โดยเพิ่มรหัสลงในการทดสอบ แล้วอ้างอิงรหัสนั้นโดยใช้ prerequisiteTestCaseId
การใช้คอนโซล App Distribution
หรือจะสร้างและจัดการกรอบการทดสอบในคอนโซล Firebase ก็ได้ หากต้องการสร้างกรอบการทดสอบ ให้เปิดหน้า App Distribution ของคอนโซล Firebase แล้วทำตามขั้นตอนต่อไปนี้
- ในแท็บกรอบการทดสอบ ให้คลิกกรอบการทดสอบใหม่ หากไม่ต้องการสร้างกรอบการทดสอบของคุณเอง คุณสามารถแก้ไขหรือใช้ตัวอย่างกรอบการทดสอบที่มีให้ได้
- ในกล่องโต้ตอบเพิ่มกรอบการทดสอบ ให้ตั้งชื่อกรอบการทดสอบ ซึ่งใช้เพื่อระบุการทดสอบ แต่ Agent จะไม่สนใจ
- (ไม่บังคับ) เลือกกรอบการทดสอบที่จำเป็นต้องมีซึ่งมีขั้นตอนการตั้งค่าเพื่อเรียกใช้ก่อนการทดสอบหลัก หากการทดสอบข้อกำหนดเบื้องต้นไม่สำเร็จ ระบบจะทำเครื่องหมายการทดสอบทั้งหมดว่าไม่สำเร็จ ขั้นตอนและผลลัพธ์จากการทดสอบข้อกำหนดเบื้องต้นและการทดสอบหลักจะแสดงร่วมกันในผลการทดสอบ
- ลองแบ่งการทดสอบออกเป็นหลายขั้นตอนโดยคลิกปุ่มเพิ่มอีกขั้นตอน
- ระบุเป้าหมายสำหรับแต่ละขั้นตอนซึ่งอธิบายสิ่งที่เอเจนต์ App Testing ควรทำในขั้นตอนนั้น
- (ไม่บังคับ) เพิ่มคำแนะนำเพื่อให้ข้อมูลเพิ่มเติมที่จะช่วยให้เอเจนต์ App Testing เข้าใจและไปยังส่วนต่างๆ ของแอปในระหว่างขั้นตอนนั้น
- เพิ่มการยืนยันหน้าจอสุดท้ายเพื่อช่วยให้เอเจนต์ App Testing ระบุได้ว่าขั้นตอนเสร็จสมบูรณ์เมื่อใด การยืนยันนี้ควรอ้างอิงถึงสิ่งที่มองเห็นได้บนหน้าจอเท่านั้น
- คลิกบันทึกเมื่อปรับแต่งการทดสอบเสร็จแล้ว
ตัวอย่างกรอบการทดสอบ
ต่อไปนี้คือตัวอย่างวิธีสร้างกรอบการทดสอบโดยใช้เอเจนต์ App Testing
Test title |
การโหลดหน้าแรก |
เป้าหมาย |
โหลดหน้าแรก |
คำใบ้ |
ข้ามหน้าจอการเริ่มต้นใช้งาน ปิดป๊อปอัปทั้งหมด อย่าลงชื่อเข้าใช้ |
การยืนยันหน้าจอสุดท้าย |
หน้าแรกของแอปหลักจะปรากฏบนหน้าจอ รูปภาพทั้งหมดโหลดแล้ว และไม่มีข้อผิดพลาดแสดงขึ้น |
ทำการทดสอบ
วิธีเรียกใช้การทดสอบจะขึ้นอยู่กับวิธีสร้างและจัดการกรอบการทดสอบ หากคุณกำหนดกรอบการทดสอบโดยใช้ไฟล์ YAML คุณจะเรียกใช้การทดสอบเหล่านั้นโดยใช้ Firebase CLI หากสร้างกรอบการทดสอบในคอนโซล App Distribution คุณจะเรียกใช้กรอบการทดสอบจากคอนโซลหรือผ่านเครื่องมือ CLI ของ App Distribution อย่างใดอย่างหนึ่ง
การใช้ไฟล์ YAML
คุณสามารถเรียกใช้กรอบการทดสอบที่กำหนดไว้ในไฟล์ YAML โดยใช้ Firebase CLI
- ติดตั้งหรืออัปเดต Firebase CLI เป็นเวอร์ชันล่าสุด เราขอแนะนำให้ดาวน์โหลดไบนารีแบบสแตนด์อโลนสำหรับ CLI ที่เจาะจงสำหรับระบบปฏิบัติการของคุณ
- ลงชื่อเข้าใช้และทดสอบว่าคุณเข้าถึงโปรเจ็กต์ได้ โปรดทราบว่าหากใช้ Firebase CLI ในสภาพแวดล้อม CI คุณยังสามารถตรวจสอบสิทธิ์ด้วยบัญชีบริการหรือใช้ login:ci ได้ด้วย
เรียกใช้คำสั่ง
apptesting:executeเช่นfirebase apptesting:execute \ --app=1:1234567890:android:0a1b2c3d4e5f67890 \ --test-dir=./mytests \ ./app/build/outputs/apk/debug/app-debug.apk
| apptesting:execute [options] [/path/to/app/binary] | |
|---|---|
--app
|
ต้องระบุ: รหัสแอป Firebase ของแอป คุณสามารถดูรหัสแอปได้ในคอนโซล Firebase ในหน้าการตั้งค่าทั่วไป
|
--test-dir
|
เส้นทางไปยังไดเรกทอรีที่มีไฟล์ YAML ของกรอบการทดสอบ คำสั่งจะค้นหาซ้ำๆ ภายใต้ไดเรกทอรีนี้ ดังนั้นคุณจึงจัดระเบียบไฟล์เป็นไดเรกทอรีย่อยได้ (ไม่บังคับ) หากไม่ได้ตั้งค่า ระบบจะใช้ "./tests" โดยค่าเริ่มต้น |
--test-devices หรือ --test-devices-file
|
อุปกรณ์ที่จะทำการทดสอบ คุณสามารถระบุอุปกรณ์ทดสอบเป็นรายการข้อมูลจำเพาะของอุปกรณ์ที่คั่นด้วยเครื่องหมายเซมิโคลอน ดังนี้ --test-devices
"model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
หรือจะระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มีรายการข้อกำหนดเฉพาะของอุปกรณ์ที่คั่นด้วยเซมิโคลอนก็ได้ ดังนี้ --test-devices-file
"/path/to/test-devices.txt" คุณสามารถค้นหารุ่นอุปกรณ์ที่พร้อมใช้งานได้โดยใช้ gcloud CLI |
--test-username
|
ชื่อผู้ใช้สำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบ |
--test-password หรือ --test-password-file
|
รหัสผ่านสำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบ หรือจะระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มีรหัสผ่านก็ได้ โดยทำดังนี้ --test-password-file: "/path/to/test-password.txt"
|
--test-non-blocking
|
หากตั้งค่าไว้ คำสั่งจะเริ่มการทดสอบแล้วแสดงผลทันทีแทนที่จะรอให้การทดสอบเสร็จสมบูรณ์ หากต้องการดูผลการทดสอบ ให้ไปที่คอนโซล Firebase หากไม่ได้ตั้งค่าแฟล็กนี้ คำสั่งจะบล็อกจนกว่าการทดสอบจะเสร็จสมบูรณ์ และออกพร้อมรหัสความล้มเหลวหากการทดสอบใดๆ ล้มเหลว |
--results-bucket
|
บักเก็ต Google Cloud Storage (GCS) ที่กำหนดเองซึ่งใช้จัดเก็บผลการทดสอบ หากเว้นว่างไว้ ระบบจะใช้ที่เก็บข้อมูลเริ่มต้น โปรเจ็กต์ที่เปิดใช้การเรียกเก็บเงินต้องเป็นเจ้าของที่เก็บข้อมูล และการระบุที่เก็บข้อมูลจะส่งผลให้มีการเรียกเก็บเงินสำหรับพื้นที่เก็บข้อมูลที่ใช้ |
--test-file-pattern
|
รูปแบบนิพจน์ทั่วไป ระบบจะดำเนินการเฉพาะการทดสอบที่อยู่ในไฟล์ที่ตรงกับรูปแบบนี้เท่านั้น |
--test-name-pattern
|
รูปแบบนิพจน์ทั่วไป ระบบจะดำเนินการเฉพาะการทดสอบที่มีชื่อที่แสดงตรงกับรูปแบบนี้เท่านั้น |
/path/to/app/binary
|
ไม่บังคับ: เส้นทางไปยังไบนารีของแอป หากไม่ระบุ ตัวแทนจะใช้รุ่นล่าสุดที่อัปโหลดไปยัง App Distribution สำหรับแอปที่ระบุ |
การใช้คอนโซล App Distribution
หากต้องการเรียกใช้กรอบการทดสอบที่จัดเก็บไว้ใน App Distribution คุณสามารถใช้คอนโซล Firebase, Firebase CLI หรือปลั๊กอิน Gradle หรือ fastlane ของ App Distribution
นำเข้าและส่งออกกรอบการทดสอบด้วยไฟล์ YAML
การนำเข้ากรอบการทดสอบจากไฟล์ YAML จะมีประโยชน์เมื่อคุณต้องการจัดการกรอบการทดสอบนอกคอนโซล Firebase นอกจากนี้ การส่งออกกรอบการทดสอบยังเป็นประโยชน์สำหรับการย้ายกรอบการทดสอบระหว่างโปรเจ็กต์ด้วย คุณสามารถใช้ LLM เพื่อปรับแต่งกรอบการทดสอบที่มีอยู่หรือสร้างกรอบการทดสอบใหม่ได้ คุณสามารถนำเข้าและส่งออกกรอบการทดสอบจากหน้ากรอบการทดสอบในคอนโซล Firebase หรือใช้โปรแกรมโดยใช้ Firebase CLI ดูตัวอย่างกรอบการทดสอบ YAML ได้ที่สร้างกรอบการทดสอบ YAML
ดูผลการทดสอบ
คุณดูผลการทดสอบได้จากหน้ารุ่นในแท็บเอเจนต์ App Testing ของรุ่น ปุ่มดูรายละเอียดจะเปิดกล่องโต้ตอบผลการทดสอบและแสดงปัญหา ภาพหน้าจอของแอป และการดำเนินการที่ Gemini ทำในระหว่างการทดสอบ
หากการทดสอบมีการดำเนินการที่เล่นซ้ำ คุณจะดูการทดสอบที่ใช้ AI เป็นแนวทางแบบเดิมหรือล้างแคชได้
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับผลการทดสอบ ให้ใช้ตารางต่อไปนี้
| ไอคอน | ชื่อ | คำอธิบาย |
|---|---|---|
| spark | การดำเนินการโดย AI | ระบุว่าเอเจนต์ App Testing ใช้ Gemini เพื่อตัดสินใจดำเนินการหรือสิ้นสุดขั้นตอน |
| replay | การดำเนินการที่เล่นซ้ำ | ระบุว่าเอเจนต์ App Testing เล่นการดำเนินการซ้ำจากการทดสอบที่สำเร็จก่อนหน้านี้ |
| spark | การยืนยัน AI | ระบุว่าเอเจนต์ App Testing ใช้ Gemini เพื่อตรวจสอบการยืนยันหน้าจอสุดท้าย หลังจากเล่นการดำเนินการซ้ำจากการเรียกใช้การทดสอบเดียวกันที่สำเร็จก่อนหน้านี้ |
แก้ไขข้อบกพร่องของผลการทดสอบ
หากผลการทดสอบแตกต่างจากที่คาดไว้ คุณสามารถแก้ไขข้อบกพร่องของการทดสอบได้โดยใช้ปุ่มสลับแสดงมุมมองตัวแทนในส่วนดูรายละเอียดในหน้าผลการทดสอบ มุมมองเอเจนต์จะแสดงองค์ประกอบบนหน้าจอที่เอเจนต์ App Testing ตรวจพบเมื่อใช้ข้อมูลการช่วยเหลือพิเศษของแอป หากต้องการดูสิ่งที่ตัวแทนเห็นอย่างละเอียด คุณสามารถดาวน์โหลดข้อมูลดังกล่าวได้จากเมนูรายการเพิ่มเติม
นอกจากนี้ คุณยังใช้ปุ่มดูอาร์ติแฟกต์ในหน้าผลการทดสอบเพื่อดูวิดีโอ บันทึก และอาร์ติแฟกต์อื่นๆ ในระบบคลาวด์สำหรับผลการทดสอบได้ด้วย
ปัญหาและข้อจำกัดที่ทราบ
เวอร์ชันตัวอย่างของเอเจนต์ App Testing มีข้อจำกัดที่ทราบอยู่บางประการ ดังนี้
- การทดสอบที่ใช้ AI เป็นแนวทางมีระยะหมดเวลา 5 นาที หลังจากเริ่มการทดสอบแล้ว การทดสอบจะต้องสำเร็จภายในเวลาดังกล่าว ไม่เช่นนั้นการทดสอบจะสิ้นสุดก่อนเวลาและนับว่าเป็นการทดสอบที่ล้มเหลว
- เนื่องจากเอเจนต์ App Testing ใช้ Generative AI เพื่อทดสอบแอป จึงอาจดำเนินการที่แตกต่างกันในบางครั้งแม้ว่าจะยังคงทำตามวิธีการเดียวกันก็ตาม
- เอเจนต์ App Testing รองรับเฉพาะการดำเนินการต่อไปนี้ แตะ ป้อนข้อความ ปัดขึ้น/ลง/ซ้าย/ขวา กดค้าง ลากและวาง ย้อนกลับ และรอ
- เอเจนต์ App Testing มีปัญหาในการดำเนินการทดสอบที่มีเพียงขั้นตอนเดียวซึ่งต้องดำเนินการหลายอย่างจึงจะเสร็จสมบูรณ์ โดยจะทำงานได้ดีขึ้นเมื่อแบ่งงานที่ซับซ้อนออกเป็นขั้นตอนสั้นๆ หลายขั้นตอน
- บางครั้งเอเจนต์ App Testing จะไม่เลื่อนเพื่อแสดงองค์ประกอบอื่นๆ ที่อยู่นอกหน้าจอ กรณีนี้มักเกิดขึ้นเมื่อไม่มีสัญญาณบอกสถานะที่มองเห็นได้ว่าเลื่อนได้ วิธีแก้ปัญหาเฉพาะหน้าคือใช้ช่อง "hints" เพื่อแนะนำการเลื่อนได้
- บางครั้งเอเจนต์ App Testing อาจมีปัญหาในการนับ เช่น การดำเนินการตามจำนวนครั้งที่เจาะจง
- เอเจนต์ App Testing จะไปยังส่วนต่างๆ ของแอปไม่ได้หากเปิดใช้
FLAG_SECUREไว้ โดยจะเห็นเพียงหน้าจอว่างเปล่าแทนภาพหน้าจอของแอป
โควต้าการทดสอบ
ในระหว่างเวอร์ชันตัวอย่าง ระบบจะเสนอการทดสอบที่ใช้ AI เป็นแนวทางโดยไม่มีค่าใช้จ่ายภายในขีดจำกัดโควต้า ขีดจำกัดโควต้าเริ่มต้นคือ 200 การทดสอบต่อเดือนต่อโปรเจ็กต์ Firebase
โปรดทราบว่าหากคุณเลือกที่จะเรียกใช้กรอบการทดสอบหลายรายการ หรือเรียกใช้กรอบการทดสอบเดียวกันในอุปกรณ์หลายเครื่อง ระบบจะนับเป็นการทดสอบหลายรายการ เช่น หากคุณเรียกใช้กรอบการทดสอบ 2 รายการในอุปกรณ์ 2 เครื่อง ระบบจะนับเป็นการทดสอบทั้งหมด 4 รายการ
หากต้องการเพิ่มโควต้าให้สูงกว่าขีดจำกัดเริ่มต้น โปรดติดต่อทีมสนับสนุนของ Firebase พร้อมแจ้งกรณีการใช้งานของคุณ