अभिकथन में SoapUIस्क्रिप्ट, XQuery, XPath प्रकार

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

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

  • 🔘 श्रेणियाँ: संपत्ति सामग्री, अनुपालन/स्थिति/मानक, स्क्रिप्ट, एसएलए, जेएमएस और सुरक्षा।
  • शामिल हैं: यह पुष्टि करता है कि प्रतिक्रिया में एक स्ट्रिंग मौजूद है, जिसमें रेगुलर-एक्सप्रेशन का समर्थन भी शामिल है।
  • इसमें शामिल नहीं है: यह पुष्टि करता है कि कोई स्ट्रिंग अनुपस्थित है, जो त्रुटि टोकन और लीक हुए फ़ील्ड के लिए उपयोगी है।
  • 🧪 XPath मिलान: पहले नेमस्पेस घोषित करें, फिर एक नोड को लक्षित करें और उसके मान की तुलना करें।
  • XQuery मैच: यह उन दोहराए जाने वाले नोड सेटों को मान्य करता है जिनके लिए अन्यथा सैकड़ों XPath जांच की आवश्यकता होती।
  • 📊 स्क्रिप्ट: Groovy अभिकथन गतिशील प्रतिक्रियाओं और सेटअप या टियरडाउन तर्क को संभालते हैं।
  • 🔍 समस्या निवारण: गलत नेमस्पेस और कोलन के स्थान पर डॉट का उपयोग करने से अधिकांश विफलताएँ होती हैं।

अभिकथन में SoapUI

अभिकथन क्या है?

अभिकथन का अर्थ है किसी बात की पुष्टि करना या बताना। इसे चेक पॉइंट या सत्यापन बिंदु के रूप में भी समझा जा सकता है।

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

अभिकथन के प्रकार

प्रतिक्रिया व्यक्त करने के कई तरीके हैं; हालाँकि, हम आमतौर पर इस्तेमाल किए जाने वाले तरीकों पर ध्यान केंद्रित करेंगे। SoapUI प्रतिक्रिया को मान्य करते समय अभिकथन प्रकार। नीचे वे श्रेणियां दी गई हैं जो ओपन सोर्स संस्करण में उपलब्ध हैं। SoapUI.

  1. संपत्ति सामग्री
  2. अनुपालन स्थिति मानक
  3. लिपि
  4. एसएलए
  5. जेएमएस
  6. सुरक्षा

नीचे दिए गए स्क्रीनशॉट में दिखाए अनुसार, संवाद बॉक्स प्रत्येक कथन को उन श्रेणियों के अंतर्गत समूहित करता है।

अभिकथन श्रेणियां सूचीबद्ध हैं SoapUI अभिकथन संवाद जोड़ें
अभिकथन के प्रकार SoapUI

ऊपर सूचीबद्ध सुविधाओं के अलावा, प्रो संस्करण में एक अंतर्निहित जेडीबीसी असर्शन भी है जिसका उपयोग करके हम यह सुनिश्चित कर सकते हैं कि वेब सेवा ने डेटाबेस को सही ढंग से अपडेट किया है या नहीं।

संस्करण नोट: वर्तमान SoapUI दस्तावेज़ में यह भी सूचीबद्ध है जेडीबीसी उपरोक्त श्रेणियों के साथ-साथ एक श्रेणी (जेडीबीसी स्थिति और जेडीबीसी टाइमआउट) और एक संदेश की सामग्री बेहतर XML तुलना के लिए प्रॉपर्टी कंटेंट के अंदर अभिकथन। यहाँ "प्रो" के रूप में संदर्भित वाणिज्यिक संस्करण अब बेचा जाता है। ReadyAPI यह SmartBear द्वारा निर्मित है, इसलिए नए संस्करणों में मेनू लेबल अलग तरह से दिखाई दे सकते हैं जबकि अभिकथन का व्यवहार समान रहता है।

इसमें अभिकथन शामिल है

निर्दिष्ट स्ट्रिंग के अस्तित्व की खोज करता है। यह नियमित अभिव्यक्ति का भी समर्थन करता है।

हम WSDL अनुरोध के साथ पिछले ट्यूटोरियल से समान उदाहरण जारी रखेंगे http://www.dneonline.com/calculator.asmxयदि आपने अभी तक वह प्रोजेक्ट नहीं बनाया है, तो उस पर काम करें। प्रोजेक्ट, टेस्ट सूट और टेस्ट केस बनाना पहले।

