Descriptलाइव प्रोग्रामिंग में QTP/UFT: गतशील स्थैतिक
एचएमबी क्या है? Descriptive प्रोग्रामिंग?
Descriptive प्रोग्रामिंग का उपयोग AUT में किसी ऑब्जेक्ट पर ऑपरेशन निष्पादित करने के लिए किया जाता है जिसकी परिभाषा ऑब्जेक्ट रिपॉजिटरी में संग्रहीत नहीं है। इस तंत्र का उपयोग करके, आप ऑब्जेक्ट रिपॉजिटरी से पहचान को बायपास कर सकते हैं और ऑब्जेक्ट की आपूर्ति कर सकते हैं Descriptबयान में ही इसका उल्लेख किया गया है।
ऑब्जेक्ट नाम का उपयोग स्क्रिप्ट में मौजूद ऑब्जेक्ट को ऑब्जेक्ट रिपोजिटरी में मौजूद उसके विवरण के साथ मैप करने के लिए किया जाता है। इसका मतलब है कि अगर आप अपनी स्क्रिप्ट और ऑब्जेक्ट रिपॉजिटरी में ऑब्जेक्ट का नाम बदलते हैं, तो स्क्रिप्ट चलनी चाहिए। इस अवधारणा पर निम्न वीडियो देखें
क्लिक करें यहाँ उत्पन्न करें यदि वीडियो उपलब्ध न हो
वीडियो हाइलाइट्स
- ऑब्जेक्ट हटाएँ Descriptएजेंट का नाम जीत संपादित करें Box ऑब्जेक्ट रिपॉजिटरी से। यदि आप परीक्षण को फिर से चलाते हैं तो यह विफल हो जाएगा क्योंकि यह ऑब्जेक्ट को पहचान नहीं सकता है। आइए इस बात की जांच करें कि स्क्रिप्ट क्यों विफल हो रही है
- रन टाइम के दौरान, माइक्रो फोकस UFT यह WinEdit बॉक्स और ऑब्जेक्ट पर किए गए ऑपरेशन की पहचान करता है। Descriptऑब्जेक्ट रिपॉजिटरी में आयन को एजेंट नाम के रूप में संग्रहीत किया जाता है। यह इस नाम का उपयोग करता है। track ऑब्जेक्ट रिपॉजिटरी में ऑब्जेक्ट है। एक पैरेंट ऑब्जेक्ट के लिए, एक ही नाम के दो चाइल्ड ऑब्जेक्ट नहीं हो सकते। इसलिए, QTP यह रिपॉजिटरी में मौजूद ऑब्जेक्ट को विशिष्ट रूप से मैप करता है। फिर यह ऑब्जेक्ट रिपॉजिटरी में संग्रहीत विवरण का उपयोग करता है और नाम को विवरण से बदल देता है। इसके बाद यह इस कथन का उपयोग परीक्षण के तहत एप्लिकेशन में ऑब्जेक्ट की पहचान करने के लिए करता है।
- चूंकि हमारे मामले में हमने इस ऑब्जेक्ट विवरण को पूरी तरह से हटा दिया था, इसलिए स्क्रिप्ट विफल हो गई
- लेकिन क्या होगा अगर इसके बजाय QTP ऑब्जेक्ट विवरण को प्रतिस्थापित करने के बजाय, आप एक परीक्षक के रूप में सीधे अपनी स्क्रिप्ट में ऑब्जेक्ट विवरण निर्दिष्ट करते हैं। यह और कुछ नहीं बल्कि "Descriptive प्रोग्रामिंग”
के प्रकार Descriptive प्रोग्रामिंग
आप का उपयोग कर सकते हैं Descriptमैंने दो तरह से प्रोग्रामिंग की है
- स्थिर
- गतिशील
स्थिर Descriptive प्रोग्रामिंग
स्थैतिक विधि में, ऑब्जेक्ट की पहचान के लिए, आप किसी ऑब्जेक्ट के गुण को निम्न प्रारूप में निर्दिष्ट करते हैं
property:=values,
इस प्रारूप को संपत्ति मान युग्म कहा जाता है और इसे उल्टे अल्पविरामों में संलग्न किया जाता है
यदि आपका ऑब्जेक्ट उपयोग करता है पहचान के लिए कई विवरण, आप उन्हें अल्पविराम का उपयोग करके निर्दिष्ट कर सकते हैं
तो हमारे मामले में, एजेंट नाम का विवरण बन जाता है
"nativeclass:=Edit", "attached text:=Agent Name:"
गतिशील Descriptive प्रोग्रामिंग
वही कार्य करने की दूसरी विधि डायनामिक का उपयोग करना है Descriptive प्रोग्रामिंग
यदि आपकी स्क्रिप्ट वर्णनात्मक प्रोग्रामिंग ऑब्जेक्ट कैंडिडेट का कई बार उपयोग करती है, तो प्रत्येक कथन के लिए सभी प्रॉपर्टी वैल्यू जोड़े निर्दिष्ट करना बहुत थकाऊ होगा
ऐसे मामलों में, आप इसका उपयोग कर सकते हैं Descriptआयन वर्ग द्वारा प्रदान की QTP
वाक्य रचना विवरण ऑब्जेक्ट बनाने के लिए है
Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";
यह वह जगह है गतिशील विधि
क्यों का उपयोग करें Descriptive प्रोग्रामिंग?
वीडियो ट्रांसक्रिप्ट
- सबसे बड़ा सवाल यह है कि जब ऑब्जेक्ट आइडेंटिफिकेशन प्रक्रिया को संभाला जा रहा है तो डीपी का उपयोग क्यों किया जाए। QTP
- मान लीजिए आपको एक जॉब पोर्टल का परीक्षण करने का काम सौंपा गया है। आप पोर्टल में एक खोज क्वेरी दर्ज करते हैं और
- आपके परीक्षण में आपसे सभी उपलब्ध नौकरियों का चयन करने और नौकरी के लिए आवेदन करें पर क्लिक करने की अपेक्षा की जाती है
- लेकिन दिखाई देने वाली नौकरियों की संख्या खोज क्वेरी और स्क्रिप्ट निष्पादन के समय उपलब्ध नौकरियों पर निर्भर करेगी, लेकिन पहले से यह अनुमान लगाने का कोई तरीका नहीं है कि दिखाई देने वाली नौकरियों की संख्या कितनी होगी
- ऐसे मामलों में, आप वर्णनात्मक प्रोग्रामिंग का उपयोग कर सकते हैं। भले ही आपको चेकबॉक्स की संख्या और नाम नहीं पता हो, लेकिन आप ऑब्जेक्ट के लिए क्लास जानते हैं जैसे "WebCheckBox"
- आप का उपयोग कर सकते हैं चाइल्डऑब्जेक्ट विधि किसी विशेष पैरेंट से संबंधित ऑब्जेक्ट्स को वापस करने के लिए
- कोड की एक पंक्ति जैसे –
Set allObjects = Browser("Jobs").Page("QTP").ChildObjects() - इस पृष्ठ के लिए सभी चाइल्ड ऑब्जेक्ट्स लौटाएगा.
- लेकिन हम केवल WebCheck चाहते हैंBox ऑब्जेक्ट्स। ऐसा करने के लिए हम एक फ़िल्टर निर्माण ऑब्जेक्ट बना सकते हैं और इसकी प्रॉपर्टी को वेब चेक बॉक्स के रूप में सेट कर सकते हैं और इस फ़िल्टर को चाइल्डऑब्जेक्ट्स विधि के लिए एक तर्क के रूप में पास कर सकते हैं
- इस स्थिति में, केवल चेकबॉक्स ही लौटाए जाते हैं।
- इसके बाद, आप इस तरह का कोड लिख सकते हैं जो शून्य से शुरू करके चेकबॉक्स के संपूर्ण संग्रह तक पहुंचता है और सभी चेकबॉक्स को चालू कर देता है।
- इसके बाद, आप परीक्षण पूरा करने के लिए आवेदन बटन पर क्लिक कर सकते हैं
- आप भी उपयोग कर सकते हैं Descriptउन वस्तुओं को चलाने के लिए प्रोग्रामिंग करना जिन्हें रिकॉर्ड करना कठिन है जैसे ऑटो-हाइड पैनल्स, बदलती पदानुक्रम वाली वस्तुएं, नेस्टेड इनर ऑब्जेक्ट्स, सब-मेन्यूज़।
- आप वर्णनात्मक प्रोग्रामिंग का उपयोग करके उन्नत स्ट्रिंग हेरफेर भी कर सकते हैं
- इंडेक्स प्रॉपर्टी के साथ संयोजन में, वर्णनात्मक प्रोग्रामिंग कठिन वस्तुओं की पहचान करने में बहुत उपयोगी हो सकती है।
- यदि आप ऑब्जेक्ट पदानुक्रम में किसी ऑब्जेक्ट के लिए प्रोग्रामेटिक विवरण का उपयोग करते हैं, तो आपको बाद के चाइल्ड ऑब्जेक्ट के लिए विवरण प्रोग्रामिंग का उपयोग करना होगा
- उदाहरण के लिए, पेज ऑब्जेक्ट के लिए, वर्णनात्मक प्रोग्रामिंग का उपयोग किया गया था लेकिन बाद के चाइल्ड ऑब्जेक्ट के लिए WinEdit ऑब्जेक्ट रिपॉजिटरी का उपयोग किया गया है जो गलत है
- इसके विपरीत, पेज और विनएडिट दोनों के लिए वर्णनात्मक प्रोग्रामिंग का उपयोग किया गया है जो सही है
