ऑब्जेक्ट आइडेंटिफिकेशन कैसे काम करता है QTP/UFT?

⚡ स्मार्ट सारांश

वस्तु पहचान में QTP/UFT यह निर्धारित करता है कि परीक्षण के दौरान टूल प्रत्येक जीयूआई तत्व को कैसे पहचानता है, संग्रहीत टेस्ट ऑब्जेक्ट गुणों की तुलना लाइव रन-टाइम ऑब्जेक्ट गुणों से करता है ताकि स्क्रीन लेआउट बदलने पर भी स्क्रिप्ट काम करती रहे।

  • 🎯 टेस्ट ऑब्जेक्ट मॉडल: UFT यह स्क्रीन की स्थिति से स्वतंत्र नियंत्रणों की पहचान करने के लिए प्रत्येक चरण में संग्रहीत टेस्ट ऑब्जेक्ट की तुलना लाइव रन-टाइम ऑब्जेक्ट से करता है।
  • अनिवार्य गुणधर्म: UFT ऑब्जेक्ट रिपॉजिटरी के अंदर प्रत्येक ऑब्जेक्ट क्लास के लिए गुणों का एक डिफ़ॉल्ट सेट हमेशा रिकॉर्ड किया जाता है।
  • 🧩 सहायक गुण: UFT यह बैकअप प्रॉपर्टीज़ को एक-एक करके तभी जोड़ता है जब अनिवार्य सेट अकेले एक अद्वितीय विवरण बनाने में सक्षम न हो।
  • ⚙️ ऑब्जेक्ट आइडेंटिफिकेशन डायलॉग: टूल्स > ऑब्जेक्ट आइडेंटिफिकेशन परीक्षकों को प्रत्येक वातावरण और ऑब्जेक्ट क्लास के अनुसार प्रॉपर्टी जोड़ने, हटाने या उनका क्रम बदलने की सुविधा देता है।
  • ऑब्जेक्ट जासूस: किसी भी कंट्रोल पर माउस ले जाकर उसके टेस्ट-ऑब्जेक्ट और रन-टाइम गुणों की जांच करें, फिर तय करें कि किन पर भरोसा करना है।
  • 🔢 क्रमसूचक पहचानकर्ता: इंडेक्स, लोकेशन और क्रिएशन टाइम उन ऑब्जेक्ट्स के बीच के अंतर को खत्म करते हैं जो हर प्रॉपर्टी चेक के बाद भी एक जैसे रहते हैं।
  • 🧠 स्मार्ट पहचान: यह फॉलबैक तंत्र ऑर्डिनल आइडेंटिफायर से पहले चलता है और अक्सर उस ऑब्जेक्ट को रिकवर कर लेता है जिसका सीखा हुआ विवरण टूट गया हो।

ऑब्जेक्ट आइडेंटिफिकेशन क्या है? UFT/QTP?

वस्तु पहचान एक तंत्र है UFT/QTP इसका उपयोग स्क्रीन पर मौजूद GUI एलिमेंट को पहचानने के लिए किया जाता है ताकि स्क्रिप्ट बार-बार चलने पर भी उस पर विश्वसनीय रूप से कार्य कर सके। रिकॉर्डिंग सत्र के दौरान, UFT यह माउस पॉइंटर के नीचे मौजूद ऑब्जेक्ट के कुछ चुनिंदा गुणों का अध्ययन करता है और उन्हें संग्रहीत करता है; रीप्ले के दौरान, यह संग्रहीत मानों की तुलना वास्तव में मौजूद प्रत्येक ऑब्जेक्ट के गुणों से करता है और उस मान को चुनता है जो विशिष्ट रूप से मेल खाता है, चाहे वह ऑब्जेक्ट अब स्क्रीन पर कहीं भी स्थित हो।

संग्रहित वस्तु, गुणों सहित UFT इसके लिए याद रखता है, इसे कहा जाता है परीक्षण वस्तुपरीक्षण चलने के दौरान स्क्रीन पर मौजूद संबंधित तत्व यह है: रन-टाइम ऑब्जेक्टप्रत्येक चरण में दोनों की तुलना करना ही माइक्रो फोकस की कार्यप्रणाली का आधार है। टेस्ट ऑब्जेक्ट मॉडलऔर यही कारण है कि एक UFT बटन के कुछ पिक्सल हिलने या पेज के रीस्टाइल होने के बाद भी स्क्रिप्ट काम करती रहती है।

ऑब्जेक्ट रिपॉजिटरी और ऐड-इन्स