चरण 1: डिफ़ॉल्ट रूप से कोई अभिकथन नहीं होते हैं।

  1. अभिकथनों की संख्या अभिकथन टैब में दर्शाई गई है।
  2. नया अभिकथन जोड़ने के लिए 'नया अभिकथन जोड़ें' बटन पर क्लिक करें।

SoapUI असर्शन टैब में कोई असर्शन नहीं दिख रहा है और 'नया असर्शन जोड़ें' बटन भी मौजूद नहीं है।

चरण 2: अब,

  1. अभिकथन श्रेणी का चयन करें.
  2. अभिकथन प्रकार का चयन करें.
  3. 'जोड़ें' पर क्लिक करें

चयनित अभिकथन श्रेणी और प्रकार के साथ अभिकथन जोड़ें संवाद बॉक्स।

चरण 3: आइए जाँच करें कि प्रतिक्रिया में स्ट्रिंग '46' मौजूद है या नहीं। 'ओके' पर क्लिक करें।

नोट: हम केस को अनदेखा भी कर सकते हैं और नियमित अभिव्यक्ति भी जोड़ सकते हैं।

इसमें अभिकथन विन्यास संवाद शामिल है जिसमें मान 46 दर्ज किया गया है

चरण 4: इसे जोड़ने पर, तुरंत अभिकथन निष्पादित होता है और दिखाता है कि यह मान्य है या अमान्य।

असर्शन टैब में 'कंटेन्स' असर्शन को मान्य बताया गया है।

चरण 5: अब मान लीजिए कि हम 'Contains Assertion in' की सामग्री को बदलते हैं। SoapUI' को '47' में बदलें और देखें क्या होता है।

46 से 47 तक 'Contains Assertion' की सामग्री को संपादित करना

चरण 6: अभिकथन निष्पादित होता है और परिणाम उपयोगकर्ता को भेज दिया जाता है। चूंकि प्रतिक्रिया में '47' स्ट्रिंग मौजूद नहीं है, इसलिए अभिकथन विफल हो गया है।

असरशन टैब 'कंटेन्स' असरशन को विफल के रूप में रिपोर्ट कर रहा है।

इसमें अभिकथन शामिल नहीं है

इसका दूसरा भाग ठीक इसके विपरीत काम करता है। यह निर्दिष्ट स्ट्रिंग के अस्तित्वहीन होने की खोज करता है। यह रेगुलर एक्सप्रेशन को भी सपोर्ट करता है।

चरण 1: अब 'नए अभिकथन जोड़ें' बटन पर क्लिक करने के बाद,

  1. अभिकथन श्रेणी का चयन करें.
  2. अभिकथन प्रकार का चयन करें – इस मामले में 'इसमें शामिल नहीं है'
  3. 'जोड़ें' पर क्लिक करें

NOT Contains विकल्प का चयन करके अभिकथन संवाद जोड़ें

चरण 2: आइए जाँच करें कि प्रतिक्रिया में 'intA' स्ट्रिंग मौजूद है या नहीं। 'FromCurrency' स्ट्रिंग दर्ज करें और 'ओके' पर क्लिक करें।

"FromCurrency" स्ट्रिंग दर्ज होने पर "Not Contains" अभिकथन संवाद बॉक्स दिखाई देता है।

चरण 3: जैसे ही कोई अभिकथन जोड़ा जाता है, वह निष्पादित होता है और परिणाम प्रदर्शित करता है। अब तक हमने दो अभिकथन जोड़े हैं, इसलिए दोनों अभिकथन निष्पादित हुए हैं और परिणाम प्रदर्शित हुए हैं।

अभिकथन टैब में 'शामिल है' और 'शामिल नहीं है' दोनों परिणाम सूचीबद्ध हैं।

चरण 4: अब आइए 'Not Contains Assertion' की सामग्री को बदलें और देखें कि क्या होता है। हम "AddResult" स्ट्रिंग के अस्तित्वहीन होने की जाँच करेंगे।

नॉट कंटेन्स असर्शन डायलॉग टोकन ऐडरिजल्ट की जाँच कर रहा है

