สร้างการทดสอบ UI ด้วย Espresso Test Recorder

เครื่องมือ Espresso Test Recorder ช่วยให้คุณสร้างการทดสอบ UI สำหรับแอปได้โดยไม่ต้องเขียนโค้ดทดสอบ การบันทึกสถานการณ์การทดสอบจะช่วยให้คุณบันทึกการโต้ตอบกับอุปกรณ์และเพิ่ม การยืนยันเพื่อตรวจสอบองค์ประกอบ UI ในสแนปชอตที่เฉพาะเจาะจงของแอปได้ จากนั้น Espresso Test Recorder จะ ใช้การบันทึกที่บันทึกไว้และสร้างการทดสอบ UI ที่เกี่ยวข้องโดยอัตโนมัติ ซึ่งคุณสามารถเรียกใช้เพื่อ ทดสอบแอปได้

Espresso Test Recorder เขียนการทดสอบโดยอิงตามเฟรมเวิร์กการทดสอบ Espresso ซึ่งเป็น API ใน AndroidX Test Espresso API สนับสนุนให้คุณสร้างการทดสอบ UI ที่กระชับและ เชื่อถือได้ตามการดำเนินการของผู้ใช้ การระบุความคาดหวัง การโต้ตอบ และการยืนยันโดยไม่ต้องเข้าถึงกิจกรรมและ มุมมองของแอปพื้นฐานโดยตรง โครงสร้างนี้จะป้องกันไม่ให้การทดสอบไม่เสถียรและเพิ่มความเร็วในการเรียกใช้การทดสอบ

ปิดภาพเคลื่อนไหวในอุปกรณ์ทดสอบ

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

บันทึกการทดสอบ Espresso

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

ส่วนนี้จะอธิบายวิธีสร้างคอมโพเนนต์การทดสอบทั้ง 2 รายการนี้โดยใช้ Espresso Test Recorder รวมถึงวิธีบันทึกการบันทึกที่เสร็จสมบูรณ์เพื่อสร้างการทดสอบ

บันทึกการโต้ตอบ UI

หากต้องการเริ่มบันทึกการทดสอบด้วย Espresso Test Recorder ให้ทำดังนี้

  1. คลิกเรียกใช้> บันทึกการทดสอบ Espresso
  2. ในหน้าต่างเลือกเป้าหมายการติดตั้งใช้งาน ให้เลือกอุปกรณ์ ที่คุณต้องการบันทึกการทดสอบ หากจำเป็น ให้สร้างอุปกรณ์เสมือน Android ใหม่ คลิกตกลง
  3. Espresso Test Recorder จะทริกเกอร์การสร้างโปรเจ็กต์ และแอปต้อง ติดตั้งและเปิดใช้ก่อนที่ Espresso Test Recorder จะอนุญาตให้คุณโต้ตอบกับแอป หน้าต่างบันทึกการทดสอบจะปรากฏขึ้นหลังจากที่แอปเปิดตัว และ เนื่องจากคุณยังไม่ได้โต้ตอบกับอุปกรณ์ แผงหลักจึงแสดงข้อความว่า "ยังไม่มี การบันทึกเหตุการณ์" โต้ตอบกับอุปกรณ์เพื่อเริ่มบันทึกเหตุการณ์ เช่น การแตะและการพิมพ์

หมายเหตุ: ก่อนที่จะเริ่มบันทึกการโต้ตอบ คุณอาจเห็น กล่องโต้ตอบในอุปกรณ์ที่ระบุว่า "รอดีบักเกอร์" หรือ "แนบดีบักเกอร์" Espresso Test Recorder ใช้โปรแกรมแก้ไขข้อบกพร่องเพื่อบันทึกเหตุการณ์ UI เมื่อดีบักเกอร์แนบแล้ว กล่องโต้ตอบจะปิดโดยอัตโนมัติ โปรดอย่ากดปิดแอป

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

รูปที่ 1 หน้าต่างบันทึกการทดสอบพร้อม การโต้ตอบ UI ที่บันทึกไว้

เพิ่มการยืนยันเพื่อตรวจสอบองค์ประกอบ UI