UFT सीखे गए प्रत्येक टेस्ट ऑब्जेक्ट को, उसके संग्रहित गुणों सहित, अंदर रखता है। ऑब्जेक्ट रिपोजिटरी. ऐड-इन्स कहना त्वरित परीक्षण पहले से ही यह निर्धारित कर लें कि स्क्रीन किस तकनीक से संबंधित है, ताकि टूल को पहले से ही पता हो कि कौन सा प्रॉपर्टी सेट लागू होता है और उसे अनुमान लगाने की आवश्यकता नहीं होगी, जिससे किसी ऑब्जेक्ट को सीखने में लगने वाला समय कम हो जाता है।

क्लिक करें यहाँ उत्पन्न करें यदि वीडियो उपलब्ध न हो

प्रत्येक वस्तु UFT रिकॉर्ड में दर्जनों प्रॉपर्टी हो सकती हैं। अकेले वेब वातावरण में ही, एक बटन अपना नाम, HTML टैग, प्रकार, क्लास, इंडेक्स आदि दिखा सकता है। तकनीकी रूप से हर ऑब्जेक्ट के लिए इन सभी को रिकॉर्ड करना संभव है, लेकिन यह शायद ही कभी उपयोगी होता है, जैसा कि अगली छवि में एक विशिष्ट ऑब्जेक्ट रिपॉजिटरी प्रविष्टि के लिए दिखाया गया है।

ऑब्जेक्ट रिपोजिटरी

If UFT यदि प्रत्येक ऑब्जेक्ट के लिए उपलब्ध सभी प्रॉपर्टी को याद रखने का प्रयास किया जाए, तो ऑब्जेक्ट रिपॉजिटरी का आकार बहुत बढ़ जाएगा और स्क्रिप्ट का निष्पादन काफी धीमा हो जाएगा। इससे बचने के लिए, QTP यह डिफ़ॉल्ट रूप से हर प्रॉपर्टी को सेव नहीं करता है — यह प्रत्येक ऑब्जेक्ट प्रकार के लिए एक छोटा, विशिष्ट सेट सेव करता है, जिसे चुनने के लिए चुना जाता है। विशिष्ट पहचान बिना किसी अतिरिक्त लागत के संभव। गुणों की यह संक्षिप्त सूची, जो प्रत्येक वातावरण और ऑब्जेक्ट वर्ग के लिए अलग-अलग तय की जाती है, ऑब्जेक्ट पहचान सेटिंग्स में कॉन्फ़िगर की जाती है, जिसके बारे में आगे चर्चा की जाएगी।

वस्तु Descriptआयन: अनिवार्य और सहायक गुण

किसी वस्तु का गुणधर्म और उसका मान मिलकर क्या बनाते हैं? UFT कॉल करता है वस्तु Descriptआयन — यह वह सटीक संयोजन है जिसका उपयोग टूल पृष्ठ पर मौजूद सभी वस्तुओं में से एक तत्व को चुनने के लिए करता है। उदाहरण के लिए, वेबबटन के लिए, प्रॉपर्टी नाम मान के साथ लॉगिन करें यह अपने आप में ही अक्सर एक उपयोगी वस्तु बनाने के लिए पर्याप्त होता है। Descriptआयन।

इस व्यवहार की समीक्षा करने या इसे बदलने के लिए, खोलें उपकरण > वस्तु पहचान अंदर UFTऑब्जेक्ट आइडेंटिफिकेशन डायलॉग बॉक्स वर्तमान में लोड किए गए सभी वातावरणों को सूचीबद्ध करता है; किसी एक का चयन करने पर ऑब्जेक्ट क्लास स्वतः भर जाते हैं। UFT इसके लिए समर्थन मौजूद है, और दाईं ओर का पैनल दिखाता है कि उस क्लास के ऑब्जेक्ट्स के लिए कौन-कौन सी प्रॉपर्टीज़ स्टोर की जाती हैं। सूची को दो समूहों में विभाजित किया गया है:

  1. अनिवार्य गुण उस क्लास के प्रत्येक ऑब्जेक्ट के लिए डिफ़ॉल्ट रूप से डेटा संग्रहीत किया जाता है, चाहे वास्तव में इसकी आवश्यकता हो या न हो, ताकि इसे इसके पड़ोसियों से अलग किया जा सके।
  2. सहायक गुण इन्हें तभी संग्रहित किया जाता है जब अनिवार्य गुणधर्मों के आधार पर ही एक अद्वितीय विवरण नहीं बनाया जा सकता है। UFT यह सूची में एक-एक करके गुणों की जांच करता है जब तक कि वस्तु अद्वितीय न हो जाए।