चरण 5: 'AddResult' स्ट्रिंग वास्तव में प्रतिक्रिया में मौजूद है, इसलिए 'NOT Contains' अभिकथन विफल हो जाएगा जैसा कि नीचे दिखाया गया है।

AddResult मौजूद होने के कारण Not Contains अभिकथन विफल हो रहा है।

XPath मिलान अभिकथन

स्ट्रिंग मिलान सटीक नहीं है, इसलिए अगला अभिकथन इसके बजाय एक नोड को लक्षित करता है। लक्ष्य नोड और उसके मानों का चयन करने के लिए XPath अभिव्यक्ति का उपयोग किया जाता है। एक्सपाथयह एक XML क्वेरी भाषा है जिसका उपयोग XML दस्तावेज़ से नोड्स का चयन करने के लिए किया जाता है।

चरण 1: अब 'Add New Assertions' बटन पर क्लिक करने के बाद,

  1. अभिकथन श्रेणी का चयन करें.
  2. अभिकथन प्रकार का चयन करें - इस मामले में 'XPath मिलान'
  3. 'जोड़ें' पर क्लिक करें

XPath मैच चयनित के साथ अभिकथन डायलॉग जोड़ें

चरण 2: XPath विंडो खुलती है।

जोड़ने से पहले SoapUI XPath में, हमें नेमस्पेस घोषित करना होता है। XML नेमस्पेस नामों का एक संग्रह है, जिसे यूनिफॉर्म रिसोर्स आइडेंटिफायर (URI) संदर्भ द्वारा पहचाना जाता है, और XML दस्तावेज़ों में इनका उपयोग तत्व और विशेषता नामों के रूप में किया जाता है। इसी का उपयोग XML में भी किया जाता है। SoapUI XPath अभिकथन।

XML नेमस्पेस घोषित करने के लिए, हमें बस 'घोषित करें' बटन पर क्लिक करना होगा, जो हमारे लिए काम कर देगा, अन्यथा हम स्वयं भी मैन्युअल रूप से एक नेमस्पेस घोषित कर सकते हैं।

नेमस्पेस घोषित करने के बाद, हमें बनाए गए नेमस्पेस का उपयोग करके XPath को संदर्भित करने की आवश्यकता होती है।

'घोषणा करें' बटन पर क्लिक करने पर, दो नेमस्पेस दिखाई देंगे क्योंकि हमारे पास दो URI हैं। इनमें से एक स्कीमा है। URL और दूसरा वास्तविक वेब सेवा से मेल खाता है। URLXPath का संदर्भ देते समय हमें वेब सेवा स्थित वास्तविक नेमस्पेस का उपयोग करना चाहिए, न कि स्कीमा नेमस्पेस का। घोषित पंक्तियाँ XPath बॉक्स के शीर्ष पर दिखाई देती हैं, जैसा कि नीचे दिखाया गया है।

XPath अभिकथन विंडो के अंदर SOAP और NS1 नेमस्पेस घोषित किए गए।

नामस्थान साबुन घोषित करें='http://schemas.xmlsoap.org/soap/envelope/';

नामस्थान ns1='http://tempuri.org/' घोषित करें;

डिक्लेयर पर क्लिक करने के तुरंत बाद XPath अभिकथन विंडो खुल जाती है।

चरण 3: अब हमें उस XML नोड का XPath दर्ज करना होगा जिसे हमें मान्य करना है।

//ns1:AddResult हमें बीच में संलग्न नोड का मान देता है और और ns1 घोषित नामस्थान से मेल खाता है जो 'http://tempuri.org/' की ओर इशारा करता है

XML दर्ज करने के बाद, हमें 'वर्तमान से चयन करें' पर क्लिक करना होगा ताकि आगे तुलना के लिए वर्तमान प्रतिक्रिया से मान उठाया जा सके।

वर्तमान हाइलाइट किए गए भाग से चयन करके XPath अभिव्यक्ति दर्ज की गई

चरण 4: अब तक,

  1. नामस्थान घोषित करने के बाद, हमने उस XML नोड का XPath प्रविष्ट कर दिया है जिसे हमें सत्यापित करना है।
  2. वर्तमान मान को अपेक्षित मान बनाने के लिए हमें 'वर्तमान से चयन करें' पर क्लिक करना होगा।
  3. वर्तमान मान उपयोगकर्ता को दिखाया जाता है जिसे हम आवश्यकता पड़ने पर संशोधित कर सकते हैं।
  4. 'सहेजें' पर क्लिक करें।

