ตัวแทนการทดสอบแอป (Android)

เอเจนต์การทดสอบแอปคือเอเจนต์การสร้าง การจัดการ และการดำเนินการกรณีทดสอบ ที่ขับเคลื่อนโดย Gemini ใน Firebase คุณกำหนดเป้าหมายการทดสอบในภาษาที่เป็นธรรมชาติ และเอเจนต์จะใช้ AI เพื่อทำความเข้าใจและไปยังส่วนต่างๆ ของแอป จำลองการโต้ตอบของผู้ใช้ และแสดงผลการทดสอบโดยละเอียด

วิธีที่ตัวแทนการทดสอบแอปใช้ข้อมูลของคุณ

เอเจนต์การทดสอบแอปให้บริการโดย Gemini ใน Firebase และอยู่ภายใต้ ข้อกำหนดเดียวกัน ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Gemini ใน Firebase ใช้ข้อมูลของคุณได้ที่วิธีที่ Gemini ใน Firebase ใช้ข้อมูลของคุณ

ก่อนเริ่มต้น

ลงทะเบียนแอปกับ Firebase หากยังไม่ได้ลงทะเบียน

หากไม่ได้ใช้ผลิตภัณฑ์อื่นๆ ของ Firebase คุณจะต้องสร้างโปรเจ็กต์และลงทะเบียนแอปเท่านั้น โดยไม่ต้องเพิ่ม SDK ใดๆ ลงในแอป อย่างไรก็ตาม หากตัดสินใจใช้ผลิตภัณฑ์เพิ่มเติมในอนาคต โปรดทําตามขั้นตอนทั้งหมดในเพิ่ม Firebase โดยใช้Firebaseคอนโซล

สร้างกรณีทดสอบ

หากต้องการเรียกใช้การทดสอบที่ AI แนะนำ เอเจนต์การทดสอบแอปจะใช้กรณีทดสอบในภาษาที่เป็นธรรมชาติ เพื่อทำการทดสอบกับแอป

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

  1. ในแท็บกรณีทดสอบ ให้คลิกกรณีทดสอบใหม่ หากไม่ต้องการสร้างกรณีทดสอบด้วยตนเอง คุณสามารถแก้ไขหรือใช้กรณีทดสอบตัวอย่างที่ให้ไว้ได้
  2. ในกล่องโต้ตอบเพิ่มกรณีทดสอบ ให้ตั้งชื่อกรณีทดสอบ ใช้เพื่อ ระบุการทดสอบ แต่เอเจนต์จะไม่สนใจ
  3. (ไม่บังคับ) เลือกกรณีทดสอบข้อกำหนดเบื้องต้นที่มีขั้นตอนการตั้งค่าเพื่อ เรียกใช้ก่อนการทดสอบหลัก หากการทดสอบข้อกำหนดเบื้องต้นไม่สำเร็จ ระบบจะทำเครื่องหมายว่าการทดสอบทั้งหมด ไม่สำเร็จ ขั้นตอนและผลลัพธ์จากการทดสอบข้อกำหนดเบื้องต้นและการทดสอบหลักจะแสดงร่วมกันในผลการทดสอบ
  4. ลองแบ่งการทดสอบออกเป็นหลายขั้นตอนโดยคลิกปุ่มเพิ่ม อีกขั้นตอน
  5. กำหนดเป้าหมายสำหรับแต่ละขั้นตอนซึ่งอธิบายสิ่งที่ตัวแทนการทดสอบแอปควรทำในขั้นตอนนั้น
  6. (ไม่บังคับ) เพิ่มคำแนะนำเพื่อให้ข้อมูลเพิ่มเติมที่จะช่วยให้ตัวแทน App Testing เข้าใจและไปยังส่วนต่างๆ ของแอปได้ในขั้นตอนนั้น
  7. เพิ่มการยืนยันหน้าจอสุดท้ายเพื่อช่วยให้ตัวแทนการทดสอบแอปทราบเมื่อ ขั้นตอนเสร็จสมบูรณ์แล้ว การยืนยันนี้ควรอ้างอิงเฉพาะสิ่งที่มองเห็นบนหน้าจอเท่านั้น
  8. คลิกบันทึกเมื่อปรับแต่งการทดสอบเสร็จแล้ว

