แนวทางปฏิบัติที่ดีที่สุดสำหรับการทดสอบการทำงานอัตโนมัติของ UI คือทำน้อยที่สุดเท่าที่จะทำได้ UIs เปลี่ยนบ่อยซึ่งหมายความว่าคุณต้องอัปเดตระบบอัตโนมัติของคุณอย่างต่อเนื่อง โดยทั่วไปแล้วดีกว่าการจัดโครงสร้างรหัสผลิตภัณฑ์ในลักษณะที่ช่วยให้การทดสอบอัตโนมัติโดยไม่มี UI Automation
ที่กล่าวว่าคุณไม่สามารถกำจัด UI Automation ได้เสมอไป คุณพูดถึง office ดังนั้นฉันสมมติว่าคุณกำลังเขียนโปรแกรมสำหรับ Windows และใช้. Net ฉันทำหน้าที่ปัจจุบันของฉันค่อนข้างน้อย นี่คือสิ่งที่ฉันได้เรียนรู้
1) ดูห้องสมุด UIAutomation ซึ่งเปิดตัวใน. Net 3.0 มีไลบรารีที่กว้างขวางและใช้งานง่ายสำหรับระบบอัตโนมัติ (http://msdn.microsoft.com/en-us/library/ms753107.aspx)
2) ดาวน์โหลด UISpy (http://msdn.microsoft.com/en-us/library/ms727247.aspx)
3) ทำให้ UIs ของผลิตภัณฑ์เป็นแบบอัตโนมัติ
3a) ถ้าเป็น WPF ให้ใส่ AutomationIDs กับทุกสิ่ง
3b) พยายามสร้างการควบคุมที่โดดเด่นและชื่อคลาสหน้าต่าง (ชื่อคลาส UI ไม่ใช่ชื่อคลาสซอร์สโค้ด) หากคุณไม่รู้ว่าฉันหมายถึงอะไรให้โหลด UI Spy และเริ่มดูหน้าต่าง สังเกตว่ามีกี่ windows ในแอพที่แตกต่างกันมีชื่อคลาสของ # 32770 นี่คือชื่อคลาสสำหรับกล่องโต้ตอบ Windows หน้าต่างใด ๆ ที่ขยายไดอะล็อกและไม่ได้ตั้งชื่อเป็นค่าเริ่มต้น สิ่งนี้ทำให้เกิดความโศกเศร้าทุกประเภทจากมุมมอง UI Automation
4) หลีกเลี่ยงคำสั่ง Thread.Sleep () ลองใช้ Waiters (ดู UIAutomation เอกสาร) แทน
5) ไม่เคยผสมรหัสทดสอบกับรหัส UI Automation สร้างไลบรารีแยกต่างหากเพื่อดำเนินการกับ UI Automation โทรห้องสมุดเหล่านี้จากการทดสอบของคุณ เมื่อ UI เปลี่ยนไปสิ่งนี้จะทำให้การอัปเดตอัตโนมัติทำได้ง่ายขึ้นมาก
6) ลงทะเบียนผู้ฟังสำหรับกิจกรรม UI เสมอก่อนที่จะดำเนินการซึ่งจะทำให้เหตุการณ์เริ่มทำงาน ในทางปฏิบัติหมายความว่าคุณจะทำงานกับเธรด
6a) ตัวอย่าง: อย่าเริ่มรอเหตุการณ์ Window Opened หลังจากคุณคลิกปุ่มเพื่อเปิดหน้าต่าง หน้าต่างอาจเปิดก่อนที่บริกรจะลงทะเบียนและไม่เคยได้รับเหตุการณ์
7) อย่าถือว่าหน้าต่างที่เพิ่งเปิดเป็นหน้าต่างที่คุณต้องการ หน้าต่างทุกประเภทอาจเปิดขึ้นโดยไม่คาดหมายใน Windows
ฉันสามารถไปต่อได้มากกว่านี้ แต่มันก็ใช้เวลาค่อนข้างนาน