वेब इमेज से नियम को व्यवहार में समझना आसान हो जाता है।

वस्तु Descriptआयन, अनिवार्य और सहायक गुण

  • UFT यह वेब इमेज के लिए हमेशा ऑल्ट टेक्स्ट, एचटीएमएल टैग और इमेज टाइप को स्टोर करता है, भले ही ऑल्ट टेक्स्ट अपने आप में अद्वितीय हो।
  • यदि अनिवार्य गुणधर्म एक अद्वितीय विवरण नहीं बना सकते हैं, UFT सहायक सूची से क्लास प्रॉपर्टी जोड़ता है।
  • एक बार जब कोई प्रॉपर्टी विवरण को अद्वितीय बना देती है, UFT यह और अधिक जोड़ना बंद कर देता है - यदि क्लास पहले से ही पर्याप्त है तो यह फ़ाइल नाम और ऊंचाई को छोड़ देता है, यदि फ़ाइल नाम की आवश्यकता थी तो ऊंचाई को छोड़ देता है, और इसी तरह।
  • मान लीजिए कि रिकॉर्डिंग के समय केवल क्लास प्रॉपर्टी ही रिकॉर्ड होती है। रन टाइम पर, UFT अब यह इस बात में भेद नहीं करता कि कौन सी प्रॉपर्टी अनिवार्य थीं और कौन सी सहायक थीं - यह बस सहेजे गए विवरण में प्रत्येक प्रॉपर्टी की तुलना रन-टाइम ऑब्जेक्ट से करता है।
  • यदि एक भी संग्रहित गुण मेल नहीं खाता है, तो यह चरण विफल हो जाता है - एक अद्वितीय विवरण बाइनरी होता है, न कि सर्वोत्तम प्रयास वाला मिलान।
पहलू अनिवार्य गुण सहायक गुण
जब संग्रहित किया जाता है हमेशा, उस वर्ग की प्रत्येक वस्तु के लिए केवल तभी जब अनिवार्य गुण एक अद्वितीय विवरण नहीं बना सकते।
कॉन्फ़िगर किया गया ऑब्जेक्ट पहचान संवाद, अनिवार्य सूची ऑब्जेक्ट आइडेंटिफिकेशन डायलॉग, असिस्टिव लिस्ट
उपयोग का क्रम सबसे पहले, बिना शर्त सीखा एक-एक करके तब तक जोड़ा जाता है जब तक कि वस्तु अद्वितीय न हो जाए।
रन-टाइम उपचार सहायक गुणों के समान तुलना की गई अनिवार्य गुणों के समान तुलना की गई

नीचे दिया गया वीडियो अनिवार्य बनाम सहायक कार्यप्रवाह की पूरी प्रक्रिया को विस्तार से समझाता है।

ऑब्जेक्ट आइडेंटिफिकेशन डायलॉग Box और ऑब्जेक्ट स्पाई

