UI สำหรับหลายแอปพลิเคชัน
Android รองรับการทดสอบส่วนต่อประสานผู้ใช้ที่เกี่ยวข้องกับแอปพลิเคชันมากกว่าหนึ่งแอปพลิเคชัน ให้เราพิจารณาว่าแอปพลิเคชันของเรามีตัวเลือกในการย้ายจากแอปพลิเคชันของเราไปยังแอปพลิเคชันการส่งข้อความเพื่อส่งข้อความจากนั้นกลับมาที่แอปพลิเคชันของเรา ในสถานการณ์นี้กรอบการทดสอบ UI Automatorช่วยให้เราทดสอบแอปพลิเคชัน UI Automatorถือได้ว่าเป็นคู่หูที่ดีสำหรับกรอบการทดสอบเอสเพรสโซ เราสามารถใช้ประโยชน์จากความประสงค์ ()ตัวเลือกในกรอบการทดสอบเอสเพรสโซก่อนการเลือกสำหรับUI อัตโนมัติ
คำแนะนำในการติดตั้ง
Android มี UI Automator เป็นปลั๊กอินแยกต่างหาก จำเป็นต้องกำหนดค่าในapp / build.gradleตามที่ระบุด้านล่าง
dependencies {
...
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
}
เวิร์กโฟลว์สำหรับการเขียนกรณีทดสอบ
ให้เราเข้าใจวิธีการเขียนกรณีทดสอบตามUI Automator
รับวัตถุUiDeviceโดยเรียกใช้เมธอดgetInstance ()และส่งผ่านวัตถุInstrumentation
myDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
myDevice.pressHome();
รับUiObjectวัตถุโดยใช้findObject ()วิธีการ ก่อนที่จะใช้วิธีนี้เราสามารถเปิดแอปพลิเคชันuiautomatorviewerเพื่อตรวจสอบส่วนประกอบ UI ของแอปพลิเคชันเป้าหมายเนื่องจากการทำความเข้าใจกับแอปพลิเคชันเป้าหมายทำให้เราสามารถเขียนกรณีทดสอบได้ดีขึ้น
UiObject button = myDevice.findObject(new UiSelector()
.text("Run")
.className("android.widget.Button"));
โต้ตอบกับผู้ใช้จำลองโดยการเรียกUiObject ของวิธีการ ตัวอย่างเช่นsetText ()เพื่อแก้ไขช่องข้อความและคลิก ()เพื่อเริ่มต้นเหตุการณ์การคลิกของปุ่ม
if(button.exists() && button.isEnabled()) {
button.click();
}
สุดท้ายเราตรวจสอบว่า UI แสดงสถานะที่คาดไว้หรือไม่