เครื่องมือ Espresso Test Recorder ช่วยให้คุณสร้างการทดสอบ UI สำหรับแอปได้โดยไม่ต้องเขียนโค้ดทดสอบ การบันทึกสถานการณ์การทดสอบช่วยให้คุณบันทึกการโต้ตอบกับอุปกรณ์และเพิ่ม การยืนยันเพื่อตรวจสอบองค์ประกอบ UI ในสแนปชอตที่เฉพาะเจาะจงของแอปได้ จากนั้น Espresso Test Recorder จะ ใช้การบันทึกที่บันทึกไว้และสร้างการทดสอบ UI ที่เกี่ยวข้องโดยอัตโนมัติ ซึ่งคุณสามารถเรียกใช้เพื่อ ทดสอบแอปได้
Espresso Test Recorder เขียนการทดสอบโดยอิงตามเฟรมเวิร์กการทดสอบ Espresso ซึ่งเป็น API ใน AndroidX Test Espresso API สนับสนุนให้คุณสร้างการทดสอบ UI ที่กระชับและ เชื่อถือได้ตามการดำเนินการของผู้ใช้ การระบุความคาดหวัง การโต้ตอบ และการยืนยันโดยไม่ต้องเข้าถึงกิจกรรมและ มุมมองของแอปพื้นฐานโดยตรง โครงสร้างนี้จะป้องกันการทดสอบที่ไม่เสถียรและเพิ่มความเร็วในการทดสอบให้เหมาะสม
ปิดภาพเคลื่อนไหวในอุปกรณ์ทดสอบ
ก่อนใช้ Espresso Test Recorder ให้ตรวจสอบว่าคุณได้ปิดภาพเคลื่อนไหวในอุปกรณ์ทดสอบแล้วเพื่อ ป้องกันผลลัพธ์ที่ไม่คาดคิด ทำตามวิธีการตั้งค่า Espresso แต่โปรดทราบว่าคุณไม่จำเป็นต้องตั้งค่าการอ้างอิงการขึ้นต่อกันด้วยตนเองไปยัง ไลบรารี Espresso เนื่องจากเครื่องมือบันทึกการทดสอบจะดำเนินการนี้โดยอัตโนมัติเมื่อคุณบันทึก คุณต้องทำตามขั้นตอนเหล่านี้เพียงครั้งเดียวสำหรับโปรเจ็กต์ที่ต้องการ
บันทึกการทดสอบ Espresso
การทดสอบ Espresso ประกอบด้วยคอมโพเนนต์หลัก 2 อย่าง ได้แก่ การโต้ตอบ UI และการยืนยันในองค์ประกอบ View การโต้ตอบ UI รวมถึงการแตะและการพิมพ์ที่ผู้ใช้อาจใช้เพื่อโต้ตอบกับแอปของคุณ การยืนยันจะตรวจสอบการมีอยู่หรือเนื้อหาขององค์ประกอบภาพบนหน้าจอ เช่น การทดสอบ Espresso สำหรับแอปการทดสอบโน้ตอาจรวมถึงการโต้ตอบ UI สำหรับการคลิกปุ่มและการเขียนโน้ตใหม่ แต่จะใช้ การยืนยันเพื่อตรวจสอบการมีอยู่ของปุ่มและเนื้อหาของโน้ต
ส่วนนี้จะอธิบายวิธีสร้างคอมโพเนนต์การทดสอบทั้ง 2 รายการนี้โดยใช้ Espresso Test Recorder รวมถึงวิธีบันทึกการบันทึกที่เสร็จสมบูรณ์เพื่อสร้างการทดสอบ
บันทึกการโต้ตอบ UI
หากต้องการเริ่มบันทึกการทดสอบด้วย Espresso Test Recorder ให้ทำดังนี้
- คลิกเรียกใช้> บันทึกการทดสอบ Espresso
- ในหน้าต่างเลือกเป้าหมายการติดตั้งใช้งาน ให้เลือกอุปกรณ์ ที่คุณต้องการบันทึกการทดสอบ หากจำเป็น ให้สร้างอุปกรณ์เสมือน Android ใหม่ คลิก OK
- Espresso Test Recorder จะทริกเกอร์การสร้างโปรเจ็กต์ และแอปต้อง ติดตั้งและเปิดใช้ก่อนที่ Espresso Test Recorder จะอนุญาตให้คุณโต้ตอบกับแอป หน้าต่างบันทึกการทดสอบจะปรากฏขึ้นหลังจากที่แอปเปิดขึ้น และเนื่องจากคุณยังไม่ได้โต้ตอบกับอุปกรณ์ แผงหลักจึงแสดงข้อความว่า "ยังไม่มีการบันทึกเหตุการณ์" โต้ตอบกับอุปกรณ์เพื่อเริ่มบันทึกเหตุการณ์ เช่น การแตะและการพิมพ์
หมายเหตุ: ก่อนที่จะเริ่มบันทึกการโต้ตอบ คุณอาจเห็น กล่องโต้ตอบในอุปกรณ์ที่ระบุว่า "รอดีบักเกอร์" หรือ "แนบดีบักเกอร์" Espresso Test Recorder ใช้โปรแกรมแก้ไขข้อบกพร่องเพื่อบันทึกเหตุการณ์ UI เมื่อดีบักเกอร์แนบแล้ว กล่องโต้ตอบจะปิดโดยอัตโนมัติ โปรดอย่ากดปิดแอป
การโต้ตอบที่บันทึกไว้จะปรากฏในแผงหลักในหน้าต่างบันทึกการทดสอบ ดังที่แสดงในรูปที่ 1 ด้านล่าง เมื่อคุณเรียกใช้การทดสอบ การทดสอบ Espresso จะ พยายามดำเนินการเหล่านี้ตามลำดับเดียวกัน
รูปที่ 1 หน้าต่างบันทึกการทดสอบพร้อม การโต้ตอบ UI ที่บันทึกไว้
เพิ่มข้อความยืนยันเพื่อยืนยันองค์ประกอบ UI
การยืนยันจะตรวจสอบการมีอยู่หรือเนื้อหาขององค์ประกอบ View ผ่าน 3 ประเภทหลักๆ ดังนี้
- ข้อความเป็น: ตรวจสอบเนื้อหาข้อความขององค์ประกอบ View ที่เลือก
- exists: ตรวจสอบว่าองค์ประกอบ View อยู่ในลำดับชั้น View ปัจจุบันที่มองเห็นได้บนหน้าจอ
- ไม่มี: ตรวจสอบว่าองค์ประกอบ View ไม่มีอยู่ในลำดับชั้น View ปัจจุบัน
หากต้องการเพิ่มการยืนยันในการทดสอบ ให้ทำดังนี้
- คลิกเพิ่มการยืนยัน กล่องโต้ตอบการจับภาพหน้าจอ จะปรากฏขึ้นขณะที่ Espresso รับลำดับชั้น UI และข้อมูลอื่นๆ เกี่ยวกับสถานะแอปปัจจุบัน กล่องโต้ตอบจะปิดโดยอัตโนมัติเมื่อ Espresso ถ่ายภาพหน้าจอแล้ว
- เลย์เอาต์ของหน้าจอปัจจุบันจะปรากฏในแผงทางด้านขวาของหน้าต่างบันทึกการทดสอบ หากต้องการเลือกองค์ประกอบ View ที่จะสร้างการยืนยัน ให้คลิกองค์ประกอบในภาพหน้าจอ หรือใช้เมนูแบบเลื่อนลงแรกในช่องแก้ไขการยืนยันที่ ด้านล่างของหน้าต่าง ระบบจะไฮไลต์ออบเจ็กต์ View ที่เลือกในกรอบสีแดง
- เลือกการยืนยันที่ต้องการใช้จากเมนูแบบเลื่อนลงที่ 2 ในช่องแก้ไขการยืนยัน Espresso จะป้อนข้อมูลลงในเมนูด้วยข้อความยืนยันที่ถูกต้อง
สำหรับองค์ประกอบ View ที่เลือก
- หากคุณเลือกการยืนยัน "ข้อความคือ" Espresso จะแทรกข้อความที่อยู่ภายในองค์ประกอบ View ที่เลือกโดยอัตโนมัติ คุณแก้ไขข้อความให้ตรงกับ การยืนยันที่ต้องการได้โดยใช้ช่องข้อความในกล่องแก้ไขการยืนยัน
- คลิกบันทึกและเพิ่มอีกเพื่อสร้างการยืนยันอื่น หรือคลิกบันทึกการยืนยันเพื่อปิดแผงการยืนยัน
ภาพหน้าจอในรูปที่ 2 แสดงการสร้างการยืนยัน "ข้อความคือ" เพื่อ ยืนยันว่าชื่อของโน้ตคือ "Happy Testing!"
รูปที่ 2 ช่องแก้ไขการยืนยันหลังจากเลือก องค์ประกอบมุมมอง (เป็นสีแดง)
ขณะสร้างการยืนยัน คุณจะโต้ตอบกับแอปต่อไปได้ แม้ว่าแผงการยืนยันจะยังเปิดอยู่ภายในหน้าต่างบันทึกการทดสอบ เครื่องมือบันทึกการทดสอบ Espresso จะ บันทึกการดำเนินการของคุณต่อไป แต่การยืนยันที่คุณกำลังแก้ไขจะปรากฏก่อนการโต้ตอบเหล่านี้ เมื่อบันทึกแล้ว ภาพหน้าจอสำหรับการยืนยันจะยังคงเลย์เอาต์ที่อุปกรณ์หรือ โปรแกรมจำลองมีในขณะที่คุณกดปุ่มเพิ่มการยืนยัน
บันทึกการบันทึก
เมื่อโต้ตอบกับแอปและเพิ่มการยืนยันเสร็จแล้ว ให้ทำตามขั้นตอนต่อไปนี้เพื่อบันทึก การบันทึกและสร้างการทดสอบ Espresso
- คลิกบันทึกเสร็จสิ้น หน้าต่างเลือกชื่อชั้นเรียนทดสอบ สำหรับการทดสอบจะปรากฏขึ้น
- Espresso Test Recorder จะตั้งชื่อที่ไม่ซ้ำให้กับการทดสอบภายในแพ็กเกจ
โดยอิงตามชื่อของกิจกรรมที่เปิด ใช้ช่องข้อความชื่อคลาสทดสอบหากต้องการเปลี่ยนชื่อที่แนะนำ คลิกบันทึก
- หากคุณยังไม่ได้เพิ่มการอ้างอิง Espresso ลงในแอป กล่องโต้ตอบการอ้างอิง Espresso ที่ขาดหายไปจะปรากฏขึ้นเมื่อคุณพยายาม
บันทึกการทดสอบ คลิกใช่เพื่อเพิ่มการอ้างอิงลงในไฟล์
build.gradleโดยอัตโนมัติ
- หากคุณยังไม่ได้เพิ่มการอ้างอิง Espresso ลงในแอป กล่องโต้ตอบการอ้างอิง Espresso ที่ขาดหายไปจะปรากฏขึ้นเมื่อคุณพยายาม
บันทึกการทดสอบ คลิกใช่เพื่อเพิ่มการอ้างอิงลงในไฟล์
- ไฟล์จะเปิดขึ้นโดยอัตโนมัติหลังจากที่ Espresso Test Recorder สร้างไฟล์ และ
Android Studio จะแสดงคลาสการทดสอบเป็นรายการที่เลือกในหน้าต่างโปรเจ็กต์
ของ IDE
- ตำแหน่งที่การทดสอบบันทึกจะขึ้นอยู่กับตำแหน่งของรูทการทดสอบ เครื่องมือ รวมถึงชื่อแพ็กเกจของกิจกรรมที่เปิด ตัวอย่างเช่น การทดสอบสำหรับแอปทดสอบ Notes จะบันทึกในโฟลเดอร์ src > androidTest > java > com.example.username.appname ของ โมดูลแอปที่คุณบันทึกการทดสอบ
เรียกใช้การทดสอบ Espresso ในเครื่อง
หากต้องการเรียกใช้การทดสอบ Espresso ให้ใช้หน้าต่างโปรเจ็กต์
ทางด้านซ้ายของ IDE ของ Android Studio โดยทำดังนี้
- เปิดโฟลเดอร์โมดูลแอปที่ต้องการ แล้วไปที่การทดสอบที่ต้องการเรียกใช้
ตำแหน่งของการทดสอบจะขึ้นอยู่กับตำแหน่งของรูทการทดสอบ
เครื่องมือและชื่อแพ็กเกจของกิจกรรมที่เปิด ตัวอย่างต่อไปนี้แสดงให้เห็นว่าการทดสอบจะบันทึกไว้ที่ใดสำหรับแอปทดสอบโน้ต
- หากใช้มุมมอง Androidภายในหน้าต่าง ให้ไปที่ java > com.example.username.appname (androidTest)
- หากคุณใช้มุมมองโปรเจ็กต์ภายในหน้าต่าง ให้ไปที่ src> androidTest > java > com.example.username.appname ภายใน โฟลเดอร์โมดูล
- คลิกขวาที่การทดสอบ แล้วคลิกเรียกใช้ "testName"
- หรือจะเปิดไฟล์ทดสอบแล้วคลิกขวาที่คลาสหรือเมธอดทดสอบที่สร้างขึ้นก็ได้ อ่านเพิ่มเติมเกี่ยวกับวิธีทำการทดสอบในหน้าทดสอบแอป
- ในหน้าต่างเลือกเป้าหมายการติดตั้งใช้งาน ให้เลือกอุปกรณ์ ที่คุณต้องการเรียกใช้การทดสอบ หากจำเป็น ให้สร้างอุปกรณ์เสมือน Android ใหม่ คลิก OK
ตรวจสอบความคืบหน้าของการทดสอบในหน้าต่างเรียกใช้ที่ด้านล่างของ 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 ในอุปกรณ์หลายเครื่อง