เอเจนต์ App Testing คือเอเจนต์การสร้าง การจัดการ และการดำเนินการกรณีทดสอบที่ขับเคลื่อนโดย Gemini ใน Firebase คุณกำหนดเป้าหมายการทดสอบในภาษาธรรมชาติ และเอเจนต์จะใช้ 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คอนโซล แล้วทำตามขั้นตอนต่อไปนี้
- ในแท็บกรณีทดสอบ ให้คลิกกรณีทดสอบใหม่ หากไม่ต้องการ สร้างกรณีทดสอบของคุณเอง คุณสามารถแก้ไขหรือใช้กรณีทดสอบตัวอย่างที่ให้ไว้ได้
- ในกล่องโต้ตอบเพิ่มกรณีทดสอบ ให้ตั้งชื่อกรณีทดสอบ ใช้เพื่อ ระบุการทดสอบ แต่เอเจนต์จะไม่สนใจ
- (ไม่บังคับ) เลือกกรณีทดสอบข้อกำหนดเบื้องต้นที่มีขั้นตอนการตั้งค่าเพื่อ เรียกใช้ก่อนการทดสอบหลัก หากการทดสอบข้อกำหนดเบื้องต้นไม่สำเร็จ ระบบจะทำเครื่องหมายการทดสอบทั้งหมด ว่าไม่สำเร็จ ขั้นตอนและผลลัพธ์จากการทดสอบข้อกำหนดเบื้องต้นและการทดสอบหลักจะแสดงร่วมกันในผลการทดสอบ
- ลองแบ่งการทดสอบออกเป็นหลายขั้นตอนโดยคลิกปุ่มเพิ่ม อีกขั้นตอน
- กำหนดเป้าหมายให้กับแต่ละขั้นตอนซึ่งอธิบายสิ่งที่เอเจนต์ 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
|
Bucket ของ Google Cloud Storage (GCS) ที่กำหนดเองซึ่งใช้จัดเก็บผลการทดสอบ หากเว้นว่างไว้ ระบบจะใช้ที่เก็บข้อมูลเริ่มต้น Bucket ต้อง เป็นของโปรเจ็กต์ที่เปิดใช้การเรียกเก็บเงิน และการระบุ Bucket จะทำให้มีการเรียกเก็บเงินสำหรับพื้นที่เก็บข้อมูลที่ใช้ |
--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 มีปัญหาในการดำเนินการทดสอบที่มีเพียงขั้นตอนเดียว ซึ่งต้องดำเนินการหลายอย่างจึงจะสำเร็จ โดยจะทำงานได้ดีขึ้นเมื่อแบ่งงานที่ซับซ้อน ออกเป็นขั้นตอนย่อยๆ หลายขั้นตอน
- บางครั้ง Agent การทดสอบแอปจะไม่เลื่อนเพื่อแสดงองค์ประกอบอื่นๆ ที่อยู่นอกหน้าจอ ซึ่งมักเกิดขึ้นเมื่อไม่มีข้อบ่งชี้ที่มองเห็นได้ว่าเลื่อนได้ วิธีแก้ปัญหาชั่วคราวคือใช้ช่อง "คำแนะนำ" เพื่อแนะนำ การเลื่อน
- บางครั้งเอเจนต์ App Testing อาจนับได้ไม่ถูกต้อง เช่น การดำเนินการจำนวนครั้งที่เฉพาะเจาะจง
- เอเจนต์ App Testing จะไปยังส่วนต่างๆ ของแอปไม่ได้หากเปิดใช้
FLAG_SECUREแทนที่จะเห็นภาพหน้าจอของแอปของคุณ ระบบจะเห็นเพียงหน้าจอว่างเปล่า
โควต้าการทดสอบ
ในช่วงเวอร์ชันตัวอย่าง เราจะเสนอการทดสอบที่ AI แนะนำโดยไม่มีค่าใช้จ่ายภายใน โควต้าที่จำกัด ขีดจำกัดโควต้าเริ่มต้นคือ 200 การทดสอบต่อเดือนต่อโปรเจ็กต์ Firebase
โปรดทราบว่าหากคุณเลือกที่จะเรียกใช้กรณีทดสอบหลายรายการ หรือเรียกใช้กรณีทดสอบเดียวกัน ในอุปกรณ์หลายเครื่อง ระบบจะนับเป็นการทดสอบหลายรายการ เช่น หากคุณเรียกใช้กรณีทดสอบ 2 รายการในอุปกรณ์ 2 เครื่อง ระบบจะนับเป็นการทดสอบทั้งหมด 4 รายการ
หากต้องการเพิ่มโควต้าให้สูงกว่าขีดจํากัดเริ่มต้น โปรดติดต่อทีมสนับสนุนของ Firebase พร้อมแจ้งกรณีการใช้งานของคุณ