การยืนยันจะตรวจสอบการมีอยู่หรือเนื้อหาขององค์ประกอบ View ผ่าน 3 ประเภทหลักๆ ดังนี้

  • ข้อความเป็น: ตรวจสอบเนื้อหาข้อความขององค์ประกอบมุมมองที่เลือก
  • exists: ตรวจสอบว่าองค์ประกอบ View อยู่ในลำดับชั้น View ปัจจุบันที่มองเห็นได้บนหน้าจอ
  • ไม่มี: ตรวจสอบว่าองค์ประกอบ View ไม่มีอยู่ในลำดับชั้น View ปัจจุบัน

หากต้องการเพิ่มการยืนยันในการทดสอบ ให้ทำดังนี้

  1. คลิกเพิ่มการยืนยัน กล่องโต้ตอบการจับภาพหน้าจอ จะปรากฏขึ้นขณะที่ Espresso รับลำดับชั้น UI และข้อมูลอื่นๆ เกี่ยวกับสถานะแอปปัจจุบัน กล่องโต้ตอบจะปิดโดยอัตโนมัติเมื่อ Espresso จับภาพหน้าจอแล้ว
  2. เลย์เอาต์ของหน้าจอปัจจุบันจะปรากฏในแผงทางด้านขวาของหน้าต่างบันทึกการทดสอบ หากต้องการเลือกองค์ประกอบ View ที่จะสร้างการยืนยัน ให้คลิกองค์ประกอบในภาพหน้าจอ หรือใช้เมนูแบบเลื่อนลงแรกในช่องแก้ไขการยืนยันที่ ด้านล่างของหน้าต่าง ระบบจะไฮไลต์ออบเจ็กต์ View ที่เลือกในกรอบสีแดง
  3. เลือกการยืนยันที่ต้องการใช้จากเมนูแบบเลื่อนลงที่ 2 ในช่องแก้ไขการยืนยัน Espresso จะป้อนข้อมูลลงในเมนูด้วยการยืนยันที่ถูกต้อง สำหรับองค์ประกอบ View ที่เลือก
    • หากเลือกการยืนยัน "ข้อความคือ" Espresso จะแทรกข้อความที่อยู่ภายในองค์ประกอบ View ที่เลือกในปัจจุบันโดยอัตโนมัติ คุณแก้ไขข้อความให้ตรงกับ การยืนยันที่ต้องการได้โดยใช้ช่องข้อความในกล่องแก้ไขการยืนยัน
  4. คลิกบันทึกและเพิ่มอีกเพื่อสร้างการยืนยันอื่น หรือ คลิกบันทึกการยืนยันเพื่อปิดแผงการยืนยัน

ภาพหน้าจอในรูปที่ 2 แสดงการสร้างการยืนยัน "ข้อความคือ" เพื่อ ยืนยันว่าชื่อของโน้ตคือ "Happy Testing!"

รูปที่ 2 ช่องแก้ไขการยืนยันหลังจากเลือก องค์ประกอบมุมมอง (เป็นสีแดง)

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

บันทึกการบันทึก

เมื่อโต้ตอบกับแอปและเพิ่มการยืนยันเสร็จแล้ว ให้ทำตามขั้นตอนต่อไปนี้เพื่อบันทึก การบันทึกและสร้างการทดสอบ Espresso

  1. คลิกบันทึกเสร็จสิ้น หน้าต่างเลือกชื่อชั้นเรียนทดสอบ สำหรับการทดสอบจะปรากฏขึ้น
  2. Espresso Test Recorder จะตั้งชื่อที่ไม่ซ้ำให้กับการทดสอบภายในแพ็กเกจ โดยอิงตามชื่อของกิจกรรมที่เปิด ใช้ช่องข้อความชื่อคลาสทดสอบหากต้องการเปลี่ยนชื่อที่แนะนำ คลิกบันทึก
    • หากคุณยังไม่ได้เพิ่มการขึ้นต่อของ Espresso ลงในแอป กล่องโต้ตอบการขึ้นต่อของ Espresso ขาดหายไปจะปรากฏขึ้นเมื่อคุณพยายาม บันทึกการทดสอบ คลิกใช่เพื่อเพิ่มการอ้างอิงลงในไฟล์ build.gradle โดยอัตโนมัติ
  3. ไฟล์จะเปิดขึ้นโดยอัตโนมัติหลังจากที่ Espresso Test Recorder สร้างไฟล์ และ Android Studio จะแสดงคลาสการทดสอบเป็นรายการที่เลือกในหน้าต่างโปรเจ็กต์ ของ IDE
    • ตำแหน่งที่การทดสอบบันทึกจะขึ้นอยู่กับตำแหน่งของรูทการทดสอบ เครื่องมือ รวมถึงชื่อแพ็กเกจของกิจกรรมที่เปิด ตัวอย่างเช่น การทดสอบสำหรับแอปทดสอบโน้ตจะ บันทึกในโฟลเดอร์ src > androidTest > java > com.example.username.appname ของ โมดูลแอปที่คุณบันทึกการทดสอบ