XPath मैच कॉन्फ़िगरेशन अपेक्षित मान और सेव बटन को दर्शाता है

चरण 5: इसमें जोड़ा गया अभिकथन SoapUI नीचे दिखाए अनुसार प्रदर्शित किया जाएगा।

एक्सपाथ मैच अभिकथन को दर्शाने वाला अभिकथन टैब

स्क्रिप्टिंग अभिकथन

यह अभिकथन तकनीक सबसे व्यापक रूप से प्रयोग की जाने वाली तकनीक है, क्योंकि सैकड़ों अभिकथनों का प्रबंधन और रखरखाव करना अत्यंत कठिन है।

SoapUI या तो उपयोग करता है Groovy स्क्रिप्टिंग या Javaलिपि स्क्रिप्टिंग अभिकथन के लिए। विकास के लिए स्क्रिप्टिंग तकनीक को अपनाया जाता है।ping SOAP परीक्षण के लिए एक फ्रेमवर्क। स्क्रिप्टिंग अभिकथन का उपयोग निम्नलिखित परिस्थितियों में किया जाता है।

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

स्क्रिप्ट अभिकथन को प्रदर्शित करने के लिए SoapUIहम कैलकुलेटर WSDL का उपयोग करेंगे, साथ ही 'Add' नामक टेस्ट केस का भी, जिसे हमने पहले बनाया था।

चरण 1: ग्रूवी स्क्रिप्ट जोड़ने की प्रक्रिया अन्य अभिकथनों के समान ही है, सिवाय इसके कि यह अभिकथन पूर्वनिर्धारित नहीं है। इसके बजाय, यह उपयोगकर्ता द्वारा परिभाषित अभिकथन है जो अंतर्निहित अभिकथनों की तुलना में अधिक लचीलापन प्रदान करता है।

उस परीक्षण चरण का चयन करें जिसके विरुद्ध अभिकथन जोड़ना है।

चयनित परीक्षण चरण SoapUI अभिकथन जोड़ने से पहले नेविगेटर

नीचे दिखाए अनुसार 'अभिकथन जोड़ें' बटन पर क्लिक करें।

टेस्ट स्टेप असर्शन टूलबार पर असर्शन बटन जोड़ें

चरण 2: अब अभिकथन श्रेणी का चयन करें।

  1. इस मामले में यह स्क्रिप्ट है।
  2. चुनते हैं SoapUI स्क्रिप्ट असर्शन है और इससे संबंधित कोई उपप्रकार नहीं हैं।
  3. 'जोड़ें' पर क्लिक करें.

स्क्रिप्ट श्रेणी चयनित होने पर अभिकथन जोड़ें संवाद बॉक्स खुलता है।

चरण 3: स्क्रिप्टिंग डायलॉग खुलता है जहां उपयोगकर्ता प्रतिक्रिया XML को मान्य करने के लिए उपयोगकर्ता द्वारा परिभाषित स्क्रिप्ट लिख सकेगा।

खाली SoapUI स्क्रिप्ट अभिकथन संपादक संवाद

चरण 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"}
  1. निष्पादन को ट्रिगर करने के लिए 'निष्पादित करें' बटन पर क्लिक करें।
  2. स्क्रिप्ट का आउटपुट आउटपुट पैन में दिखाया गया है। इसमें रूपांतरण मान और अंतिम परिणाम (पास या फेल) दोनों ही प्रिंट किए गए हैं।
  3. सूचना प्रदर्शित होती है कि 'स्क्रिप्ट अभिकथन पारित'। OK पर क्लिक करें।

नोट: अंतिम सूचना पॉप अप हमेशा 'स्क्रिप्ट अभिकथन पास' संदेश के साथ प्रदर्शित होगी जब तक कि स्क्रिप्ट वाक्यविन्यास की दृष्टि से सही हो। इसका स्क्रिप्ट में आपके अभिकथन से कोई संबंध नहीं है।

स्क्रिप्ट अभिकथन आउटपुट फलक परिणाम मान और पास को प्रिंट करता है

ठीक क्लिक करें

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

