क्रमसूचक पहचानकर्ता QTP/UFT: वस्तु पहचान उदाहरण

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

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

  • 🎯 अखिरी सहारा: UFT यह केवल तभी एक क्रमसूचक पहचानकर्ता जोड़ता है जब अनिवार्य और सहायक गुण किसी विवरण को अद्वितीय बनाने में विफल रहते हैं।
  • 🔢 सूचकांक: Numbers स्रोत-कोड क्रम के अनुसार एक ही वर्ग की वस्तुएं, 0 से शुरू होकर, इसलिए index:=3 चौथे मिलान को लक्षित करता है।
  • 📍 स्थान: Numbers विंडो, फ्रेम या डायलॉग के भीतर स्क्रीन पर वस्तुओं की स्थिति के अनुसार, ऊपर से नीचे और बाएं से दाएं क्रम में व्यवस्थित करें।
  • 🕒 रचना समय: यह केवल ब्राउज़र ऑब्जेक्ट पर लागू होता है और प्रत्येक ब्राउज़र इंस्टेंस के खुलने के क्रम को रिकॉर्ड करता है।
  • वस्तु पहचान: प्रत्येक परीक्षण ऑब्जेक्ट क्लास के लिए डिफ़ॉल्ट ऑर्डिनल प्रकार को टूल्स > ऑब्जेक्ट आइडेंटिफिकेशन के अंतर्गत संपादित किया जा सकता है।
  • Descriptलाइव प्रोग्रामिंग: ऑब्जेक्ट विवरण स्ट्रिंग के भीतर इंडेक्स, स्थान या निर्माण समय को एक सामान्य प्रॉपर्टी के रूप में पास करें।
  • ⚠️ नाजुकता: पेज लेआउट में बदलाव होने पर क्रमवाचक मान भी बदल जाते हैं, इसलिए इन्हें एक अस्थायी समाधान के रूप में मानें, न कि डिज़ाइन विकल्प के रूप में।

क्रमसूचक पहचानकर्ता QTP/UFT इंडेक्स, लोकेशन और क्रिएशनटाइम के साथ समझाया गया

ऑर्डिनल आइडेंटिफ़ायर क्या है? QTP/UFT?

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

डिफ़ॉल्ट रूप से, प्रत्येक परीक्षण ऑब्जेक्ट क्लास के लिए एक क्रमसूचक पहचानकर्ता प्रकार मौजूद होता है। WebEdit का क्रमांक WinButton से अलग होता है, और Browser का क्रमांक भी अलग होता है। आप ऑब्जेक्ट पहचान विंडो में किसी क्लास के डिफ़ॉल्ट क्रमसूचक पहचानकर्ता को देख या संशोधित कर सकते हैं।

क्रमसूचक पहचानकर्ता सेटिंग में QTP/UFT ऑब्जेक्ट पहचान विंडो

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

क्रमसूचक पहचानकर्ताओं के तीन प्रकार होते हैं UFT:

  1. सूचकांक आधारित
  2. स्थान आधारित
  3. रचना समय

क्यों UFT क्रमवाचक पहचानकर्ताओं का उपयोग केवल अंतिम उपाय के रूप में किया जाता है

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

उस रैंकिंग का कारण स्थिरता है। अनिवार्य और सहायक गुण वर्णन करते हैं। क्या किसी ऑब्जेक्ट में ये चीज़ें शामिल होती हैं: उसका नाम, उसका HTML टैग, उसका प्रकार और उसका लेबल। एक क्रमसूचक पहचानकर्ता केवल वर्णन करता है। जहां रिकॉर्डिंग के समय वस्तु संयोगवश वहीं स्थित थी। पृष्ठ संख्या में कोई भी परिवर्तन होने पर पृष्ठ संख्या भी बदल जाती है।

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

इनमें से कोई भी बदलाव नाम या आईडी पर आधारित विवरण को नहीं तोड़ता, लेकिन प्रत्येक बदलाव चुपचाप पृष्ठ पर मौजूद प्रत्येक इंडेक्स और स्थान मान को बदल देता है। यही कारण है कि अनुभवी इंजीनियर एक क्रमसूचक पहचानकर्ता को एक संकेत के रूप में देखते हैं कि वस्तु विवरण में सुधार की आवश्यकता है, न कि एक पूर्ण समाधान के रूप में। यही सिद्धांत सभी पर लागू होता है। स्वचालन परीक्षण लोकेटर रणनीति सहित सामान्यतः फ्रेमवर्क में Selenium.

💡टिप: किसी ऑर्डिनल आइडेंटिफ़ायर को स्वीकार करने से पहले, ऑब्जेक्ट स्पाई में ऑब्जेक्ट खोलें और एक स्थिर कस्टम एट्रिब्यूट खोजें। उस एट्रिब्यूट को क्लास के लिए सहायक प्रॉपर्टी सूची में जोड़ने से अक्सर उस प्रकार के प्रत्येक भविष्य के ऑब्जेक्ट पर ऑर्डिनल की आवश्यकता समाप्त हो जाती है।

क्रमसूचक पहचानकर्ताओं के प्रकार UFT/QTP

सूचकांक आधारित

  • जब किसी इंडेक्स आधारित क्रमसूचक पहचानकर्ता का उपयोग किया जाता है, UFT किसी को मान निर्दिष्ट करता है अनुक्रमणिका रिकॉर्डिंग के दौरान ऑब्जेक्ट का गुणधर्म।
  • यह मान स्रोत कोड में वस्तु के प्रकट होने के क्रम पर आधारित है, न कि स्क्रीन पर।
  • पहली घटना का मान 0 है।
  • इंडेक्स प्रॉपर्टी के मान ऑब्जेक्ट-विशिष्ट होते हैं, इसलिए प्रत्येक परीक्षण ऑब्जेक्ट क्लास को अलग से गिना जाता है।
  • इसलिए, यदि आप WebEdit टेस्ट ऑब्जेक्ट का वर्णन करने के लिए index:=3 का उपयोग करते हैं, UFT यह पेज पर मौजूद चौथे WebEdit ऑब्जेक्ट को खोजता है।
  • इसी प्रकार, यदि आप WebButton टेस्ट ऑब्जेक्ट का वर्णन करने के लिए index:=1 का उपयोग करते हैं, UFT यह पेज पर मौजूद दूसरे वेबबटन ऑब्जेक्ट को खोजता है।

स्थान आधारित

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

रचना समय

  • जब निर्माण समय क्रमसूचक पहचानकर्ता का उपयोग किया जाता है, UFT किसी को मान निर्दिष्ट करता है रचना समय ब्राउज़र ऑब्जेक्ट की प्रॉपर्टी।
  • यह पहचानकर्ता केवल वेब वातावरण और केवल ब्राउज़र परीक्षण ऑब्जेक्ट के लिए उपलब्ध है।
  • यह मान अन्य खुले ब्राउज़रों के सापेक्ष ब्राउज़र के खुलने के क्रम को दर्शाता है।
  • रन के दौरान खोले गए पहले ब्राउज़र को creationtime:=0 प्राप्त होता है, और उसके बाद के ब्राउज़रों को 1, 2, 3, इत्यादि प्राप्त होते हैं।
  • यदि कोई ब्राउज़र बंद हो जाता है, तो शेष ब्राउज़रों को पुनः क्रमांकित करने के बजाय उनके मूल मानों को बनाए रखा जाता है।

इंडेक्स बनाम स्थान बनाम निर्माण समय: तुलनात्मक तालिका

ये तीनों पहचानकर्ता तीन अलग-अलग सवालों के जवाब देते हैं, और गलत पहचानकर्ता का चयन रुक-रुक कर होने वाली विफलताओं का एक आम कारण है।

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

ऑब्जेक्ट रिपॉजिटरी में ऑर्डिनल आइडेंटिफायर कैसे सेट करें

क्रमसूचक पहचानकर्ता को प्रत्येक परीक्षण ऑब्जेक्ट वर्ग के लिए कॉन्फ़िगर किया जाता है, और यह उस वर्ग के प्रत्येक ऑब्जेक्ट पर स्वचालित रूप से लागू होता है। UFT यह बाद में सीखता है। रिपॉजिटरी में पहले से मौजूद ऑब्जेक्ट्स को पूर्वव्यापी रूप से अपडेट नहीं किया जाता है।

  1. प्रारंभिक UFT का चयन करें और उपकरण > वस्तु पहचान.
  2. वातावरण चुनें, उदाहरण के लिए वेब या स्टैंडर्ड Windowsपर्यावरण ड्रॉप-डाउन से।
  3. उस टेस्ट ऑब्जेक्ट क्लास का चयन करें जिसे आप बदलना चाहते हैं, जैसे कि WebEdit या WinButton।
  4. में क्रमसूचक पहचानकर्ता सेक्शन में, इंडेक्स, लोकेशन, क्रिएशनटाइम या नन चुनें।
  5. क्लिक करें OK और ऑब्जेक्ट को दोबारा सीखें ताकि नया क्रमवाचक मान प्राप्त हो सके।
  6. ऑब्जेक्ट रिपॉजिटरी खोलें, ऑब्जेक्ट का चयन करें और पुष्टि करें कि अब विवरण सूची में ऑर्डिनल प्रॉपर्टी दिखाई दे रही है।

चुनना कोई नहीं उस क्लास के लिए फ़ॉलबैक को पूरी तरह से निष्क्रिय कर देता है। UFT तब यह अनुमान लगाने के बजाय पहचान त्रुटि उत्पन्न करेगा, जो अक्सर ऐसे सूट में वांछित व्यवहार होता है जहां मौन गलत पहचान स्पष्ट विफलता से अधिक हानिकारक होती है। अपनी अपेक्षाओं को अच्छी तरह से लिखित रूप में दर्ज करें। परीक्षण का मामला यह समझौता पूरी टीम के लिए स्पष्ट कर देता है।

⚠️ चेतावनी: किसी क्लास के लिए क्रमसूचक पहचानकर्ता को बदलना मशीन-स्तर की सेटिंग है, न कि परीक्षण-स्तर की। यदि इसे निर्यात और साझा नहीं किया जाता है, तो आपकी मशीन पर सफलतापूर्वक चलने वाली स्क्रिप्ट किसी सहकर्मी की मशीन या बिल्ड एजेंट पर विफल हो सकती हैं।

क्रमसूचक पहचानकर्ताओं का उपयोग कैसे करें Descriptive प्रोग्रामिंग

वर्णनात्मक प्रोग्रामिंग में ऑब्जेक्ट पहचान संवाद नहीं होता है। क्रम संख्या को सीधे विवरण स्ट्रिंग में लिखा जाता है, ठीक वैसे ही जैसे किसी अन्य प्रॉपर्टी नाम को लिखा जाता है, और यह हमेशा शून्य-आधारित होता है।

' Ordinals are zero based: index:=3 is the FOURTH WebEdit on the page
Set objPage = Browser("Guru99 Bank").Page("Guru99 Bank")

objPage.WebEdit("index:=3").Set "9999999999"
Print "Filled WebEdit occurrence #" & (3 + 1)

' Location is counted top to bottom, then left to right
objPage.WebButton("location:=1").Click
Print "Clicked WebButton occurrence #" & (1 + 1)

' CreationTime works only on Browser objects
Print "Switching to browser opened at position #" & (1 + 1)
Browser("creationtime:=1").Sync

आउटपुट:

Filled WebEdit occurrence #4
Clicked WebButton occurrence #2
Switching to browser opened at position #2

एक सुरक्षित तरीका यह है कि अचल संपत्तियों को इनके साथ संयोजित किया जाए। ChildObjects इसलिए उपयोग करने से पहले क्रम संख्या का सत्यापन किया जाता है। नीचे दिए गए उदाहरण में एक ऐसे पृष्ठ को माना गया है जिसमें पाँच मेल खाने वाले WebEdit ऑब्जेक्ट हैं और इंडेक्स 9 है।

Dim oDesc, oChildren, intIndex

Set oDesc = Description.Create()
oDesc("micclass").Value = "WebEdit"
oDesc("html tag").Value = "INPUT"

Set oChildren = objPage.ChildObjects(oDesc)
intIndex = 9

If intIndex < oChildren.Count Then
    oChildren(intIndex).Set "Guru99"
Else
    Print "Index " & intIndex & " is out of range; only " & oChildren.Count & " objects match"
End If

आउटपुट:

Index 9 is out of range; only 5 objects match

यह सुरक्षा उपाय "ऑब्जेक्ट की पहचान नहीं की जा सकती" जैसी अनुपयोगी रनटाइम त्रुटि को एक पठनीय संदेश में बदल देता है, जो किसी दोष के लिए परिणाम प्रकाशित करते समय महत्वपूर्ण होता है। tracकेर या को एचपी एएलएम एकीकृत के साथ UFT.

क्रमवाचक पहचानकर्ताओं का उपयोग करते समय होने वाली सामान्य गलतियाँ

अधिकांश क्रमवाचक-संबंधी दोष tracहम बार-बार होने वाली कुछ छोटी त्रुटियों पर वापस आते हैं।

  • 1 से गिनती शुरू करते हुए। प्रत्येक क्रमसूचक पहचानकर्ता 0 से शुरू होता है। पहले फ़ील्ड के लिए index:=1 लिखना सबसे आम गलती है और इससे एक त्रुटि उत्पन्न होती है जो समय संबंधी समस्या जैसी दिखती है।
  • इंडेक्स को लोकेशन से भ्रमित करना। इंडेक्स सोर्स कोड के बाद आता है; लोकेशन स्क्रीन के बाद आती है। जिस पेज पर CSS एलिमेंट्स को रीऑर्डर करता है, वहां ये दोनों वैल्यू अलग-अलग होती हैं और आपस में बदल जाती हैं।ping वे चुपचाप गलत नियंत्रण को निशाना बनाते हैं।
  • वेब वातावरण के बाहर क्रिएशनटाइम का उपयोग करना। यह प्रॉपर्टी केवल Browser ऑब्जेक्ट पर ही मौजूद होती है। इसे Page, Frame या Window ऑब्जेक्ट पर लागू करने पर असमर्थित प्रॉपर्टी त्रुटि उत्पन्न होती है।
  • किसी साझा फ़ंक्शन में क्रम संख्या को हार्ड-कोड करना। एक पुन: प्रयोज्य फ़ंक्शन जो इंडेक्स := 2 मानता है, उस क्षण अनुपयोगी हो जाता है जब एक अलग लेआउट वाली दूसरी स्क्रीन उसे कॉल करती है।
  • एप्लिकेशन के स्थिर हो जाने के बाद भी ऑर्डिनल्स को रिपॉजिटरी में छोड़ देना। एक बार जब डेवलपर स्थिर आईडी जोड़ देते हैं, तो ऑब्जेक्ट्स पर दोबारा विचार करें और क्रम संख्या को नई प्रॉपर्टी से बदल दें।
  • ग्रिड पर लूप के भीतर क्रमवाचक संख्याओं पर निर्भर रहना। पसंद करते हैं ChildObjectsजो एक लाइव संग्रह लौटाता है, इसलिए गिनती रिकॉर्ड किए गए पृष्ठ के बजाय वर्तमान पृष्ठ को दर्शाती है।

संसाधन

ऊपर दिए गए ट्यूटोरियल में उपयोग किए गए वेबपेजों को स्व-अभ्यास के लिए डाउनलोड करें।

क्रमसूचक पहचानकर्ता वस्तु पहचान मॉडल का एक छोटा सा हिस्सा हैं। यह व्यापक कार्यप्रवाह में कैसे फिट होते हैं, यह देखने के लिए पूर्ण प्रक्रिया को आगे पढ़ें। QTP/UFT प्रशिक्षण श्रृंखलाबुनियादी बातों की समीक्षा करें सॉफ्टवेयर परिक्षणजानिए कि परिणामों का प्रबंधन कैसे किया जाता है एचपी एएलएम ट्यूटोरियलऔर लोकेटर रणनीतियों की तुलना करें Selenium ट्यूटोरियल.

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

डिफ़ॉल्ट मान क्लास के अनुसार भिन्न होता है। WebEdit और WebButton जैसे अधिकांश वेब टेस्ट ऑब्जेक्ट का डिफ़ॉल्ट मान Index होता है, Browser ऑब्जेक्ट का डिफ़ॉल्ट मान CreationTime होता है, और Standard होता है। Windows क्लास डिफ़ॉल्ट रूप से लोकेशन पर सेट होती हैं। प्रत्येक डिफ़ॉल्ट मान ऑब्जेक्ट आइडेंटिफिकेशन विंडो में दिखाई देता है और संपादन योग्य होता है।

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

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

थोड़ा। UFT अनुरोधित स्थिति तक गिनने से पहले क्लास की प्रत्येक वस्तु को सूचीबद्ध करना आवश्यक है, इसलिए सैकड़ों समान नियंत्रणों वाले पृष्ठों को एक अद्वितीय नाम या आईडी पर आधारित विवरण की तुलना में हल होने में अधिक समय लगता है।

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

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

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

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