บทช่วยสอนกรอบการทำงานอัตโนมัติการทดสอบ UI ที่เข้ารหัส
ซอฟต์แวร์อัตโนมัติทั่วไป การทดสอบ ต้องใช้เครื่องมืออัตโนมัติเช่น Selenium และคิวทีพี Coded UI นั้นคล้ายคลึงกับเครื่องมือเหล่านี้ และมีประโยชน์อย่างยิ่งสำหรับการทดสอบการทำงาน
การทดสอบ Coded UI (CUIT) ใช้ Visual Studio IDE ในการเขียนสคริปต์ เนื่องจากสามารถทำการบันทึกได้โดยใช้ Visual Studio.
การทดสอบ Coded UI คืออะไร
การทดสอบ UI ที่เข้ารหัส (CUIT) คือการทดสอบอัตโนมัติที่ขับเคลื่อนแอปพลิเคชันผ่านส่วนต่อประสานผู้ใช้ (UI) จึงเป็นที่มาของชื่อ Coded UI Test (CUIT) การทดสอบนี้เกี่ยวข้องกับ การทดสอบการใช้งาน ของการควบคุม UI ตรวจสอบฟังก์ชันการทำงานของแอปพลิเคชันทั้งหมด รวมถึงอินเทอร์เฟซผู้ใช้ นอกจากนี้ยังใช้เพื่อทำให้การทดสอบด้วยตนเองที่มีอยู่เป็นแบบอัตโนมัติอีกด้วย
คุณสมบัติการทดสอบ UI ที่เข้ารหัส
คุณสมบัติ UI ที่เข้ารหัสประกอบด้วย
- การทดสอบสมรรถนะ
- สร้างโค้ดใน VB/C#
- บูรณาการกับเรื่องราว ALM
- สร้าง ปรับใช้ และทดสอบในห้องปฏิบัติการหรือเป็นส่วนหนึ่งของงานสร้าง
- การวิ่งในพื้นที่ การวิ่งระยะไกล การรวบรวมข้อมูล
- ความสามารถในการขยายที่หลากหลาย
- การบันทึกที่รับรู้ถึงเจตนาและการเล่นที่ยืดหยุ่น
เทคโนโลยีที่รองรับการทดสอบ UI แบบเข้ารหัส (CUIT)
ด้วย UI ที่เข้ารหัส ทำให้สามารถทดสอบแอปพลิเคชันที่มี UI (อินเทอร์เฟซผู้ใช้) ได้อย่างง่ายดาย แอปพลิเคชันอาจเป็นแบบหน้าต่างหรือแบบเว็บก็ได้
Coded UI รองรับเทคโนโลยีเช่น
- แอปพลิเคชันเดสก์ท็อปที่ใช้หน้าต่าง
- บริการบนเว็บ (SOAP, ASPX ฯลฯ)
- แอพพลิเคชั่นวินโดว์โฟน
- ดับบลิวพีเอฟ (Windows การเสนอ Foundation)
- เว็บแอปพลิเคชัน (HTML, Silverlight, HTML5)
เหตุใดจึงต้องใช้ Coded UI สำหรับการทดสอบอัตโนมัติ
เหตุผลที่แนะนำให้ใช้โค้ด UI สำหรับการทดสอบอัตโนมัติ
- นักพัฒนาและผู้ทดสอบซอฟต์แวร์สามารถทำงานร่วมกันได้อย่างมีประสิทธิภาพโดยใช้เครื่องมือ/ภาษาเดียวกัน
- รองรับทั้งเว็บเช่นกัน Windows โครงการ
- กลไกการระบุองค์ประกอบเป็นคุณลักษณะที่ยอดเยี่ยมใน Coded UI นอกจากนี้ยังรองรับการซิงโครไนซ์อีกด้วย
- Playback Engine รองรับคุณสมบัติเช่น 'WaitForControlExist', 'WaitForReadyLevel' ฯลฯ
- ด้วยความช่วยเหลือของ 'ตัวแทนการทดสอบ' การทดสอบอัตโนมัติสามารถดำเนินการบนเครื่องระยะไกลได้
- ทีมระบบอัตโนมัติสามารถพัฒนาการทดสอบที่ซับซ้อนได้โดยใช้โค้ด UI พร้อมเฟรมเวิร์กแบบเลเยอร์
- ผู้ทดสอบซอฟต์แวร์สามารถจับข้อยกเว้นและบันทึกผลลัพธ์ได้อย่างมีประสิทธิภาพโดยใช้ log4net.dll
- รองรับเครื่องมือ Coded UI การเขียนโปรแกรมเชิงพรรณนา- ช่วยให้ผู้ทดสอบซอฟต์แวร์สร้างสถานการณ์อัตโนมัติตามคุณสมบัติของออบเจ็กต์
- รองรับการควบคุม AJAX
วิธีสร้างการทดสอบ Coded UI (CUIT)
ในการสร้างการทดสอบ UI ที่มีการเข้ารหัส คุณสามารถทำได้ดังต่อไปนี้
- การสร้างจากการบันทึกการกระทำที่มีอยู่ (การแปลงจากการบันทึกการทดสอบด้วยตนเอง)
- การสร้างการทดสอบ UI ที่เข้ารหัสใหม่ตั้งแต่เริ่มต้น
- การเขียนโค้ดตั้งแต่เริ่มต้น
เนื้อหาของการทดสอบ Coded UI
เมื่อคุณสร้างการทดสอบ UI ที่เข้ารหัส ตัวสร้างการทดสอบ UI ที่เข้ารหัสจะสร้างแผนที่ ซึ่งรวมถึง UI ภายใต้การทดสอบ วิธีทดสอบ พารามิเตอร์ การยืนยัน ฯลฯ สำหรับการทดสอบแต่ละครั้ง ยังสร้างไฟล์คลาสด้วย
เนื้อไม่มีมัน | คอนเทนต์ | แก้ไขได้ |
---|---|---|
UIMap.Designer.cs | ส่วนการประกาศคุณสมบัติวิธีคลาส UIMap | ไม่ |
UIMap.cs | คลาส UIMap (บางส่วน) | ใช่ |
CodedUITest1.cs | คุณสมบัติวิธีการคลาส CodeUITest1 | ใช่ |
UIMap.uitest | แมป XML ของ UI สำหรับการทดสอบ ได้รับการแก้ไขผ่านโปรแกรมแก้ไขแผนที่ UI เท่านั้น | ไม่ |
- UIMap.Designer.cs : ผู้ออกแบบประกอบด้วยมุมมองโค้ดของ UIMap มันถูกสร้างขึ้นเมื่อผู้ทดสอบบันทึกการโต้ตอบ UI บางอย่างหรือเมื่อมีการเพิ่มออบเจ็กต์บางอย่างลงใน UIMap ด้วยตนเอง
- UIMap.cs: การแก้ไขหรือปรับแต่งใดๆ ที่ทำกับ UIMap จะถูกเก็บไว้ในไฟล์นี้ ในตอนแรก ไฟล์นี้จะว่างเปล่าและสามารถเติมข้อมูลในภายหลังได้ หากทำการแก้ไขกับไฟล์ UIMap.designer.cs โดยตรง โปรดแน่ใจว่าไม่ได้บันทึกไว้ มิฉะนั้น การเปลี่ยนแปลงทั้งหมดจะสูญหาย
- CodedUITest1.cs: ไฟล์นี้มีคลาสการทดสอบ UI ที่เข้ารหัส วิธีทดสอบ การร้องขอการยืนยัน และการเรียกใช้เมธอด การยืนยันและวิธีการทั้งหมดจะถูกเรียกใช้จากไฟล์นี้ตามค่าเริ่มต้น
- UIMap.uitest:เป็นการแสดง XML ของคลาส UIMap ซึ่งประกอบด้วยหน้าต่าง ตัวควบคุม คุณสมบัติ วิธีการ การดำเนินการ และการยืนยัน แก้ไขได้เฉพาะผ่านตัวแก้ไข UI Map เท่านั้น
ต่อไปในบทช่วยสอน Coded UI นี้ เราจะเรียนรู้วิธีดำเนินการทดสอบ Coded UI อัตโนมัติ
วิธีดำเนินการทดสอบโค้ด UI
Coded UI มีสองวิธีในการทดสอบแอปพลิเคชันของคุณ
- บันทึก UI ที่เข้ารหัสและการเล่นหรือ
- การเข้ารหัสด้วยมือ UI ที่เข้ารหัส
คุณต้องทำตามขั้นตอนต่อไปนี้เพื่อดำเนินการทดสอบ UI แบบโค้ด
- สร้างโปรเจ็กต์ทดสอบ CodedUI
- เพิ่มไฟล์ทดสอบ UI ที่เข้ารหัส
- บันทึกลำดับของการกระทำ
- ตรวจสอบค่าในฟิลด์ UI เช่นกล่องข้อความ
- ดูรหัสทดสอบที่สร้างขึ้น
- เพิ่มการกระทำและการยืนยันเพิ่มเติม
- แก้ไขรายละเอียดกิจกรรมทดสอบและการยืนยัน
- เรียกใช้การทดสอบ
แนวทางปฏิบัติที่ดีที่สุดสำหรับการทดสอบ Coded UI (CUIT)
ต่อไปนี้เป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับเฟรมเวิร์กการทดสอบอัตโนมัติของ Coded UI:
- ใช้ Coded UI Automation Test Builder ทุกครั้งที่เป็นไปได้
- พยายามอย่าแก้ไขไฟล์ UIMap.designer.cs โดยตรง มิฉะนั้น การเปลี่ยนแปลงที่คุณทำกับไฟล์จะถูกเขียนทับ
- สร้างการทดสอบของคุณเป็นลำดับของวิธีการที่บันทึกไว้
- แต่ละวิธีที่บันทึกไว้ควรทำงานบนหน้าเดียว แบบฟอร์ม หรือกล่องโต้ตอบ นอกจากนี้ ให้สร้างวิธีการทดสอบใหม่สำหรับแบบฟอร์ม หน้า หรือกล่องโต้ตอบใหม่แต่ละอัน
- เมื่อคุณสร้างวิธีการ แทนที่จะใช้ชื่อเริ่มต้น ให้ใช้ชื่อวิธีการที่มีความหมาย ชื่อที่มีความหมายช่วยระบุวัตถุประสงค์ของวิธีการ
- หากเป็นไปได้ ให้จำกัดแต่ละวิธีที่บันทึกไว้ให้น้อยกว่า 10 การดำเนินการ วิธีการนี้ทำให้ง่ายต่อการแทนที่วิธีการหาก UI เปลี่ยนแปลง
- หากต้องการสร้างการยืนยันให้ใช้ตัวสร้างการทดสอบ CodedUI โดยจะเพิ่มวิธีการยืนยันลงในไฟล์ UIMap.Designer.cs โดยอัตโนมัติ
- บันทึกวิธีทดสอบ/วิธีการยืนยันอีกครั้ง หากอินเทอร์เฟซผู้ใช้เปลี่ยนแปลงหรือบันทึกซ้ำส่วนที่ได้รับผลกระทบจากวิธีทดสอบที่มีอยู่
- หากคุณกำลังเขียนโค้ดโดยตรงด้วย API ให้ใช้วิธีการและคุณสมบัติในคลาสที่สร้างในไฟล์ UIMap.Designer.cs ชั้นเรียนเหล่านี้จะทำให้งานของคุณน่าเชื่อถือและง่ายขึ้น และจะช่วยให้คุณมีประสิทธิผลมากขึ้น
การเปรียบเทียบการทดสอบ Coded UI กับ Selenium เทียบกับ QTP
ด้านล่างนี้เป็นตารางเปรียบเทียบ Coded UI Vs Selenium เทียบกับ QTP:
- Selenium ไม่รองรับ WPF ใด ๆ เช่นกัน Windows การใช้งาน
- Visual Studio CodedUI รองรับการทดสอบแอปพลิเคชัน Window store รวมถึงการทดสอบแอปพลิเคชัน Window Phone ไม่มีเครื่องมืออื่นรองรับสิ่งนี้
- การทดสอบเสร็จสมบูรณ์รองรับ Window Application แต่จำเป็นต้องติดตั้งปลั๊กอิน
สรุป:
- การทดสอบอัตโนมัติที่ขับเคลื่อนแอปพลิเคชันของคุณผ่านอินเทอร์เฟซผู้ใช้ (UI) เรียกว่าการทดสอบ CodedUI (CUIT)
- เฟรมเวิร์กอัตโนมัติการทดสอบ UI แบบเข้ารหัสรองรับเทคโนโลยีเช่น Web Services, แอปพลิเคชัน Window phone, แอปพลิเคชันบนเว็บ ฯลฯ
- การทดสอบ UI แบบเข้ารหัสช่วยให้นักพัฒนาและ ผู้ทดสอบซอฟต์แวร์ เพื่อทำงานร่วมกันอย่างมีประสิทธิภาพโดยใช้เครื่องมือ/ภาษาเดียวกัน
- เนื้อหาหรือไฟล์ที่สร้างขึ้นขณะใช้ CodedUI ประกอบด้วย
- UIMap.Designer.cs
- UIMap.cs
- CodedUITest1.cs
- UIMap.uitest