अभिकथन में SoapUIस्क्रिप्ट, XQuery, XPath प्रकार
⚡ स्मार्ट सारांश
अभिकथन में SoapUI ये वे चेकपॉइंट हैं जो यह तय करते हैं कि वेब सेवा की प्रतिक्रिया सही है या नहीं, जिससे केवल निष्पादित होने वाले अनुरोध को एक ऐसे परीक्षण में बदल दिया जाता है जो वास्तविक, सत्यापन योग्य सामग्री पर वास्तव में सफल या असफल होता है।

अभिकथन क्या है?
अभिकथन का अर्थ है किसी बात की पुष्टि करना या बताना। इसे चेक पॉइंट या सत्यापन बिंदु के रूप में भी समझा जा सकता है।
वेब सर्वर पर अनुरोध भेजे जाने के बाद एक प्रतिक्रिया प्राप्त होती है। हमें यह सत्यापित करने की आवश्यकता है कि प्रतिक्रिया में अपेक्षित डेटा शामिल है या नहीं। प्रतिक्रिया को सत्यापित करने के लिए, हमें अभिकथन (असर्टशन) का उपयोग करना होगा। अभिकथन के बिना, परीक्षण चरण केवल यह सिद्ध करता है कि सेवा ने उत्तर दिया, यह नहीं कि उसने सही उत्तर दिया, यही कारण है कि प्रत्येक एपीआई परीक्षण कम से कम एक साथ रखना चाहिए।
अभिकथन के प्रकार
प्रतिक्रिया व्यक्त करने के कई तरीके हैं; हालाँकि, हम आमतौर पर इस्तेमाल किए जाने वाले तरीकों पर ध्यान केंद्रित करेंगे। SoapUI प्रतिक्रिया को मान्य करते समय अभिकथन प्रकार। नीचे वे श्रेणियां दी गई हैं जो ओपन सोर्स संस्करण में उपलब्ध हैं। SoapUI.
- संपत्ति सामग्री
- अनुपालन स्थिति मानक
- लिपि
- एसएलए
- जेएमएस
- सुरक्षा
नीचे दिए गए स्क्रीनशॉट में दिखाए अनुसार, संवाद बॉक्स प्रत्येक कथन को उन श्रेणियों के अंतर्गत समूहित करता है।