अभिकथन टैब में परीक्षण सूट में जोड़े गए प्रत्येक अभिकथन की सूची दी गई है।

चरण 6: अब

  1. नेविगेटर ट्री से टेस्ट सूट का चयन करें
  2. 'रन' बटन पर क्लिक करें
  3. संपूर्ण परीक्षण समूह के परिणाम प्रदर्शित किये जायेंगे।

सभी अभिकथनों को निष्पादित करने के बाद टेस्ट सूट रन के परिणाम

XQuery मैच अभिकथन

यह टारगेट प्रॉपर्टी से कंटेंट सेलेक्ट करने के लिए XQuery एक्सप्रेशन का उपयोग करता है। XQuery असर्शन को बेहतर ढंग से समझने के लिए हमें एक बहुत बड़े रिस्पॉन्स XML की आवश्यकता है। SoapUIआइए नीचे दिखाए गए अनुसार एक और WSDL आयात करें: http://www.webservicex.net/medicareSupplier.asmx?WSDL

नोट: इस वॉकथ्रू में उपयोग किए गए सार्वजनिक webservicex.net डेमो एंडपॉइंट अब विश्वसनीय रूप से पहुंच योग्य नहीं हैं, इसलिए नीचे दिए गए अनुरोध और प्रतिक्रिया स्क्रीनशॉट को संदर्भ उदाहरण के रूप में रखा गया है। कोई भी WSDL जो रिपीटिंग नोड सेट लौटाता है, वह XQuery अभिकथन को बिल्कुल उसी तरह लागू करेगा।

चरण 1: मौजूदा प्रोजेक्ट पर राइट क्लिक करें और 'ऐड WSDL' चुनें।

मेनू पर राइट-क्लिक करें SoapUI प्रोजेक्ट में WSDL जोड़ने का तरीका दिखाया गया है

चरण 2: ऐड WSDL डायलॉग बॉक्स खुलता है। अन्य विकल्पों को डिफ़ॉल्ट रहने दें और 'ओके' बटन पर क्लिक करें।

डिफ़ॉल्ट आयात विकल्पों के साथ WSDL डायलॉग जोड़ें

चरण 3: सभी क्रियाविधियों को नीचे दिखाए अनुसार सूचीबद्ध किया गया है।

नेविगेटर ट्री में सूचीबद्ध मेडिकेयर आपूर्तिकर्ता WSDL संचालन

चरण 4: अब आइए इसमें एक और चीज़ जोड़ते हैं। परीक्षण का मामला उसी परीक्षण सूट के भीतर जिसे हमने बनाया था परीक्षण मुद्रा परिवर्तक.

मौजूदा टेस्ट सूट पर नया टेस्ट केस विकल्प

चरण 5: टेस्ट केस का नाम दर्ज करें और 'ओके' बटन पर क्लिक करें।

न्यू टेस्ट केस डायलॉग बॉक्स में टेस्ट केस का नाम दर्ज करना

चरण 6: नीचे दिखाए अनुसार टेस्ट केस बनाया जाता है।

नवनिर्मित परीक्षण मामले में SoapUI नेविगेटर वृक्ष

चरण 7: नीचे दिखाए अनुसार 'सोप टेस्ट रिक्वेस्ट' प्रकार का एक नया टेस्ट स्टेप जोड़ें।

SOAP टेस्ट अनुरोध चयनित के साथ स्टेप मेनू जोड़ें

चरण 8: परीक्षण चरण का नाम दर्ज करें। मान लीजिए – Supplier_by_City, जो अधिक सार्थक होगा। 'ओके' पर क्लिक करें।

नए परीक्षण चरण का नाम Supplier_by_City रखना

चरण 9: चुनें Operaवह tion जिसे हम मान्य करना चाहते हैं। इस मामले में यह 'MedicareSupplierSoap -> GetSupplierByCity' है। 'OK' पर क्लिक करें।

परीक्षण चरण के लिए GetSupplierByCity ऑपरेशन का चयन करना

चरण 10: टेस्ट केस का नाम दर्ज करें और 'ओके' पर क्लिक करें।

SOAP परीक्षण अनुरोध नाम की पुष्टि करना

चरण 11: अनुरोध XML रूपरेखा नीचे दिखाए अनुसार प्रदर्शित होगी।

जनरेट किए गए GetSupplierByCity अनुरोध XML रूपरेखा