ตัวอย่างกรณีทดสอบ

ต่อไปนี้เป็นตัวอย่างวิธีสร้างกรณีทดสอบโดยใช้เอเจนต์การทดสอบแอป

Test title

การโหลดหน้าแรก

เป้าหมาย

โหลดหน้าแรก

คำใบ้

ข้ามหน้าจอการเริ่มต้นใช้งาน ปิดป๊อปอัป ไม่ต้องลงชื่อเข้าใช้

การยืนยันหน้าจอสุดท้าย

หน้าแรกของแอปหลักปรากฏบนหน้าจอ รูปภาพทั้งหมดโหลดแล้ว และไม่มีข้อผิดพลาดแสดง

ทำการทดสอบ

วิธีเรียกใช้การทดสอบจะขึ้นอยู่กับวิธีสร้างและจัดการกรณีทดสอบ หาก คุณกำหนดกรณีทดสอบโดยใช้ไฟล์ YAML คุณจะเรียกใช้การทดสอบเหล่านั้นโดยใช้ Firebase CLI หากสร้างกรณีทดสอบในคอนโซล App Distribution คุณจะเรียกใช้กรณีทดสอบจากคอนโซลหรือผ่านเครื่องมือ CLI ของ App Distribution อย่างใดอย่างหนึ่ง

การใช้ไฟล์ YAML

คุณสามารถเรียกใช้กรณีทดสอบที่กำหนดไว้ในไฟล์ YAML ได้โดยใช้ Firebase CLI

  1. ติดตั้งหรืออัปเดตเป็น Firebase CLI เวอร์ชันล่าสุด เราขอแนะนำให้ดาวน์โหลดไบนารีแบบสแตนด์อโลนสำหรับ CLI ที่เฉพาะเจาะจงกับระบบปฏิบัติการของคุณ
  2. ลงชื่อเข้าใช้และทดสอบว่าคุณเข้าถึงโปรเจ็กต์ได้ โปรดทราบว่าหากคุณใช้ Firebase CLI ในสภาพแวดล้อม CI คุณจะ ตรวจสอบสิทธิ์ด้วยบัญชี บริการ หรือใช้ login:ci ก็ได้
  3. เรียกใช้คำสั่ง 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คอนโซลในหน้าการตั้งค่าทั่วไป

--app 1:1234567890:android:0a1b2c3d4e5f67890

--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-non-blocking

หากตั้งค่าไว้ คำสั่งจะเริ่มการทดสอบแล้วกลับทันที แทนที่จะรอให้การทดสอบเสร็จสมบูรณ์

--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

ดูผลการทดสอบ

คุณดูผลการทดสอบได้จากหน้ารุ่นในแท็บตัวแทนการทดสอบแอปของรุ่น ปุ่มดูรายละเอียดจะเปิดกล่องโต้ตอบผลการทดสอบและแสดงปัญหา ภาพหน้าจอของแอป และ การดำเนินการที่ Gemini ทำระหว่างการทดสอบ

หากการทดสอบมีการดำเนินการที่เล่นซ้ำ คุณจะดูการทดสอบที่ AI แนะนำต้นฉบับ หรือล้างแคชได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับผลการทดสอบได้ในตารางต่อไปนี้

ไอคอน ชื่อ คำอธิบาย
spark การดำเนินการโดย AI ระบุว่าเอเจนต์การทดสอบแอปใช้ Gemini เพื่อตัดสินใจดำเนินการหรือสิ้นสุดขั้นตอน
replay การดำเนินการที่เล่นซ้ำ ระบุว่าตัวแทนการทดสอบแอปได้เล่นซ้ำการดำเนินการจากการทดสอบที่สำเร็จก่อนหน้านี้
spark การยืนยัน AI ระบุว่าเอเจนต์การทดสอบแอปใช้ Gemini เพื่อตรวจสอบการยืนยันหน้าจอสุดท้าย หลังจากเล่นซ้ำการดำเนินการจากการทดสอบเดียวกันที่ทำงานสำเร็จก่อนหน้านี้