ऑब्जेक्ट आइडेंटिफिकेशन डायलॉग बॉक्स केवल एक व्यूअर नहीं है - यह वह जगह है जहाँ परीक्षक यह तय करता है कि कितनी आक्रामक तरीके से UFT यह पूरे वातावरण के लिए वस्तुओं की पहचान करता है। यहाँ किसी प्रॉपर्टी को पुनर्व्यवस्थित करने, जोड़ने या हटाने से उस वर्ग की प्रत्येक वस्तु के लिए आगे से सीखी जाने वाली जानकारी बदल जाती है, न कि केवल उस वस्तु के लिए जिसे वर्तमान में रिकॉर्ड किया जा रहा है। सामान्य कार्यप्रणाली इस प्रकार दिखती है:

  1. प्रारंभिक UFT और जाएं उपकरण > वस्तु पहचान.
  2. एक वातावरण चुनें (वेब, Windows, Javaड्रॉपडाउन से (और इसी तरह) चुनें।
  3. बाईं ओर दी गई सूची से वेबबटन या विनएडिट जैसी ऑब्जेक्ट क्लास का चयन करें।
  4. अनिवार्य और सहायक सूचियों के बीच प्रॉपर्टीज़ को स्थानांतरित करें, या सहायक सूची को पुनर्व्यवस्थित करके नियंत्रित करें कि कौन सी प्रॉपर्टी का उपयोग किया जाए। UFT पहले प्रयास करता है।
  5. पैनल के शीर्ष पर स्थित चेकबॉक्स का उपयोग करके उस कक्षा के लिए स्मार्ट पहचान को सक्षम या अक्षम करें।

यहां किए गए बदलाव अगली बार लागू होंगे UFT उस वर्ग की किसी वस्तु को सीखता है — ऑब्जेक्ट रिपॉजिटरी में पहले से सहेजी गई प्रविष्टियाँ तब तक अपना मूल विवरण बनाए रखती हैं जब तक कि वस्तु को दोबारा रिकॉर्ड या मैन्युअल रूप से अपडेट नहीं किया जाता है।

ऑब्जेक्ट स्पाई का उपयोग करके गुणों का निरीक्षण करना

अनिवार्य या सहायक सूची को संपादित करने से पहले, अधिकांश परीक्षक यह जांचते हैं कि किसी ऑब्जेक्ट के गुण वास्तव में कैसे दिखते हैं। ऑब्जेक्ट जासूसपरीक्षण के तहत एप्लिकेशन पर किसी भी नियंत्रण पर स्पाई कर्सर को इंगित करने से उसके परीक्षण-ऑब्जेक्ट और रन-टाइम गुण, साथ ही विधियाँ, साथ-साथ सूचीबद्ध हो जाते हैं। UFT इसका उपयोग किया जा सकता है - यह तब उपयोगी होता है जब कोई अनिवार्य प्रॉपर्टी बिल्ड के बीच बदलती रहती है और उसे किसी स्थिर प्रॉपर्टी से बदलने की आवश्यकता होती है।

क्रमसूचक पहचानकर्ता: अनुक्रमणिका, स्थान और निर्माण समय

कभी-कभी सभी अनिवार्य और सहायक गुणधर्मों के बावजूद भी दो या दो से अधिक वस्तुएँ एक जैसी दिखाई देती हैं — उदाहरण के लिए, एक ही नाम, वर्ग और लेबल वाले तीन चेकबॉक्स। ठीक इसी स्थिति के लिए UFT एक पर निर्भर करता है क्रमवाचक पहचानकर्ताएक बैकअप मान जो अन्यथा समान वस्तुओं को उनके गुणों के बजाय उनकी स्थिति के आधार पर क्रमबद्ध करता है।

साधारण पहचानकर्ता संपत्ति आदेश सौंपा गया प्र लागू होता है
सूची सूची मूल स्रोत कोड में ऑब्जेक्ट का क्रम 0 से शुरू होता है। कोई भी ऑब्जेक्ट क्लास
स्थान स्थान स्क्रीन पर ऊपर से नीचे, फिर बाएं से दाएं स्थिति, 0 से शुरू होकर कोई भी ऑब्जेक्ट क्लास
रचना समय रचना समय ब्राउज़र विंडो खुलने का क्रम, 0 से शुरू होता है केवल ब्राउज़र ऑब्जेक्ट

UFT यह केवल तभी एक क्रमसूचक पहचानकर्ता सीखता है जब अनिवार्य और सहायक गुण वास्तव में दो वस्तुओं को अलग नहीं कर सकते, क्योंकि मान सापेक्ष है और पृष्ठ लेआउट बदलने पर बदल सकता है, भले ही वस्तु स्वयं न बदली हो। नीचे दिया गया VBScript स्निपेट दो समान नाम वाले लिंक में से दूसरे पर क्लिक करने के लिए इंडेक्स का उपयोग करता है।

Dim objBrowser, objPage
Set objBrowser = Browser("title:=Guru99 Bank")
Set objPage = objBrowser.Page("title:=Guru99 Bank")
' Index:=1 clicks the second Link named "Manage Order" (index starts at 0)
objPage.Link("name:=Manage Order", "index:=1").Click

इंडेक्स और लोकेशन मान स्टेटमेंट में नामित ऑब्जेक्ट क्लास के लिए विशिष्ट होते हैं, इसलिए सूचकांक:=3 WebEdit पर सर्च करने पर केवल WebEdit ऑब्जेक्ट्स के बीच ही सर्च होता है, जबकि एक जेनेरिक WebElement पर समान वैल्यू पेज पर मौजूद हर वेब ऑब्जेक्ट में गिनी जाती है, चाहे उसका प्रकार कुछ भी हो।

स्मार्ट पहचान कहाँ उपयोगी साबित होती है?

वस्तु पहचान में UFT यह केवल विद्वतापूर्ण विवरण तक ही सीमित नहीं है। जब कोई अद्वितीय मिलान नहीं मिल पाता है, UFT यह प्रक्रिया एक निश्चित क्रम में चलती है: पहले यह सीखे गए अनिवार्य और सहायक गुणों की जाँच करती है, फिर किसी भी दृश्य संबंध पहचानकर्ता की, फिर स्मार्ट पहचान यदि उस वर्ग के लिए वह तंत्र सक्षम है, और केवल अंतिम उपाय के रूप में एक क्रमसूचक पहचानकर्ता का उपयोग किया जाता है।

स्मार्ट आइडेंटिफिकेशन जानबूझकर सीखे गए विवरण और क्रमसूचक पहचानकर्ता के बीच में स्थित होता है। यह किसी क्लास के मुख्य गुणों का उपयोग करके संभावित सूची का पुनर्निर्माण करता है और वैकल्पिक गुणों के साथ इसे संकुचित करता है, ताकि यह अक्सर किसी ऐसे ऑब्जेक्ट को पुनः प्राप्त कर सके जिसका सीखा गया विवरण टूट गया हो - उदाहरण के लिए, एक नाम बदला हुआ बटन - ऑब्जेक्ट रिपॉजिटरी को छुए बिना। चूंकि इस अतिरिक्त खोज चरण में समय लगता है, इसलिए अधिकांश टीमें इसे पहचान-कमजोर क्लासों के लिए सक्षम करती हैं और क्रमसूचक पहचानकर्ताओं पर केवल वहीं निर्भर करती हैं जहां स्थिति वास्तव में एकमात्र अंतर करने वाला कारक हो, जैसे कि बिना लेबल वाले रेडियो बटनों का समूह।

अक्सर पूछे जाने वाले प्रश्न

ऑब्जेक्ट रिपॉजिटरी प्रत्येक सीखे गए टेस्ट ऑब्जेक्ट और उसके सहेजे गए गुणों को संग्रहीत करती है। टूल्स > ऑब्जेक्ट आइडेंटिफिकेशन से खोली गई ऑब्जेक्ट आइडेंटिफिकेशन सेटिंग्स यह नियंत्रित करती हैं कि किन गुणों का उपयोग किया जाना चाहिए। UFT सबसे पहले, प्रत्येक ऑब्जेक्ट क्लास के लिए रिकॉर्ड को उस रिपॉजिटरी में दर्ज किया जाता है।

UFT यह प्रक्रिया दृश्य संबंध पहचानकर्ताओं, स्मार्ट पहचान और अंत में क्रमसूचक पहचानकर्ता के माध्यम से कार्य करती है। यदि इनमें से कोई भी मिलान नहीं देता है, तो रनटाइम पर यह चरण त्रुटि उत्पन्न कर देता है क्योंकि कोई भी ऑब्जेक्ट सभी संग्रहीत गुणों को संतुष्ट नहीं करता है।

हर उपलब्ध प्रॉपर्टी को रिकॉर्ड करने से ऑब्जेक्ट रिपॉजिटरी का आकार बढ़ जाएगा और स्क्रिप्ट का निष्पादन धीमा हो जाएगा। UFT इसके बजाय, यह प्रत्येक ऑब्जेक्ट क्लास के लिए एक छोटा, विशिष्ट सेट सहेजता है, और सहायक गुणों को केवल तभी जोड़ता है जब अनिवार्य गुण एक अद्वितीय विवरण नहीं बना सकते।

जी हां। एआई-सहायता प्राप्त उपकरण रिकॉर्डिंग से पहले स्थिर और कम अस्थिर गुणों का सुझाव देने के लिए प्रोडक्शन ट्रैफिक या डीओएम संरचना की समीक्षा कर सकते हैं, और उन ऑब्जेक्ट्स को चिह्नित कर सकते हैं जिनके अनिवार्य गुण बिल्ड के बीच अक्सर बदलते रहते हैं - परीक्षक फिर भी सुझावों को सत्यापित करते हैं।

पूरी तरह से नहीं। सेल्फ-हीलिंग लोकेटर नाम बदले गए या स्थानांतरित किए गए तत्वों से होने वाली विफलताओं को कम करते हैं, लेकिन ऑर्डिनल आइडेंटिफायर अभी भी उन वस्तुओं को हल करते हैं जो वास्तव में हर गुण में समान हैं, जैसे कि एक पंक्ति में कई बिना लेबल वाले चेकबॉक्स।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: