QTP / UFT में वर्णनात्मक प्रोग्रामिंग: गतिशील और amp; स्थिर

विषय - सूची:

Anonim

वर्णनात्मक प्रोग्रामिंग क्या है?

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

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

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

वीडियो हाइलाइट्स

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

वर्णनात्मक प्रोग्रामिंग के प्रकार

आप वर्णनात्मक प्रोग्रामिंग का उपयोग दो तरीकों से कर सकते हैं

  1. स्थिर
  2. गतिशील

स्टेटिक डिस्क्रिप्टिव प्रोग्रामिंग

स्थैतिक विधि में, वस्तु पहचान के लिए, आप निम्न प्रारूप में एक वस्तु की संपत्ति निर्दिष्ट करते हैं

संपत्ति: = मान,

इस प्रारूप को संपत्ति मूल्य जोड़ी कहा जाता है और उल्टे अल्पविराम> में संलग्न किया जाता है

यदि आपकी वस्तु पहचान के लिए कई विवरणों का उपयोग करती है , तो आप कॉमा > का उपयोग करने वालों को निर्दिष्ट कर सकते हैं

तो हमारे मामले में, एजेंट नाम के लिए विवरण बन जाता है

"nativeclass: = संपादित करें", "संलग्न पाठ: = एजेंट का नाम:"

गतिशील वर्णनात्मक प्रोग्रामिंग

समान क्रिया करने की दूसरी विधि डायनामिक वर्णनात्मक प्रोग्रामिंग का उपयोग कर रही है

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

ऐसे मामलों में, आप QTP द्वारा प्रदान किए गए विवरण वर्ग का उपयोग कर सकते हैं

वर्णन ऑब्जेक्ट बनाने के लिए सिंटैक्स है

सेट करें MyDescription = विवरण.Create ();MyDescription ("संपत्ति")। मूल्य = "संपत्ति-मूल्य";

यह डायनामिक तरीका है

वर्णनात्मक प्रोग्रामिंग का उपयोग क्यों करें?

वीडियो ट्रांसक्रिप्ट

  • मिलियन डॉलर का सवाल यह है कि डीपी का उपयोग क्यों किया जाए जब ऑब्जेक्ट आइडेंटिफिकेशन प्रक्रिया को क्यूटीपी द्वारा नियंत्रित किया जाता है
  • मान लीजिए कि आपको एक नौकरी पोर्टल का परीक्षण करने के लिए सौंपा गया है। आप पोर्टल में एक खोज क्वेरी दर्ज करते हैं और
  • आपकी परीक्षा आपको सभी उपलब्ध नौकरियों का चयन करने की उम्मीद करती है। और लागू नौकरी पर क्लिक करें
  • लेकिन परिलक्षित नौकरियों में से कोई भी स्क्रिप्ट के निष्पादन के समय उपलब्ध खोज क्वेरी और नौकरियों पर निर्भर करेगा, लेकिन अग्रिम में भविष्यवाणी करने का कोई तरीका नहीं है कि नौकरियों में से कोई भी प्रतिबिंबित नहीं होगा
  • ऐसे मामलों में, आप वर्णनात्मक प्रोग्रामिंग का उपयोग कर सकते हैं। भले ही आप चेकबॉक्स की संख्या और नाम नहीं जानते हैं, लेकिन आप ऑब्जेक्ट के लिए वर्ग को "वेबचेकबॉक्स" के रूप में जानते हैं।
  • आप किसी विशेष माता-पिता से संबंधित वस्तुओं को वापस करने के लिए चाइल्डऑब्जेक्ट पद्धति का उपयोग कर सकते हैं
  • कोड की एक पंक्ति जैसे -
    सभी ऑबजेक्ट्स सेट करें = ब्राउज़र ("जॉब्स")। पेज ("क्यूटीपी")। चाइल्ड ऑबजेक्ट्स ()
  • इस पृष्ठ के लिए सभी बाल वस्तुओं को वापस कर देंगे।
  • लेकिन हम केवल WebCheckBox ऑब्जेक्ट्स चाहते हैं। ऐसा करने के लिए हम एक फ़िल्टर निर्माण ऑब्जेक्ट बना सकते हैं और इसकी संपत्ति को वेब चेक बॉक्स के रूप में सेट कर सकते हैं और चाइल्डऑब्जेक्ट पद्धति के लिए इस फ़िल्टर को एक तर्क के रूप में पास कर सकते हैं
  • इस स्थिति में, केवल चेकबॉक्स वापस किए जाते हैं।
  • अगला, आप इस तरह एक कोड लिख सकते हैं जो शून्य से शुरू होने वाले चेकबॉक्स के पूरे संग्रह तक पहुंचते हैं और सभी चेकबॉक्स को चालू करते हैं।
  • अगला, आप परीक्षण को पूरा करने के लिए लागू बटन पर क्लिक कर सकते हैं
  • आप वस्तुओं को चलाने के लिए वर्णनात्मक प्रोग्रामिंग का भी उपयोग कर सकते हैं जो ऑटो-हाइड पैनल्स, बदलते पदानुक्रम के साथ ऑब्जेक्ट्स, नेस्टेड इनर ऑब्जेक्ट्स, सब-मेनू जैसे रिकॉर्ड करना मुश्किल है।
  • आप वर्णनात्मक प्रोग्रामिंग का उपयोग करके उन्नत स्ट्रिंग जोड़तोड़ भी कर सकते हैं
  • सूचकांक संपत्ति के संयोजन में, वर्णनात्मक प्रोग्रामिंग मुश्किल वस्तुओं की पहचान करने में बहुत उपयोगी हो सकता है।
  • यदि आप ऑब्जेक्ट पदानुक्रम में किसी ऑब्जेक्ट के लिए प्रोग्रामेटिक विवरण का उपयोग करते हैं, तो आपको चाइल्ड ऑब्जेक्ट्स को सफल करने के लिए विवरण प्रोग्रामिंग का उपयोग करने की आवश्यकता होगी
  • उदाहरण के लिए, पृष्ठ ऑब्जेक्ट के लिए, वर्णनात्मक प्रोग्रामिंग का उपयोग किया गया था, लेकिन सफल होने के लिए चाइल्ड ऑब्जेक्ट WinEdit ऑब्जेक्ट रिपोजिटरी है जो गलत है
  • पृष्ठ और WinEdit वर्णनात्मक प्रोग्रामिंग दोनों के लिए यहाँ इसके विपरीत का उपयोग किया जाता है जो सही है