แก้ไขข้อบกพร่องของผลการทดสอบ

หากผลการทดสอบแตกต่างจากที่คาดไว้ คุณสามารถแก้ไขข้อบกพร่องของการทดสอบได้โดยใช้ปุ่มเปิด/ปิดแสดงมุมมองของตัวแทนในส่วนดูรายละเอียดในหน้าผลการทดสอบ มุมมองตัวแทนจะแสดงองค์ประกอบบนหน้าจอที่ตัวแทน App Testing ตรวจพบเมื่อใช้ข้อมูลการช่วยเหลือพิเศษของแอป หากต้องการดูสิ่งที่ตัวแทนเห็นอย่างละเอียด คุณสามารถดาวน์โหลดข้อมูลดังกล่าวจากเมนูการดำเนินการเพิ่มเติม

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

ปัญหาและข้อจำกัดที่ทราบ

ตัวอย่างเอเจนต์การทดสอบแอปมีข้อจำกัดที่ทราบกันดังนี้

  • เนื่องจากเอเจนต์การทดสอบแอปใช้ Generative AI เพื่อทดสอบแอปของคุณ จึงอาจ บางครั้งดำเนินการแตกต่างกันในขณะที่ยังคงทำตามคำสั่งเดียวกัน
  • เอเจนต์การทดสอบแอปจะรองรับเฉพาะการดำเนินการต่อไปนี้ แตะ ป้อนข้อความ ปัดขึ้น/ลง/ซ้าย/ขวา กดค้าง ลากและวาง ย้อนกลับ และรอ
  • ตัวแทนการทดสอบแอปมีปัญหาในการดำเนินการทดสอบที่มีเพียงขั้นตอนเดียว ซึ่งต้องดำเนินการหลายอย่างจึงจะสำเร็จ โดยจะทำงานได้ดีขึ้นเมื่อแบ่งงานที่ซับซ้อน ออกเป็นขั้นตอนย่อยๆ หลายขั้นตอน
  • บางครั้งเอเจนต์การทดสอบแอปจะไม่เลื่อนเพื่อแสดงองค์ประกอบอื่นๆ ที่อยู่นอกหน้าจอ ซึ่งมักเกิดขึ้นเมื่อไม่มีข้อบ่งชี้ที่มองเห็นได้ว่าเลื่อนได้ วิธีแก้ปัญหาชั่วคราวคือใช้ช่อง "คำแนะนำ" เพื่อแนะนำ การเลื่อน
  • บางครั้ง Agent การทดสอบแอปอาจมีปัญหาในการนับ เช่น การดำเนินการ จำนวนครั้งที่เฉพาะเจาะจง
  • ตัวแทนการทดสอบแอปจะไม่สามารถไปยังส่วนต่างๆ ของแอปได้หากเปิดใช้ FLAG_SECURE แทนที่จะเห็นภาพหน้าจอของแอป ระบบจะเห็นเพียงหน้าจอว่าง เปล่า

โควต้าการทดสอบ

ในช่วงเวอร์ชันตัวอย่าง เราจะเสนอการทดสอบที่ AI แนะนำโดยไม่มีค่าใช้จ่ายภายใน โควต้าที่จำกัด ขีดจำกัดโควต้าเริ่มต้นคือ 200 การทดสอบต่อเดือนต่อโปรเจ็กต์ Firebase

โปรดทราบว่าหากคุณเลือกที่จะเรียกใช้กรณีทดสอบหลายรายการ หรือเรียกใช้กรณีทดสอบเดียวกัน ในอุปกรณ์หลายเครื่อง ระบบจะนับเป็นการทดสอบหลายรายการ เช่น หากคุณเรียกใช้กรณีทดสอบ 2 รายการในอุปกรณ์ 2 เครื่อง ระบบจะนับเป็นการทดสอบทั้งหมด 4 รายการ

หากต้องการเพิ่มโควต้าให้สูงกว่าขีดจำกัดเริ่มต้น โปรดติดต่อทีมสนับสนุน Firebase พร้อมแจ้งกรณีการใช้งานของคุณ