चरण 12: अब आइए 'न्यूयॉर्क' शहर के लिए सभी आपूर्तिकर्ता जानकारी प्राप्त करें।

ऐसा करने के लिए, अपने कोड में निम्नलिखित पंक्तियाँ जोड़ें।

<GetSupplierByCity xmlns="http://www.webservicex.net/">

<City>New York</City>

</GetSupplierByCity>

नीचे दिए गए WSDL में URL – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity

न्यूयॉर्क शहर के मान के साथ XML अनुरोध को संपादित किया गया।

चरण 13: परीक्षण निष्पादित करने पर, हमें निम्न प्रतिक्रिया प्राप्त होती है।

GetSupplierByCity प्रतिक्रिया में बार-बार आपूर्तिकर्ता रिकॉर्ड शामिल हैं

चरण 14: मान लीजिए कि हमें सभी आपूर्तिकर्ता संख्याओं को मान्य करना है। हम XPath अभिकथन का उपयोग नहीं कर सकते क्योंकि हमें सैकड़ों XPath अभिकथन की आवश्यकता होगी। इसलिए इस स्थिति में XQuery का उपयोग करना अनिवार्य है।

XQuery अभिकथन हमें XML प्रतिक्रियाओं के एक समूह को मान्य करने में मदद करता है जो प्रकृति में दोहरावदार हैं।

SupplierData नोड्स को दोहराना जिन पर XQuery पुनरावृति करेगा

चरण 15: अब 'ऐड एन असर्शन' पर क्लिक करें।

  1. इस मामले में 'अभिकथन श्रेणी' - संपत्ति सामग्री का चयन करें।
  2. अभिकथन प्रकार को 'XQuery अभिकथन' के रूप में चुनें
  3. 'जोड़ें' पर क्लिक करें.

प्रॉपर्टी कंटेंट श्रेणी में XQuery असर्शन का चयन किया गया है।

चरण 16: XPath अभिकथन के समान हमें नेमस्पेस घोषित करने की आवश्यकता है।

  1. स्वचालित रूप से अनुमति देने के लिए 'घोषणा करें' बटन पर क्लिक करें SoapUI नेमस्पेस घोषित करने के लिए। 'घोषणा करें' बटन पर क्लिक करने पर, उपयोगकर्ता को 'स्कीमा से नेमस्पेस घोषित करें' संदेश वाला एक पॉप-अप दिखाई देगा। आगे बढ़ने के लिए नीचे दिखाए अनुसार 'हाँ' पर क्लिक करें।
  2. सभी आपूर्तिकर्ता संख्या को पुनः प्राप्त करने के लिए, हमें एक XPath क्वेरी लिखने की आवश्यकता है और हम इसे < SupplierNumber > के भीतर रखेंगे और टैग.
  3. 'वर्तमान से चयन करें' पर क्लिक करें जो वर्तमान प्रतिक्रिया से निष्पादित होगा।
  4. 'वर्तमान में से चुनें' पर क्लिक करने पर, सभी आपूर्तिकर्ता नंबर सूचीबद्ध हो जाते हैं।
  5. 'सहेजें' पर क्लिक करें।

स्कीमा से नेमस्पेस घोषित करने की पुष्टि पॉप-अप

नोट: 'घोषणा बटन' दबाने पर आपको भिन्न परिणाम मिल सकते हैं। 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)}
}

XQuery एक्सप्रेशन विंडो में प्रत्येक आपूर्तिकर्ता संख्या सूचीबद्ध है

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

नोट: वास्तविक मान प्रदर्शित नहीं किए जाएँगे। यदि सभी वास्तविक मान अपेक्षित मानों के समान हैं, तो यह VALID प्रदर्शित करेगा अन्यथा यह 'विफल' प्रदर्शित करेगा।

XQuery अभिकथन परिणाम दिखाने वाला अभिकथन पैनल

इनबिल्ट एश्योरेंस का उपयोग कब करें?

पॉइंट-एंड-क्लिक और स्क्रिप्टेड दोनों विकल्पों पर चर्चा हो जाने के बाद, व्यावहारिक प्रश्न यह है कि इनमें से किसका उपयोग किया जाए।

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

अभिकथन विकल्प