เรียกใช้การทดสอบ Espresso ในเครื่อง

หากต้องการเรียกใช้การทดสอบ Espresso ให้ใช้หน้าต่างโปรเจ็กต์ ทางด้านซ้ายของ IDE ของ Android Studio

  1. เปิดโฟลเดอร์โมดูลแอปที่ต้องการ แล้วไปที่การทดสอบที่ต้องการเรียกใช้ ตำแหน่งของการทดสอบจะขึ้นอยู่กับตำแหน่งของรูทการทดสอบ เครื่องมือและชื่อแพ็กเกจของกิจกรรมที่เปิด ตัวอย่างต่อไปนี้แสดงให้เห็นว่าการทดสอบจะบันทึกไว้ที่ใดสำหรับแอปทดสอบโน้ต
    • หากคุณใช้มุมมอง Androidภายในหน้าต่าง ให้ไปที่ java > com.example.username.appname (androidTest)
    • หากคุณใช้มุมมองโปรเจ็กต์ภายในหน้าต่าง ให้ไปที่ src > androidTest > java > com.example.username.appname ภายใน โฟลเดอร์โมดูล
  2. คลิกขวาที่การทดสอบ แล้วคลิกเรียกใช้ "testName"
    • หรือจะเปิดไฟล์ทดสอบแล้วคลิกขวาที่คลาสหรือเมธอดทดสอบที่สร้างขึ้นก็ได้ อ่านเพิ่มเติมเกี่ยวกับวิธีทำการทดสอบในหน้าทดสอบแอป
  3. ในหน้าต่างเลือกเป้าหมายการติดตั้งใช้งาน ให้เลือกอุปกรณ์ ที่คุณต้องการเรียกใช้การทดสอบ หากจำเป็น ให้สร้างอุปกรณ์เสมือน Android ใหม่ คลิกตกลง

ตรวจสอบความคืบหน้าของการทดสอบในหน้าต่างเรียกใช้ที่ด้านล่างของ IDE Android Studio จะเรียกใช้การสร้างโปรเจ็กต์แบบเต็มและเปิดแท็บที่มีชื่อการทดสอบในหน้าต่างเรียกใช้ ดังที่แสดงในรูปที่ 3 คุณสามารถตรวจสอบว่าการทดสอบ ผ่านหรือไม่ผ่านในแท็บนี้ รวมถึงระยะเวลาที่ใช้ในการทดสอบ เมื่อการทดสอบเสร็จสิ้น แท็บจะบันทึกว่า "การทดสอบทำงานจนเสร็จสมบูรณ์"

รูปที่ 3 ตัวอย่างเอาต์พุตในหน้าต่างเรียกใช้ หลังจากเรียกใช้การทดสอบ Espresso ในเครื่อง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเขียนการกำหนดค่าการทดสอบได้ที่ส่วน "การกำหนดค่าการทดสอบสำหรับ คลาสหรือเมธอด" ในสร้างและแก้ไข การกำหนดค่าการเรียกใช้/การแก้ไขข้อบกพร่อง

เรียกใช้การทดสอบ Espresso ด้วย Firebase Test Lab สำหรับ Android

คุณสามารถใช้การทดสอบที่สร้างโดย Espresso Test Recorder กับ Firebase Test Lab เพื่อทดสอบ แอปในระบบคลาวด์ในการกำหนดค่าอุปกรณ์หลายร้อยแบบ ไม่มีค่าใช้จ่าย ในการทดสอบแอปด้วย Test Lab ภายใน โควต้าฟรีรายวันในแพ็กเกจ Spark หากต้องการเรียกใช้การทดสอบ Espresso ด้วย Firebase Test Lab ให้ สร้างโปรเจ็กต์ Firebase สำหรับแอปของคุณ แล้วทำตามวิธีการเพื่อ เรียกใช้การทดสอบด้วย Firebase Test Lab จาก Android Studio

รูปที่ 4 เอาต์พุตตัวอย่างในหน้าต่างเรียกใช้ หลังจากทำการทดสอบด้วย Firebase Test Lab ในอุปกรณ์หลายเครื่อง