การระบุตัวตนอัจฉริยะใน QTP/UFT พร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
การระบุตัวตนอัจฉริยะเป็นกลไกสำรองใน UFT ฟังก์ชันหนึ่งใช้สำหรับค้นหาวัตถุเมื่อคำอธิบายที่เรียนรู้มาไม่ตรงกับแอปพลิเคชันที่กำลังทดสอบอีกต่อไป โดยใช้คุณสมบัติพื้นฐานและคุณสมบัติตัวกรองเสริมเพื่อจำกัดรายชื่อผู้สมัครให้เหลือเพียงรายการเดียวที่ตรงกัน

Smart Identification คืออะไรใน QTP/UFT?
การระบุตัวตนอัจฉริยะ เป็นกลไกการจดจำวัตถุสำรองใน OpenText UFT หนึ่ง เครื่องมือที่เคยรู้จักกันในชื่อ HP QuickTest Professional (QTPหากกระบวนการระบุตัวตนตามปกติไม่สามารถค้นหาการจับคู่ที่ไม่ซ้ำกันสำหรับคำอธิบายที่เรียนรู้ของวัตถุได้ UFT ระบบจะเรียกใช้งานการระบุตัวตนอัจฉริยะ หากกลไกนี้ถูกเปิดใช้งานในการตั้งค่าการระบุวัตถุสำหรับคลาสของวัตถุนั้น
แตกต่างจากคำอธิบายที่เรียนรู้มา การระบุตัวตนอัจฉริยะไม่จำเป็นต้องตรงกันทุกคุณสมบัติที่จัดเก็บไว้ แต่จะประเมินคุณสมบัติสองประเภทเพื่อคัดกรองกลุ่มวัตถุที่เป็นไปได้ให้เหลือเพียงหนึ่งเดียว:
- คุณสมบัติตัวกรองฐาน คุณสมบัติพื้นฐานที่สุดของคลาสวัตถุทดสอบ คือคุณสมบัติที่ค่าของมันไม่สามารถเปลี่ยนแปลงได้โดยไม่เปลี่ยนแปลงสาระสำคัญของวัตถุเดิม
- คุณสมบัติตัวกรองเพิ่มเติม (ไม่จำเป็น) คุณสมบัติเสริมที่ช่วยระบุวัตถุ แต่มีแนวโน้มที่จะเปลี่ยนแปลงไปตามเวลา
เมื่อระบบ Smart Identification ทำงาน UFT ระบบจะ "ลืม" คำอธิบายที่เรียนรู้ไปแล้ว และสร้างรายการผู้สมัครใหม่ที่มีวัตถุทุกชิ้นที่ตรงกับคุณสมบัติตัวกรองพื้นฐานทั้งหมด จากนั้นจะคัดกรองรายการนั้นให้แคบลงอีก โดยตรวจสอบคุณสมบัติตัวกรองเสริมทีละรายการ จนกว่าจะเหลือวัตถุเพียงชิ้นเดียว
หากมีการเรียกใช้ Smart Identification ในระหว่างเซสชันการทำงาน ผลลัพธ์การทดสอบจะบันทึกข้อความเตือนเพื่อยืนยันว่ามีการใช้กลไกดังกล่าว และจะมีการแทรกขั้นตอน Smart Identification เข้าไปในผลลัพธ์เพื่อให้ความเบี่ยงเบนจากคำอธิบายที่เรียนรู้ไว้ยังคงปรากฏให้เห็น
ระบบระบุตัวตนอัจฉริยะ (Smart Identification) อยู่ในอันดับที่สาม UFTลำดับชั้นการระบุวัตถุของสคริปต์นี้ จะอยู่หลังคำอธิบายที่เรียนรู้และตัวระบุความสัมพันธ์เชิงภาพ (Visual Relation Identifier) และก่อนตัวระบุลำดับที่ใช้เป็นทางเลือกสุดท้าย การเข้าใจว่ามันอยู่ในตำแหน่งใดจะช่วยอธิบายว่าทำไมการปิดใช้งานโดยสิ้นเชิง แทนที่จะแก้ไขคุณสมบัติพื้นฐาน จึงไม่ใช่ทางเลือกที่ดีที่สุดในระยะยาวสำหรับสคริปต์ที่ทำงานบ่อย
คุณสมบัติตัวกรองพื้นฐานเทียบกับคุณสมบัติตัวกรองเสริม
ตัวกรองทั้งสองทำงานร่วมกัน แต่มีบทบาทที่แตกต่างกันในกระบวนการกำจัดสิ่งรบกวนที่อธิบายไว้ข้างต้น การเปรียบเทียบด้านล่างจะอธิบายให้ชัดเจนว่าควรใช้ตัวกรองแต่ละตัวเมื่อใด และมีประสิทธิภาพในการกำจัดสิ่งรบกวนมากน้อยเพียงใด
| แง่มุม | คุณสมบัติตัวกรองพื้นฐาน | คุณสมบัติตัวกรองเพิ่มเติม |
|---|---|---|
| บทบาท | จัดทำรายชื่อผู้สมัครเบื้องต้น | ลดรายชื่อผู้สมัครให้เหลือเพียงหนึ่งเดียว |
| Stability | แทบจะไม่เคยเปลี่ยนแปลงอะไรเลยโดยไม่เปลี่ยนแปลงเอกลักษณ์ของวัตถุนั้น | สามารถเปลี่ยนแปลงได้เป็นระยะโดยไม่ต้องเปลี่ยนเอกลักษณ์ของวัตถุ |
| กฎการจับคู่ | ผู้สมัครทุกคนต้องมีคุณสมบัติพื้นฐานครบถ้วน | ตรวจสอบคุณสมบัติทีละรายการ หากการตรวจสอบคุณสมบัตินั้นจะทำให้ผู้สมัครทั้งหมดถูกตัดออก ก็จะข้ามคุณสมบัตินั้นไป |
| ตัวอย่างทั่วไป | แท็ก HTML, คลาสออบเจ็กต์, ดัชนี | ชื่อ, รหัส HTML, ข้อความแสดงแทนรูปภาพ, แหล่งที่มาของรูปภาพ |
| ตามที่กำหนดค่าไว้ | การระบุวัตถุ > กำหนดค่า > คุณสมบัติตัวกรองพื้นฐาน | การระบุวัตถุ > กำหนดค่า > คุณสมบัติตัวกรองเพิ่มเติม (ไม่บังคับ) |
เนื่องจากคุณสมบัติเดียวกันไม่สามารถอยู่ในทั้งสองรายการได้ ดังนั้นจึงควรวางแผนการแบ่งรายการอย่างระมัดระวัง คุณสมบัติที่กำหนดลักษณะพื้นฐานของวัตถุควรอยู่ในรายการหลัก ส่วนคุณสมบัติที่ช่วยแยกแยะวัตถุนั้นออกจากวัตถุที่คล้ายคลึงกันควรอยู่ในรายการเสริม
ระบบระบุตัวตนอัจฉริยะทำงานอย่างไร: ขั้นตอนการทำงานทีละขั้น
ระบบระบุตัวตนอัจฉริยะจะทำงานก็ต่อเมื่อคำอธิบายที่เรียนรู้แล้ว และตัวระบุความสัมพันธ์ทางภาพใดๆ ก็ตาม ไม่สามารถระบุวัตถุชิ้นใดชิ้นหนึ่งได้อย่างแม่นยำ เมื่อระบบเริ่มทำงานแล้ว UFT ทำงานผ่านกระบวนการคัดออกที่คาดเดาได้ 4 ขั้นตอน:
- จัดทำรายชื่อผู้สมัครใหม่ UFT ไม่สนใจคำอธิบายที่เรียนรู้มา และสแกนหาวัตถุแม่ของวัตถุนั้น เพื่อหาวัตถุทุกชิ้นที่ตรงกับคุณสมบัติตัวกรองพื้นฐานทั้งหมด
- ใช้คุณสมบัติเสริมตัวแรก UFT ลบผู้สมัครที่ไม่ตรงกับคุณสมบัติแรกในรายการคุณสมบัติตัวกรองเสริมออก
- ประเมินผลลัพธ์ หากยังมีผู้สมัครเหลืออยู่มากกว่าหนึ่งคน UFT ทำซ้ำขั้นตอนก่อนหน้าด้วยคุณสมบัติเสริมถัดไป หากตัวกรองสามารถกำจัดผู้สมัครที่เหลือทั้งหมดได้ UFT ระบบจะข้ามคุณสมบัตินั้นไปและไปยังคุณสมบัติถัดไปแทน
- หยุดแค่แมตช์เดียวก็พอ UFT ทำซ้ำวงจรการกรองและประเมินผลจนกว่าจะเหลือวัตถุเพียงหนึ่งเดียว หรือจนกว่าจะไม่มีคุณสมบัติเสริมให้ตรวจสอบอีกต่อไป
หากกระบวนการคัดออกยังไม่สามารถแยกวัตถุชิ้นใดชิ้นหนึ่งออกมาได้ UFT ระบบจะกลับไปใช้คำอธิบายที่เรียนรู้มา บวกกับตัวระบุลำดับ เช่น ดัชนี สถานที่ หรือเวลาสร้าง หากแม้แต่การใช้ชุดค่าผสมดังกล่าวก็ยังไม่สามารถระบุวัตถุได้ เซสชันการทำงานจะหยุดชั่วคราวและแสดงข้อผิดพลาดขณะทำงาน
วิธีเปิดหรือปิดใช้งานการระบุตัวตนอัจฉริยะ
การระบุตัวตนอัจฉริยะได้รับการกำหนดค่าต่อคลาสวัตถุทดสอบตั้งแต่ เครื่องมือ > การระบุวัตถุเลือกสภาพแวดล้อมและคลาสของวัตถุ แล้วเปิดใช้งาน เปิดใช้งานการระบุตัวตนอัจฉริยะจากนั้นคลิก กำหนดค่า เพื่อเลือกคุณสมบัติตัวกรองพื้นฐานและตัวกรองเสริมสำหรับคลาสนั้น หน้าต่างเดียวกันนี้ยังช่วยให้คุณปิดตัวเลือกสำหรับคลาสที่ควรใช้คำอธิบายที่เรียนรู้มาแทนเสมอได้
วิธีการทำงานของระบบระบุตัวตนอัจฉริยะ (วิดีโอสาธิต)
วิดีโอด้านล่างนี้แสดงขั้นตอนการกำจัดตัวกรองพื้นฐานและตัวกรองเสริมโดยใช้ตัวอย่างจริง
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
ข้อดีและข้อเสียของการใช้ระบบระบุตัวตนอัจฉริยะ
การระบุตัวตนอัจฉริยะช่วยเพิ่มความยืดหยุ่น แต่ความยืดหยุ่นนั้นก็มาพร้อมกับต้นทุนด้านเวลาในการทำงาน พิจารณาข้อดีข้อเสียก่อนที่จะเปิดใช้งานเป็นค่าเริ่มต้นในคลังเก็บวัตถุทั้งหมด
- ✅ รองรับการเปลี่ยนแปลง UI เล็กน้อย: การเปลี่ยนชื่อแอตทริบิวต์หรือการเปลี่ยนตำแหน่งในหน้าเว็บจะไม่ทำให้สคริปต์ทุกตัวที่เกี่ยวข้องกับวัตถุนั้นทำงานผิดพลาดอีกต่อไป
- ✅ ลดภาระการบำรุงรักษาคลังเก็บวัตถุ: ผู้ทดสอบใช้เวลาน้อยลงในการบันทึกข้อมูลวัตถุซ้ำหลังจากปล่อยเวอร์ชันส่วนหน้าขนาดเล็ก
- ✅ ผลลัพธ์ที่เห็นได้ชัด: ทุกครั้งที่มีการเรียกใช้งาน ระบบจะบันทึกคำเตือน เพื่อให้ทีมสามารถตรวจสอบได้ว่าจำเป็นต้องใช้ฟังก์ชันสำรองบ่อยแค่ไหน
- ⚠️ การทดสอบทำงานช้าลง: การสร้างและคัดกรองรายชื่อผู้สมัครใช้เวลานานกว่าการจับคู่คุณสมบัติโดยตรงอย่างเห็นได้ชัด และต้นทุนก็จะเพิ่มขึ้นเป็นทวีคูณหากมีผู้สมัครจำนวนมาก
- ⚠️ อาจปกปิดข้อบกพร่องที่แท้จริงได้: หากระบบ Smart Identification ตรวจพบวัตถุที่คล้ายกันโดยที่ผู้ใช้ไม่สังเกตเห็น ความผิดพลาดของส่วนติดต่อผู้ใช้ที่แท้จริงอาจไม่ถูกตรวจพบ
- ⚠️ จำเป็นต้องมีการตรวจสอบเป็นระยะ: คุณสมบัติตัวกรองพื้นฐานและตัวเลือกเสริมยังคงต้องได้รับการตรวจสอบเป็นระยะ ๆ ในขณะที่แอปพลิเคชันมีการพัฒนา
โดยทั่วไป ทีมส่วนใหญ่จะเปิดใช้งาน Smart Identification ไว้สำหรับสคริปต์ที่ใช้ในการสำรวจและมีการใช้งานไม่บ่อย จากนั้นจึงปิดใช้งานแบบเลือกเฉพาะกับวัตถุที่มีความสำคัญต่อประสิทธิภาพการทำงาน เมื่อคุณสมบัติการระบุตัวตนของวัตถุนั้นคงที่แล้ว
แก้ไขคุณสมบัติของวัตถุเพื่อหลีกเลี่ยงการระบุตัวตนอัจฉริยะ
ความยืดหยุ่นของ Smart Identification มาพร้อมกับต้นทุนด้านเวลาในการทำงานดังที่กล่าวไว้ข้างต้น ดังนั้นหลายทีมจึงเลือกที่จะแก้ไขคุณสมบัติการระบุตัวตนของวัตถุด้วยตนเองมากกว่าที่จะพึ่งพาการสำรองข้อมูลซ้ำๆ สังเกตสัญญาณสองอย่างที่บ่งบอกว่าการแก้ไขคุณสมบัติดีกว่าการสำรองข้อมูลขณะทำงาน: คำเตือน Smart Identification ที่ปรากฏขึ้นเกือบทุกครั้งที่เรียกใช้งาน และสคริปต์ที่ทำงานช้าลงอย่างเห็นได้ชัดนับตั้งแต่เริ่มใช้การสำรองข้อมูล ทั้งสองอย่างชี้ไปที่วัตถุที่มีคุณสมบัติการระบุตัวตนเริ่มต้นไม่เหมาะสมกับแอปพลิเคชันอีกต่อไป ไม่ใช่ความผิดพลาดของ UI เพียงครั้งเดียว วิดีโอด้านล่างแสดงวิธีการแก้ไขบนแบบฟอร์มการเข้าสู่ระบบจริง
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
คำบรรยายวิดีโอ: ประเด็นสำคัญ
- การระบุตัวตนอัจฉริยะทำให้การประมวลผลสคริปต์ช้าลง ซึ่งไม่เป็นที่ต้องการสำหรับชุดสคริปต์ขนาดใหญ่หรือที่ใช้งานบ่อย
- เพื่อหลีกเลี่ยงปัญหานี้โดยสิ้นเชิง ให้เปลี่ยนคุณสมบัติการระบุวัตถุเริ่มต้นแทนที่จะพึ่งพาตัวเลือกสำรอง
- In การระบุวัตถุลบคำว่า “name” ออกจากคุณสมบัติที่จำเป็น และแทนที่ด้วย “HTML id” เพื่อให้การทดสอบไม่ขึ้นอยู่กับการเปลี่ยนแปลงชื่อ
- บันทึกขั้นตอนเดิมซ้ำอีกครั้งหลังจากอัปเดตรายการคุณสมบัติที่จำเป็นแล้ว
- หากชื่อเปลี่ยนจาก “ส่ง” เป็น “เข้าสู่ระบบ” ในภายหลัง สคริปต์จะทำงานโดยไม่เรียกใช้ระบบยืนยันตัวตนอัจฉริยะ
- ในทำนองเดียวกัน หากคุณสมบัติที่จำเป็นหรือคุณสมบัติเสริมใดๆ บนวัตถุที่กำลังทดสอบมีการเปลี่ยนแปลงบ่อยครั้ง ให้แทนที่ด้วยคุณสมบัติที่มีความเสถียรกว่า เพื่อให้การทำงานของสคริปต์รวดเร็วขึ้น
- การปรับแต่งคุณสมบัติเป็นทักษะที่สร้างขึ้นจากประสบการณ์ ยิ่งคุณใช้เครื่องมือนี้มากเท่าไหร่ ทักษะก็จะยิ่งดีขึ้นเท่านั้น
ปิดใช้งานระบบระบุตัวตนอัจฉริยะโดยใช้ VBScript
นอกจากนี้ ยังสามารถปิดการใช้งาน Smart Identification ตลอดทั้งเซสชันการทำงานโดยไม่ต้องแตะต้องคลังเก็บวัตถุ โดยใช้ DisableReplayUsingAlgorithm การตั้งค่าขณะรันไทม์ มีประโยชน์เมื่อสคริปต์ควรหยุดทำงานทันทีหากคุณสมบัติใด ๆ ไม่ตรงกัน แทนที่จะกลับไปยังกระบวนการคัดกรองโดยไม่แจ้งให้ทราบล่วงหน้า
' Disable Smart Identification for this run session Setting("DisableReplayUsingAlgorithm") = 1 Browser("Mercury Tours").Page("Find Flights").WebEdit("userName").Set "mercury" ' Re-enable Smart Identification once the strict steps are done Setting("DisableReplayUsingAlgorithm") = 0
ควรจำกัดระยะเวลาของหน้าต่างที่ปิดใช้งานให้สั้นที่สุดเท่าที่จะเป็นไปได้ ขั้นตอนที่ดำเนินการภายในหน้าต่างนั้นต้องตรงกับคำอธิบายที่เรียนรู้มาอย่างแม่นยำ ดังนั้นหากเกิดความคลาดเคลื่อนใดๆ ในแอปพลิเคชันที่กำลังทดสอบ จะทำให้เกิดความล้มเหลวทันที แทนที่จะเป็นการย้อนกลับอย่างราบรื่น
แหล่งข้อมูล
ดาวน์โหลดเว็บเพจที่ใช้ในบทเรียนข้างต้นเพื่อฝึกฝนด้วยตนเอง