निर्मित अभिकथनों को नीचे दर्शाए गए नियंत्रण पैनल की सहायता से सर्वोत्तम रूप से नियंत्रित किया जा सकता है।

अभिकथन टूलबॉक्स नियंत्रण पैनल में SoapUI

निर्मित अभिकथन परीक्षकों को अभिकथन टूलबॉक्स से निम्नलिखित चीजों को कॉन्फ़िगर करने की अनुमति देते हैं।

विकल्प विवरण
अभिकथन आइकन को ऊपर ले जाएं चयनित अभिकथन क्रम में ऊपर चला जाता है।
अभिकथन आइकन को नीचे ले जाएं चयनित अभिकथन क्रम में नीचे चला जाता है।
अभिकथन आइकन हटाएं चयनित अभिकथन को हटाता है
अभिकथन आइकन को कॉन्फ़िगर या संपादित करें चयनित अभिकथन को पुनः कॉन्फ़िगर/संपादित करें।

नीचे दी गई विशेषताएं केवल प्रो संस्करण में ही उपलब्ध हैं। 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' त्रुटि कोड दिखाई देता है, जिसका अर्थ है कि समस्या क्लाइंट पक्ष से भेजे जा रहे पैरामीटर में है। अमान्य मान वाला अनुरोध सबसे पहले दिखाया जाता है।

SoapUI intA के लिए अमान्य गैर-पूर्णांक मान पास करने का अनुरोध

प्रतिक्रिया में परिणाम के बजाय त्रुटि कोड वापस मिलता है, जैसा कि नीचे दिखाया गया है।

SOAP-क्लाइंट त्रुटि कोड वापस आ गया SoapUI प्रतिक्रिया संपादक

XPath और XQuery अभिकथन का उपयोग करते समय सही सिंटैक्स का प्रयोग सुनिश्चित करें। उपरोक्त अभिकथन का उपयोग करते समय कोलन (:) के स्थान पर डॉट (.) का प्रयोग न करें। सही सिंटैक्स //namespace:Tagname है, न कि //namespace.tagname। ऐसा करने से, टैग नाम सही होने के बावजूद आपको 'वर्तमान प्रतिक्रिया में कोई मिलान नहीं' संदेश मिल सकता है।

गलत XPath सिंटैक्स के कारण वर्तमान प्रतिक्रिया में कोई मिलान नहीं होने की त्रुटि उत्पन्न हुई।

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

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

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

ओपन-सोर्स SoapUI इसमें प्रॉपर्टी कंटेंट, कंप्लायंस, स्क्रिप्ट, एसएलए, जेएमएस और सिक्योरिटी शामिल हैं। ReadyAPI समूह जोड़ता हैpingक्लोनिंग, जेडीबीसी जांच और नियंत्रण को सक्षम या अक्षम करना।

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

हां. सह पायलट पूर्ण हो जाता है Groovyयूटिल्स और एक्सएमएलहोल्डर बॉयलरप्लेट। स्क्रिप्ट को हमेशा पहले चलाएँ, क्योंकि एक वाक्यविन्यास की दृष्टि से मान्य स्क्रिप्ट आपके तुलना के बावजूद "स्क्रिप्ट असर्शन पास" की रिपोर्ट करती है।

हाँ। अभिकथन सामग्री फ़ील्ड प्रॉपर्टी विस्तार का समर्थन करते हैं, इसलिए अपेक्षित मान को किसी शाब्दिक मान के बजाय प्रोजेक्ट या टेस्ट केस प्रॉपर्टी से लिया जा सकता है, जिससे एक ही अभिकथन को विभिन्न वातावरणों में पुनः उपयोग किया जा सकता है।

एक असफल अभिकथन परीक्षण केस दृश्य में अपने परीक्षण चरण को असफल के रूप में चिह्नित करता है और विंडो के निचले भाग में टेस्ट एक्जीक्यूशन लॉग में विफलता विवरण के साथ एक मिलान FAILED प्रविष्टि लिखता है।

इसमें शामिल है, शामिल नहीं है, XPath मिलान, XQuery मिलान, प्रतिक्रिया SLA, स्क्रिप्ट, मान्य और अमान्य HTTP स्थिति कोड, संवेदनशील जानकारी का खुलासा, और WADL या अनुमानित स्कीमा के विरुद्ध स्कीमा अनुपालन।

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