ऊपर सूचीबद्ध सुविधाओं के अलावा, प्रो संस्करण में एक अंतर्निहित जेडीबीसी असर्शन भी है जिसका उपयोग करके हम यह सुनिश्चित कर सकते हैं कि वेब सेवा ने डेटाबेस को सही ढंग से अपडेट किया है या नहीं।
संस्करण नोट: वर्तमान SoapUI दस्तावेज़ में यह भी सूचीबद्ध है जेडीबीसी उपरोक्त श्रेणियों के साथ-साथ एक श्रेणी (जेडीबीसी स्थिति और जेडीबीसी टाइमआउट) और एक संदेश की सामग्री बेहतर XML तुलना के लिए प्रॉपर्टी कंटेंट के अंदर अभिकथन। यहाँ "प्रो" के रूप में संदर्भित वाणिज्यिक संस्करण अब बेचा जाता है। ReadyAPI यह SmartBear द्वारा निर्मित है, इसलिए नए संस्करणों में मेनू लेबल अलग तरह से दिखाई दे सकते हैं जबकि अभिकथन का व्यवहार समान रहता है।
इसमें अभिकथन शामिल है
निर्दिष्ट स्ट्रिंग के अस्तित्व की खोज करता है। यह नियमित अभिव्यक्ति का भी समर्थन करता है।
हम WSDL अनुरोध के साथ पिछले ट्यूटोरियल से समान उदाहरण जारी रखेंगे http://www.dneonline.com/calculator.asmxयदि आपने अभी तक वह प्रोजेक्ट नहीं बनाया है, तो उस पर काम करें। प्रोजेक्ट, टेस्ट सूट और टेस्ट केस बनाना पहले।
चरण 1: डिफ़ॉल्ट रूप से कोई अभिकथन नहीं होते हैं।
- अभिकथनों की संख्या अभिकथन टैब में दर्शाई गई है।
- नया अभिकथन जोड़ने के लिए 'नया अभिकथन जोड़ें' बटन पर क्लिक करें।
चरण 2: अब,
- अभिकथन श्रेणी का चयन करें.
- अभिकथन प्रकार का चयन करें.
- 'जोड़ें' पर क्लिक करें
चरण 3: आइए जाँच करें कि प्रतिक्रिया में स्ट्रिंग '46' मौजूद है या नहीं। 'ओके' पर क्लिक करें।
नोट: हम केस को अनदेखा भी कर सकते हैं और नियमित अभिव्यक्ति भी जोड़ सकते हैं।
चरण 4: इसे जोड़ने पर, तुरंत अभिकथन निष्पादित होता है और दिखाता है कि यह मान्य है या अमान्य।
चरण 5: अब मान लीजिए कि हम 'Contains Assertion in' की सामग्री को बदलते हैं। SoapUI' को '47' में बदलें और देखें क्या होता है।
चरण 6: अभिकथन निष्पादित होता है और परिणाम उपयोगकर्ता को भेज दिया जाता है। चूंकि प्रतिक्रिया में '47' स्ट्रिंग मौजूद नहीं है, इसलिए अभिकथन विफल हो गया है।
इसमें अभिकथन शामिल नहीं है
इसका दूसरा भाग ठीक इसके विपरीत काम करता है। यह निर्दिष्ट स्ट्रिंग के अस्तित्वहीन होने की खोज करता है। यह रेगुलर एक्सप्रेशन को भी सपोर्ट करता है।
चरण 1: अब 'नए अभिकथन जोड़ें' बटन पर क्लिक करने के बाद,
- अभिकथन श्रेणी का चयन करें.
- अभिकथन प्रकार का चयन करें – इस मामले में 'इसमें शामिल नहीं है'
- 'जोड़ें' पर क्लिक करें
चरण 2: आइए जाँच करें कि प्रतिक्रिया में 'intA' स्ट्रिंग मौजूद है या नहीं। 'FromCurrency' स्ट्रिंग दर्ज करें और 'ओके' पर क्लिक करें।
चरण 3: जैसे ही कोई अभिकथन जोड़ा जाता है, वह निष्पादित होता है और परिणाम प्रदर्शित करता है। अब तक हमने दो अभिकथन जोड़े हैं, इसलिए दोनों अभिकथन निष्पादित हुए हैं और परिणाम प्रदर्शित हुए हैं।
चरण 4: अब आइए 'Not Contains Assertion' की सामग्री को बदलें और देखें कि क्या होता है। हम "AddResult" स्ट्रिंग के अस्तित्वहीन होने की जाँच करेंगे।
चरण 5: 'AddResult' स्ट्रिंग वास्तव में प्रतिक्रिया में मौजूद है, इसलिए 'NOT Contains' अभिकथन विफल हो जाएगा जैसा कि नीचे दिखाया गया है।
XPath मिलान अभिकथन
स्ट्रिंग मिलान सटीक नहीं है, इसलिए अगला अभिकथन इसके बजाय एक नोड को लक्षित करता है। लक्ष्य नोड और उसके मानों का चयन करने के लिए XPath अभिव्यक्ति का उपयोग किया जाता है। एक्सपाथयह एक XML क्वेरी भाषा है जिसका उपयोग XML दस्तावेज़ से नोड्स का चयन करने के लिए किया जाता है।
चरण 1: अब 'Add New Assertions' बटन पर क्लिक करने के बाद,
- अभिकथन श्रेणी का चयन करें.
- अभिकथन प्रकार का चयन करें - इस मामले में 'XPath मिलान'
- 'जोड़ें' पर क्लिक करें
चरण 2: XPath विंडो खुलती है।
जोड़ने से पहले SoapUI XPath में, हमें नेमस्पेस घोषित करना होता है। XML नेमस्पेस नामों का एक संग्रह है, जिसे यूनिफॉर्म रिसोर्स आइडेंटिफायर (URI) संदर्भ द्वारा पहचाना जाता है, और XML दस्तावेज़ों में इनका उपयोग तत्व और विशेषता नामों के रूप में किया जाता है। इसी का उपयोग XML में भी किया जाता है। SoapUI XPath अभिकथन।
XML नेमस्पेस घोषित करने के लिए, हमें बस 'घोषित करें' बटन पर क्लिक करना होगा, जो हमारे लिए काम कर देगा, अन्यथा हम स्वयं भी मैन्युअल रूप से एक नेमस्पेस घोषित कर सकते हैं।
नेमस्पेस घोषित करने के बाद, हमें बनाए गए नेमस्पेस का उपयोग करके XPath को संदर्भित करने की आवश्यकता होती है।
'घोषणा करें' बटन पर क्लिक करने पर, दो नेमस्पेस दिखाई देंगे क्योंकि हमारे पास दो URI हैं। इनमें से एक स्कीमा है। URL और दूसरा वास्तविक वेब सेवा से मेल खाता है। URLXPath का संदर्भ देते समय हमें वेब सेवा स्थित वास्तविक नेमस्पेस का उपयोग करना चाहिए, न कि स्कीमा नेमस्पेस का। घोषित पंक्तियाँ XPath बॉक्स के शीर्ष पर दिखाई देती हैं, जैसा कि नीचे दिखाया गया है।
नामस्थान साबुन घोषित करें='http://schemas.xmlsoap.org/soap/envelope/';
नामस्थान ns1='http://tempuri.org/' घोषित करें;
चरण 3: अब हमें उस XML नोड का XPath दर्ज करना होगा जिसे हमें मान्य करना है।
//ns1:AddResult हमें बीच में संलग्न नोड का मान देता है और और ns1 घोषित नामस्थान से मेल खाता है जो 'http://tempuri.org/' की ओर इशारा करता है
XML दर्ज करने के बाद, हमें 'वर्तमान से चयन करें' पर क्लिक करना होगा ताकि आगे तुलना के लिए वर्तमान प्रतिक्रिया से मान उठाया जा सके।
चरण 4: अब तक,
- नामस्थान घोषित करने के बाद, हमने उस XML नोड का XPath प्रविष्ट कर दिया है जिसे हमें सत्यापित करना है।
- वर्तमान मान को अपेक्षित मान बनाने के लिए हमें 'वर्तमान से चयन करें' पर क्लिक करना होगा।
- वर्तमान मान उपयोगकर्ता को दिखाया जाता है जिसे हम आवश्यकता पड़ने पर संशोधित कर सकते हैं।
- 'सहेजें' पर क्लिक करें।
चरण 5: इसमें जोड़ा गया अभिकथन SoapUI नीचे दिखाए अनुसार प्रदर्शित किया जाएगा।
स्क्रिप्टिंग अभिकथन
यह अभिकथन तकनीक सबसे व्यापक रूप से प्रयोग की जाने वाली तकनीक है, क्योंकि सैकड़ों अभिकथनों का प्रबंधन और रखरखाव करना अत्यंत कठिन है।
SoapUI या तो उपयोग करता है Groovy स्क्रिप्टिंग या Javaलिपि स्क्रिप्टिंग अभिकथन के लिए। विकास के लिए स्क्रिप्टिंग तकनीक को अपनाया जाता है।ping SOAP परीक्षण के लिए एक फ्रेमवर्क। स्क्रिप्टिंग अभिकथन का उपयोग निम्नलिखित परिस्थितियों में किया जाता है।
- स्क्रिप्टिंग की मदद से उपयोगकर्ता टेस्ट केस को निष्पादित करने से पहले और बाद में सेटअप और टियर डाउन विधियों का उपयोग करके कुछ ऑपरेशन कर सकता है। सेटअप एक प्रक्रिया है जो किसी विशेष विधि को निष्पादित करने से पहले निष्पादित होती है (उदाहरण - ऑब्जेक्ट निर्माण और आरंभीकरण), जबकि टियर डाउन एक प्रक्रिया है जो विधि को निष्पादित करने के बाद निष्पादित होती है (जैसे: ऑब्जेक्ट को नष्ट करना और सफाई करना)। यह सुविधा अन्य अभिकथन प्रकारों में उपलब्ध नहीं है और इसे केवल कोडिंग के माध्यम से ही किया जा सकता है।
- यह उपयोगकर्ताओं को प्रोजेक्ट खोलने/बंद करने, प्रोजेक्ट से संबंधित सेटिंग्स को आरंभ करने या साफ करने और पर्यावरणीय चर के साथ काम करने की अनुमति देता है, जो स्क्रिप्टिंग के दौरान बहुत उपयोगी होता है।
- यह हमें गतिशील प्रतिक्रिया सामग्री प्रस्तुत करने में सहायता करता है।
- स्क्रिप्टिंग अभिकथन का उपयोग उपयोगकर्ता द्वारा परिभाषित अभिकथन बनाने के लिए किया जाता है जो पूर्वनिर्धारित नहीं होते हैं। SoapUI.
स्क्रिप्ट अभिकथन को प्रदर्शित करने के लिए SoapUIहम कैलकुलेटर WSDL का उपयोग करेंगे, साथ ही 'Add' नामक टेस्ट केस का भी, जिसे हमने पहले बनाया था।
चरण 1: ग्रूवी स्क्रिप्ट जोड़ने की प्रक्रिया अन्य अभिकथनों के समान ही है, सिवाय इसके कि यह अभिकथन पूर्वनिर्धारित नहीं है। इसके बजाय, यह उपयोगकर्ता द्वारा परिभाषित अभिकथन है जो अंतर्निहित अभिकथनों की तुलना में अधिक लचीलापन प्रदान करता है।
उस परीक्षण चरण का चयन करें जिसके विरुद्ध अभिकथन जोड़ना है।
नीचे दिखाए अनुसार 'अभिकथन जोड़ें' बटन पर क्लिक करें।
चरण 2: अब अभिकथन श्रेणी का चयन करें।
- इस मामले में यह स्क्रिप्ट है।
- चुनते हैं SoapUI स्क्रिप्ट असर्शन है और इससे संबंधित कोई उपप्रकार नहीं हैं।
- 'जोड़ें' पर क्लिक करें.
चरण 3: स्क्रिप्टिंग डायलॉग खुलता है जहां उपयोगकर्ता प्रतिक्रिया XML को मान्य करने के लिए उपयोगकर्ता द्वारा परिभाषित स्क्रिप्ट लिख सकेगा।
चरण 4: अब आइए रूपांतरण दर को मान्य करने के लिए एक ग्रूवी स्क्रिप्ट लिखते हैं। स्क्रिप्ट नीचे टिप्पणियों सहित संलग्न है। इसके लिए ग्रूवी प्रोग्रामिंग का ज्ञान होना आवश्यक है। Java स्क्रिप्ट या Groovy अपनी स्वयं की स्क्रिप्ट लिखने का प्रयास करने से पहले स्क्रिप्ट का अध्ययन अवश्य कर लें।
//Define Groovy Utils and holder for validating the XML reponse content def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) def holder = groovyUtils.getXmlHolder(messageExchange.responseContent) //Define the NameSpace holder.namespaces["ns1"] = "http://tempuri.org/" //Get the Value of the Node 'AddResult' and assign to a variable def addResult = holder.getNodeValue("//ns1:AddResult") //print the value of the result in the Output panel log.info "The result value for integers is " + addResult //Comparing the value to print 'Pass' or 'Fail' if(addResult=="46") { log.info "Pass" } else { log.info "fail"}
- निष्पादन को ट्रिगर करने के लिए 'निष्पादित करें' बटन पर क्लिक करें।
- स्क्रिप्ट का आउटपुट आउटपुट पैन में दिखाया गया है। इसमें रूपांतरण मान और अंतिम परिणाम (पास या फेल) दोनों ही प्रिंट किए गए हैं।
- सूचना प्रदर्शित होती है कि 'स्क्रिप्ट अभिकथन पारित'। OK पर क्लिक करें।
नोट: अंतिम सूचना पॉप अप हमेशा 'स्क्रिप्ट अभिकथन पास' संदेश के साथ प्रदर्शित होगी जब तक कि स्क्रिप्ट वाक्यविन्यास की दृष्टि से सही हो। इसका स्क्रिप्ट में आपके अभिकथन से कोई संबंध नहीं है।
ठीक क्लिक करें
चरण 5: अब असर्शन टैब में वे सभी असर्शन प्रदर्शित होंगे जो हमने इस टेस्ट सूट के लिए जोड़े थे, साथ ही उनमें से प्रत्येक की स्थिति भी दिखाई देगी।
चरण 6: अब
- नेविगेटर ट्री से टेस्ट सूट का चयन करें
- 'रन' बटन पर क्लिक करें
- संपूर्ण परीक्षण समूह के परिणाम प्रदर्शित किये जायेंगे।
XQuery मैच अभिकथन
यह टारगेट प्रॉपर्टी से कंटेंट सेलेक्ट करने के लिए XQuery एक्सप्रेशन का उपयोग करता है। XQuery असर्शन को बेहतर ढंग से समझने के लिए हमें एक बहुत बड़े रिस्पॉन्स XML की आवश्यकता है। SoapUIआइए नीचे दिखाए गए अनुसार एक और WSDL आयात करें: http://www.webservicex.net/medicareSupplier.asmx?WSDL
नोट: इस वॉकथ्रू में उपयोग किए गए सार्वजनिक webservicex.net डेमो एंडपॉइंट अब विश्वसनीय रूप से पहुंच योग्य नहीं हैं, इसलिए नीचे दिए गए अनुरोध और प्रतिक्रिया स्क्रीनशॉट को संदर्भ उदाहरण के रूप में रखा गया है। कोई भी WSDL जो रिपीटिंग नोड सेट लौटाता है, वह XQuery अभिकथन को बिल्कुल उसी तरह लागू करेगा।
चरण 1: मौजूदा प्रोजेक्ट पर राइट क्लिक करें और 'ऐड WSDL' चुनें।
चरण 2: ऐड WSDL डायलॉग बॉक्स खुलता है। अन्य विकल्पों को डिफ़ॉल्ट रहने दें और 'ओके' बटन पर क्लिक करें।
चरण 3: सभी क्रियाविधियों को नीचे दिखाए अनुसार सूचीबद्ध किया गया है।
चरण 4: अब आइए इसमें एक और चीज़ जोड़ते हैं। परीक्षण का मामला उसी परीक्षण सूट के भीतर जिसे हमने बनाया था परीक्षण मुद्रा परिवर्तक.
चरण 5: टेस्ट केस का नाम दर्ज करें और 'ओके' बटन पर क्लिक करें।
चरण 6: नीचे दिखाए अनुसार टेस्ट केस बनाया जाता है।
चरण 7: नीचे दिखाए अनुसार 'सोप टेस्ट रिक्वेस्ट' प्रकार का एक नया टेस्ट स्टेप जोड़ें।
चरण 8: परीक्षण चरण का नाम दर्ज करें। मान लीजिए – Supplier_by_City, जो अधिक सार्थक होगा। 'ओके' पर क्लिक करें।
चरण 9: चुनें Operaवह tion जिसे हम मान्य करना चाहते हैं। इस मामले में यह 'MedicareSupplierSoap -> GetSupplierByCity' है। 'OK' पर क्लिक करें।
चरण 10: टेस्ट केस का नाम दर्ज करें और 'ओके' पर क्लिक करें।
चरण 11: अनुरोध XML रूपरेखा नीचे दिखाए अनुसार प्रदर्शित होगी।
चरण 12: अब आइए 'न्यूयॉर्क' शहर के लिए सभी आपूर्तिकर्ता जानकारी प्राप्त करें।
ऐसा करने के लिए, अपने कोड में निम्नलिखित पंक्तियाँ जोड़ें।
<GetSupplierByCity xmlns="http://www.webservicex.net/"> <City>New York</City> </GetSupplierByCity>
नीचे दिए गए WSDL में URL – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity
चरण 13: परीक्षण निष्पादित करने पर, हमें निम्न प्रतिक्रिया प्राप्त होती है।
चरण 14: मान लीजिए कि हमें सभी आपूर्तिकर्ता संख्याओं को मान्य करना है। हम XPath अभिकथन का उपयोग नहीं कर सकते क्योंकि हमें सैकड़ों XPath अभिकथन की आवश्यकता होगी। इसलिए इस स्थिति में XQuery का उपयोग करना अनिवार्य है।
XQuery अभिकथन हमें XML प्रतिक्रियाओं के एक समूह को मान्य करने में मदद करता है जो प्रकृति में दोहरावदार हैं।
चरण 15: अब 'ऐड एन असर्शन' पर क्लिक करें।
- इस मामले में 'अभिकथन श्रेणी' - संपत्ति सामग्री का चयन करें।
- अभिकथन प्रकार को 'XQuery अभिकथन' के रूप में चुनें
- 'जोड़ें' पर क्लिक करें.
चरण 16: XPath अभिकथन के समान हमें नेमस्पेस घोषित करने की आवश्यकता है।
- स्वचालित रूप से अनुमति देने के लिए 'घोषणा करें' बटन पर क्लिक करें SoapUI नेमस्पेस घोषित करने के लिए। 'घोषणा करें' बटन पर क्लिक करने पर, उपयोगकर्ता को 'स्कीमा से नेमस्पेस घोषित करें' संदेश वाला एक पॉप-अप दिखाई देगा। आगे बढ़ने के लिए नीचे दिखाए अनुसार 'हाँ' पर क्लिक करें।
- सभी आपूर्तिकर्ता संख्या को पुनः प्राप्त करने के लिए, हमें एक XPath क्वेरी लिखने की आवश्यकता है और हम इसे < SupplierNumber > के भीतर रखेंगे और टैग.
- 'वर्तमान से चयन करें' पर क्लिक करें जो वर्तमान प्रतिक्रिया से निष्पादित होगा।
- 'वर्तमान में से चुनें' पर क्लिक करने पर, सभी आपूर्तिकर्ता नंबर सूचीबद्ध हो जाते हैं।
- 'सहेजें' पर क्लिक करें।
नोट: 'घोषणा बटन' दबाने पर आपको भिन्न परिणाम मिल सकते हैं। URLहालांकि, 's को नेमस्पेस घोषणा के रूप में माना जाता है, लेकिन कोडिंग के लिए वास्तविक वेब सेवा स्थान नेमस्पेस को ही ध्यान में रखा जाएगा।
नेमस्पेस घोषणाओं सहित पूर्ण XQuery अभिव्यक्ति इस प्रकार दिखती है।
// Namespace declaration declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; declare namespace x = ''; // Placing the result in Myresult Tags{ // Iterating through all the supplier number for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData //Return all the Supplier number within ‘SupplierNumber’ Tags. return {data($x/ns1:SupplierNumber)} }
चरण 17: XQuery असर्शन निष्पादित होता है और नीचे दिखाए गए अनुसार 'असर्शन' पैनल में अंतिम परिणाम प्रदर्शित करता है। अब हमने सफलतापूर्वक एक XQuery असर्शन जोड़ा है, जिसका उपयोग करके हमने सभी आपूर्तिकर्ता संख्या जानकारी को मान्य किया है। वेब सर्वर पर अनुरोध भेजे जाने पर हर बार इसकी तुलना वास्तविक मानों से की जाएगी।
नोट: वास्तविक मान प्रदर्शित नहीं किए जाएँगे। यदि सभी वास्तविक मान अपेक्षित मानों के समान हैं, तो यह VALID प्रदर्शित करेगा अन्यथा यह 'विफल' प्रदर्शित करेगा।
इनबिल्ट एश्योरेंस का उपयोग कब करें?
पॉइंट-एंड-क्लिक और स्क्रिप्टेड दोनों विकल्पों पर चर्चा हो जाने के बाद, व्यावहारिक प्रश्न यह है कि इनमें से किसका उपयोग किया जाए।
- जब कोई प्रतिक्रिया इतनी छोटी होती है कि उसे इनबिल्ट कथनों में से किसी एक का उपयोग करके सत्यापित किया जा सकता है।
- यदि वेब सर्वर से भेजी गई प्रतिक्रिया हमेशा स्थिर प्रकृति की होती है, तो हम इनबिल्ट अभिकथन का भी उपयोग कर सकते हैं। यदि यह गतिशील है, तो हम इनबिल्ट अभिकथन का उपयोग करके इसे अभिकथन नहीं कर पाएंगे।
- जब टाइम आउट एश्योरेंस और सुरक्षा एश्योरेंस जैसे अंतर्निहित एश्योरेंस का उपयोग अपरिहार्य हो जाता है।
- इनबिल्ट एश्योरेंस एक बार के प्रयोग के लिए काफी अच्छा है, जहां परीक्षणों को दोहराने की आवश्यकता नहीं होती।
अभिकथन विकल्प
निर्मित अभिकथनों को नीचे दर्शाए गए नियंत्रण पैनल की सहायता से सर्वोत्तम रूप से नियंत्रित किया जा सकता है।
निर्मित अभिकथन परीक्षकों को अभिकथन टूलबॉक्स से निम्नलिखित चीजों को कॉन्फ़िगर करने की अनुमति देते हैं।
| विकल्प | विवरण |
| चयनित अभिकथन क्रम में ऊपर चला जाता है। | |
| चयनित अभिकथन क्रम में नीचे चला जाता है। | |
| चयनित अभिकथन को हटाता है | |
| चयनित अभिकथन को पुनः कॉन्फ़िगर/संपादित करें। |
नीचे दी गई विशेषताएं केवल प्रो संस्करण में ही उपलब्ध हैं। SoapUIअब इसे भेज दिया गया है ReadyAPIप्रो संस्करण हमें अभिकथनों को समूहित करने में भी मदद करता है ताकि हम बनाए गए अभिकथनों में सत्यापन की एक और परत जोड़ सकें।
- तथा: सभी कथनों को वैध कथन के रूप में मूल्यांकित किया जाता है, जिसके परिणामस्वरूप समूह की स्थिति उत्तीर्ण (PASSED) हो जाएगी।
- या: समूह के PASSED होने की स्थिति को प्रमाणित करने के लिए समूह के भीतर कम से कम एक अभिकथन VALID होना चाहिए।
- प्रो संस्करण भी अनुमति देता है कथनों की क्लोनिंगयह विकल्प परीक्षकों को एक अभिकथन को उसी या किसी भिन्न प्रोजेक्ट में किसी भिन्न परीक्षण चरण में कॉपी करने की अनुमति देता है।
- अभिकथन अक्षम/सक्षम करें: यह विकल्प किसी भी समूहीकृत या गैर-समूहीकृत अभिकथन को अक्षम या सक्षम करने की अनुमति देता है। यदि कोई अभिकथन अक्षम है, तो वह धुंधला दिखाई देगा और जब कोई परीक्षण केस निष्पादित किया जाएगा, तो अक्षम अभिकथन निष्पादित नहीं होंगे।
- समूहीकृत अभिकथन: यदि परीक्षक ऐसा करने का निर्णय लेते हैं तो किसी भी समूहीकृत अभिकथन को समूहीकृत किया जा सकता है।
विभिन्न अभिकथन प्रकारों में उपलब्ध विधियों की पूरी सूची
नीचे दी गई तालिका में ऊपर चर्चा किए गए सभी अभिकथनों को एकत्रित किया गया है, जिन्हें ऐड अभिकथन संवाद बॉक्स में दिखाई देने वाली श्रेणी के अनुसार समूहीकृत किया गया है।
| अभिकथन तंत्र | विवरण |
| संपत्ति सामग्री | |
| शामिल हैं | निर्दिष्ट स्ट्रिंग के अस्तित्व की खोज करता है। यह नियमित अभिव्यक्ति का भी समर्थन करता है। |
| इसमें शामिल नहीं है | निर्दिष्ट स्ट्रिंग की गैर-मौजूदगी की खोज करता है। यह नियमित अभिव्यक्ति का भी समर्थन करता है। |
| XPath मिलान | लक्ष्य नोड और उसके मानों का चयन करने के लिए XPath अभिव्यक्ति का उपयोग करता है। |
| XQuery मिलान | यह XQuery एक्सप्रेशन का उपयोग करके टारगेट प्रॉपर्टी से कंटेंट का चयन करता है। |
| अनुपालन, स्थिति, मानक | |
| HTTP सभी संसाधन डाउनलोड करें | डाउनलोड करने के बाद HTML दस्तावेज़ को मान्य करता है और यह HTML युक्त किसी भी संपत्ति के लिए अच्छा है। |
| अमान्य HTTP स्थिति Codes | सत्यापित करता है कि HTML प्रतिक्रिया में कोई स्थिति कोड है जो परिभाषित कोडों की सूची में नहीं है। |
| SOAP दोष नहीं | सत्यापित करता है कि अंतिम प्राप्त संदेश SOAP दोष तो नहीं है। यह बहुत स्पष्ट है कि यह केवल SOAP परीक्षण चरणों के लिए ही लागू है। |
| स्कीमा अनुपालन | सत्यापित करता है कि अंतिम प्राप्त संदेश WSDL या WADL मानक स्कीमा परिभाषा के अनुरूप है या नहीं। SOAP और REST परीक्षण चरणों के लिए उपयुक्त है। |
| SOAP दोष | सत्यापित करता है कि क्या अंतिम प्राप्त संदेश SOAP दोष है। यह 'NOT SOAP' दोष कथनों का विपरीत है। |
| SOAP प्रतिक्रिया | सत्यापित करता है कि क्या अंतिम प्राप्त प्रतिक्रिया एक वैध SOAP प्रतिक्रिया है और केवल SOAP परीक्षण अनुरोध चरणों के लिए ही मान्य है। |
| वैध HTTP स्थिति Codes | यह जाँच करता है कि HTML प्रतिक्रिया में परिभाषित कोडों की सूची में मौजूद कोई स्टेटस कोड है या नहीं। यह 'अमान्य HTTP स्टेटस' का विपरीत है। Codeएस का दावा। |
| WS-एड्रेसिंग अनुरोध | सत्यापित करता है कि अंतिम प्राप्त अनुरोध में उपयुक्त WS-एड्रेसिंग हेडर शामिल हैं या नहीं। |
| WS-एड्रेसिंग प्रतिक्रिया | सत्यापित करता है कि अंतिम प्राप्त प्रतिक्रिया में उपयुक्त WS-एड्रेसिंग हेडर शामिल हैं या नहीं। |
| WS-सुरक्षा स्थिति | यह सत्यापित करता है कि अंतिम प्राप्त संदेश में वैध WS-Security हेडर है या नहीं, तथा यह केवल SOAP अनुरोधों के लिए मान्य है। |
| लिपि | |
| स्क्रिप्ट अभिकथन | उपयोगकर्ताओं को उपयोगकर्ता परिभाषित सत्यापन करने के लिए एक कस्टम स्क्रिप्ट निष्पादित करने की अनुमति देता है। |
| एसएलए | |
| प्रतिक्रिया एसएलए | यह सत्यापित करता है कि अंतिम प्राप्त प्रतिक्रिया का प्रतिक्रिया समय निर्धारित सीमा के भीतर था या नहीं। |
| जेएमएस | |
| जेएमएस स्थिति | सत्यापित करता है कि परीक्षण चरण का JMS अनुरोध सफलतापूर्वक निष्पादित हुआ है या नहीं और क्या यह JMS समापन बिंदु वाले परीक्षण चरणों के लिए सही है। |
| जेएमएस टाइमआउट | सत्यापित करता है कि परीक्षण चरण की JMS प्रतिक्रिया निर्दिष्ट अवधि से अधिक समय नहीं लेती है। |
| सुरक्षा | |
| संवेदनशील सूचना एक्सपोज़र | सत्यापित करता है कि प्रतिक्रिया संदेश लक्ष्य सिस्टम के बारे में संवेदनशील जानकारी को उजागर नहीं करता है। हम इस अभिकथन का उपयोग REST, SOAP और HTTP परीक्षण चरणों के लिए कर सकते हैं। |
उपरोक्त कथनों वाले SOAPUI प्रोजेक्ट को डाउनलोड करें
सामान्य त्रुटियाँ और समस्या निवारण
अधिकांश अभिकथन विफलताएँ tracकुछ छोटी-मोटी गलतियाँ हो सकती हैं, इसलिए किसी भी अभिव्यक्ति को दोबारा लिखने से पहले इन्हें जांच लें।
- सही नेमस्पेस का उपयोग करें। नेमस्पेस यह होना चाहिए: URL जहां वेब सेवा स्थित है।
- यदि विकास के दौरान कोई त्रुटि उत्पन्न होती है...ping एक स्क्रिप्टिंग अभिकथन, चरों की सामग्री को प्रिंट करने के लिए 'log.info' का उपयोग करें।
- यदि आपको वांछित आउटपुट नहीं मिला है, तो सत्यापित करें कि अनुरोध में कोई वैध इनपुट दिया गया है या नहीं।
उदाहरण के लिए, मुद्रा परिवर्तक में, यदि आप 'intA' को 'x' के रूप में इनपुट करते हैं, जो कि पूर्णांक नहीं है, तो आउटपुट में 'SOAP-Client' त्रुटि कोड दिखाई देता है, जिसका अर्थ है कि समस्या क्लाइंट पक्ष से भेजे जा रहे पैरामीटर में है। अमान्य मान वाला अनुरोध सबसे पहले दिखाया जाता है।
प्रतिक्रिया में परिणाम के बजाय त्रुटि कोड वापस मिलता है, जैसा कि नीचे दिखाया गया है।
XPath और XQuery अभिकथन का उपयोग करते समय सही सिंटैक्स का प्रयोग सुनिश्चित करें। उपरोक्त अभिकथन का उपयोग करते समय कोलन (:) के स्थान पर डॉट (.) का प्रयोग न करें। सही सिंटैक्स //namespace:Tagname है, न कि //namespace.tagname। ऐसा करने से, टैग नाम सही होने के बावजूद आपको 'वर्तमान प्रतिक्रिया में कोई मिलान नहीं' संदेश मिल सकता है।














































