Apache JMeter
अपाचे JMeter सहसंबंध
खोज…
परिचय
JMeter प्रदर्शन परीक्षण में, सहसंबंध का मतलब सर्वर प्रतिक्रिया से गतिशील डेटा प्राप्त करने और बाद के अनुरोधों को पोस्ट करने की क्षमता है। यह सुविधा परीक्षण के कई पहलुओं के लिए महत्वपूर्ण है, जैसे टोकन-आधारित संरक्षित अनुप्रयोग।
Apache JMeter में नियमित अभिव्यक्ति एक्सट्रैक्टर का उपयोग करके सहसंबंध
यदि आपको एक पाठ प्रतिक्रिया से जानकारी निकालने की आवश्यकता है, तो सबसे आसान तरीका नियमित एक्सप्रेशन का उपयोग करना है। मिलान पैटर्न पर्ल में उपयोग किए जाने वाले के समान है। मान लेते हैं कि हम एक फ्लाइट टिकट खरीद वर्कफ़्लो का परीक्षण करना चाहते हैं। पहला कदम खरीद संचालन प्रस्तुत करना है। अगला चरण यह सुनिश्चित करना है कि हम खरीद आईडी का उपयोग करके सभी विवरणों को सत्यापित करने में सक्षम हैं, जिन्हें पहले अनुरोध के लिए वापस किया जाना चाहिए। आइए पहले अनुरोध पर इस तरह की आईडी के साथ एक html पृष्ठ लौटाते हैं जिसे हमें निकालने की आवश्यकता है:
<div class="container">
<div class="container hero-unit">
<h1>Thank you for you purchse today!</h1>
<table class="table">
<tr>
<td>Id</td>
<td>Your purchase id is 1484697832391</td>
</tr>
<tr>
<td>Status</td>
<td>Pending</td>
</tr>
<tr>
<td>Amount</td>
<td>120 USD</td>
</tr>
</table>
</div>
</div>
इस तरह की स्थिति जेमीटर नियमित अभिव्यक्ति एक्सट्रैक्टर का उपयोग करने के लिए सबसे अच्छा उम्मीदवार है। रेगुलर एक्सप्रेशन एक खोज पैटर्न का वर्णन करने के लिए एक विशेष टेक्स्ट स्ट्रिंग है। बहुत सारे ऑनलाइन संसाधन हैं जो नियमित एक्सप्रेशन लिखने और परीक्षण में मदद करते हैं। उनमें से एक https://regex101.com/ है ।
इस घटक का उपयोग करने के लिए, JMeter मेनू खोलें और: Add -> पोस्ट प्रोसेसर -> नियमित अभिव्यक्ति एक्सट्रैक्टर
रेगुलर एक्सप्रेशन एक्सट्रैक्टर में ये क्षेत्र शामिल हैं:
- संदर्भ नाम - उस चर का नाम जिसे निष्कर्षण के बाद इस्तेमाल किया जा सकता है
- नियमित अभिव्यक्ति - एक स्ट्रिंग (पैटर्न) को व्यक्त करने वाले प्रतीकों और पात्रों का एक क्रम जो पाठ के भीतर खोजा जाएगा
- टेम्प्लेट - में समूहों के संदर्भ शामिल हैं। रेगेक्स में एक से अधिक समूह हो सकते हैं, यह समूह संख्या को $ 1 $ या $ 2 $ या $ 1 $ $ 2 $ के रूप में निर्दिष्ट करके कौन सा समूह मान निर्दिष्ट करने की अनुमति देता है (दोनों समूहों को निकालें)
- मैच नंबर - निर्दिष्ट करता है कि किस मैच का उपयोग किया जाएगा (0 मान मिलान किए गए यादृच्छिक मान / किसी भी सकारात्मक संख्या N का अर्थ है Nth मैच का चयन करने के लिए / नकारात्मक मान को ForEach कंट्रोलर के साथ उपयोग करने की आवश्यकता है)
- डिफ़ॉल्ट - वह डिफ़ॉल्ट मान जिसे कोई मिलान नहीं मिलने की स्थिति में चर में संग्रहीत किया जाएगा, चर में संग्रहीत किया जाता है।
"लागू करें" चेकबॉक्स उन नमूनों से संबंधित है जो एम्बेडेड संसाधनों के लिए अनुरोध करते हैं। यह पैरामीटर परिभाषित करता है कि क्या नियमित अभिव्यक्ति मुख्य नमूना परिणामों पर या एम्बेडेड संसाधनों सहित सभी अनुरोधों पर लागू होगी। इस परम के लिए कई विकल्प हैं:
- मुख्य नमूना और उप-नमूने
- केवल मुख्य नमूना
- केवल उप-नमूने
- JMeter चर - अभिक्रिया नामांकित चर की सामग्री पर लागू होती है, जिसे किसी अन्य अनुरोध द्वारा भरा जा सकता है
"फील्ड टू चेक" चेकबॉक्स यह चुनने में सक्षम होता है कि रेगुलर एक्सप्रेशन को किस फील्ड में लागू किया जाए। लगभग सभी पैरामीटर स्व वर्णनात्मक हैं:
- शरीर - प्रतिक्रिया का शरीर, उदाहरण के लिए एक वेब पेज की सामग्री (हेडर को छोड़कर)
- निकाय (अनसैप्ड) - प्रतिक्रिया का शरीर, सभी HTML एस्केप कोड के साथ। ध्यान दें कि HTML के संदर्भ के संदर्भ में संसाधित किए गए हैं, इसलिए कुछ गलत प्रतिस्थापन किए जा सकते हैं (* यह विकल्प प्रदर्शन को अत्यधिक प्रभावित करता है)
- निकाय - एक दस्तावेज़ के रूप में शरीर - अपाचे टीका (* भी प्रदर्शन को प्रभावित कर सकता है) के माध्यम से विभिन्न प्रकार के दस्तावेजों से अर्क पाठ
- बॉडी - अनुरोध हेडर - गैर-HTTP नमूनों के लिए मौजूद नहीं हो सकता है
- बॉडी - प्रतिक्रिया हेडर - गैर-HTTP नमूनों के लिए मौजूद नहीं हो सकता है
- निकाय - यूआरएल
- प्रतिक्रिया कोड - उदाहरण 200
- शरीर - प्रतिक्रिया संदेश - जैसे ठीक है
अभिव्यक्ति निकाले जाने के बाद, इसे बाद के अनुरोधों में $ {PurchaseId} चर का उपयोग करके उपयोग किया जा सकता है।
इस तालिका में JMeter रेगुलर एक्सप्रेशन द्वारा समर्थित सभी संकुचन शामिल हैं:
JMeter में XPath एक्सट्रैक्टर का उपयोग कर सहसंबंध
XML दस्तावेज़ में तत्वों और विशेषताओं के माध्यम से नेविगेट करने के लिए XPath का उपयोग किया जा सकता है। यह तब उपयोगी हो सकता है जब नियमित अभिव्यक्ति एक्सट्रैक्टर का उपयोग करके प्रतिक्रिया से डेटा नहीं निकाला जा सकता है। उदाहरण के लिए, एक परिदृश्य के मामले में जहां आपको समान विशेषताओं के साथ समान टैग से डेटा निकालने की आवश्यकता होती है, लेकिन विभिन्न मूल्यों की। XPath एक्सट्रैक्टर CSS / JQuery एक्सट्रैक्टर के समान है लेकिन XPath एक्सट्रैक्टर का उपयोग XML सामग्री के लिए किया जाना चाहिए जबकि HTML सामग्री के लिए CSS / JQuery एक्सट्रैक्टर का उपयोग किया जाना चाहिए। मान लेते हैं कि प्रतिक्रिया में हमारे पास विभिन्न मूल्यों के साथ एक तालिका है, जहां हमें दूसरी तालिका पंक्ति से मूल्य निकालने की आवश्यकता है।
<div id="weeklyPrices">
<tr>
<td>$56.00</td>
<td>$56.00</td>
<td>$56.00</td>
<td>$56.00</td>
<td>$60.00</td>
<td>$70.00</td>
<td>$70.00</td>
</tr>
</div>
आगे देखते हुए, उस मामले के लिए सही XPath होगा: // div [@ id = 'WeekPrices'] / tr / t XP 1
इस घटक का उपयोग करने के लिए, JMeter मेनू खोलें और: Add -> पोस्ट प्रोसेसर -> XPath एक्सट्रैक्टर
XPath एक्सट्रैक्टर में कई सामान्य कॉन्फ़िगरेशन तत्व होते हैं जो 'नियमित अभिव्यक्ति एक्सट्रैक्टर का उपयोग करके सहसंबंध' में उल्लिखित हैं। इसमें Name, Apply to, Reference Name, Match No. (JMeter 3.2 के बाद से) और डिफॉल्ट वैल्यू शामिल हैं।
आपके द्वारा बनाए गए xpath (जैसे यह ) बनाने और परीक्षण करने के लिए ऑनलाइन चीट शीट और संपादकों के साथ बहुत सारे वेब संसाधन हैं। लेकिन नीचे दिए गए उदाहरणों के आधार पर, हम सबसे आम xpath लोकेटर बनाने का तरीका पा सकते हैं।
यदि आप HTML को एक्सएचटीएमएल में पार्स करना चाहते हैं, तो हमें "उपयोग करें" विकल्प की जांच करने की आवश्यकता है। "उपयोग करें" स्थिति पर निर्णय लेने के बाद, अतिरिक्त विकल्प भी हैं:
अगर 'यूज़ टाइड' की जाँच की जाती है:
- शांत - साफ शांत झंडा सेट करता है
- त्रुटियों की रिपोर्ट करें - यदि कोई त्रुटि उत्पन्न होती है, तो तदनुसार अभिक्रिया दें
- चेतावनियाँ दिखाएँ - साफ शो चेतावनी विकल्प सेट करता है
अगर 'यूज टाइड' अनियंत्रित है:
- Namespaces का प्रयोग करें - अगर जाँच की गई XML parser नामस्थान रिज़ॉल्यूशन का उपयोग करेगा
- XML को मान्य करें - इसके निर्दिष्ट स्कीमा के खिलाफ दस्तावेज़ की जाँच करें
- व्हाट्सएप को नजरअंदाज करें - एलिमेंट व्हाट्सएप को नजरअंदाज करें
- बाहरी डीटीडी प्राप्त करें - यदि चयनित है, तो बाहरी डीटीडी प्राप्त किए जाते हैं
'पाठ सामग्री के बजाय संपूर्ण XPath टुकड़ा लौटें' आत्म वर्णनात्मक है और यदि आप न केवल xpath मान लौटना चाहते हैं, बल्कि इसका xpath लोकेटर के भीतर मान भी उपयोग किया जाना चाहिए। यह डिबगिंग की जरूरतों के लिए उपयोगी हो सकता है।
यह भी उल्लेखनीय है कि XPath लोकेटरों के परीक्षण के लिए बहुत सुविधाजनक ब्राउज़र प्लगइन्स की सूची है। फ़ायरफ़ॉक्स के लिए आप ' फायरबग ' प्लगइन का उपयोग कर सकते हैं जबकि क्रोम के लिए ' एक्सपीथ हेल्पर ' सबसे सुविधाजनक उपकरण है।
JMeter में CSS / JQuery चिमटा का उपयोग कर सहसंबंध
CSS / JQuery चिमटा एक CSS / JQuery चयनकर्ता वाक्यविन्यास का उपयोग करके सर्वर प्रतिक्रिया से मान निकालने में सक्षम बनाता है, जो अन्यथा नियमित अभिव्यक्ति का उपयोग करके लिखना मुश्किल हो सकता है। पोस्ट-प्रोसेसर के रूप में, इस तत्व को एक अनुरोध नमूने से अनुरोधित नोड्स, पाठ या विशेषता मान निकालने और दिए गए चर में परिणाम को संग्रहीत करने के लिए निष्पादित किया जाना चाहिए। यह घटक XPath एक्सट्रैक्टर के समान है। CSS, JQuery या XPath के बीच का चुनाव आमतौर पर उपयोगकर्ता की प्राथमिकता पर निर्भर करता है, लेकिन यह ध्यान देने योग्य है कि XPath या JQuery नीचे की ओर भी जा सकता है और DOM को भी पीछे छोड़ सकता है, जबकि CSS DOM को नहीं चला सकता है। मान लेते हैं कि हम उन सभी विषयों को ढेर अतिप्रवाह प्रलेखन से निकालना चाहते हैं जो जावा से संबंधित हैं। आप उपयोग कर सकते हैं Firebug अपने सीएसएस / फ़ायरफ़ॉक्स में JQuery चयनकर्ताओं, या परीक्षण करने के लिए प्लगइन CSS चयनकर्ता परीक्षक क्रोम में।
इस घटक का उपयोग करने के लिए, JMeter मेनू खोलें और: Add -> Post Processors -> CSS / JQuery चिमटा
इस एक्सट्रैक्टर के लगभग सभी क्षेत्र रेगुलर एक्सप्रेशन एक्सट्रैक्टर फ़ील्ड के समान हैं, इसलिए आप उनका वर्णन उस उदाहरण से प्राप्त कर सकते हैं। हालांकि एक अंतर "सीएसएस / JQuery चिमटा कार्यान्वयन" क्षेत्र है। JMeter 2.9 के बाद से आप CSS / JQuery एक्स्ट्रेक्टर का उपयोग दो अलग-अलग कार्यान्वयनों के आधार पर कर सकते हैं: jsoup कार्यान्वयन (इसके सिंटैक्स का विस्तृत विवरण यहाँ ) या JODD लैगार्टो (विस्तृत सिंटैक्स यहाँ पाया जा सकता है )। दोनों कार्यान्वयन लगभग समान हैं और केवल छोटे वाक्यविन्यास अंतर हैं। उनके बीच का चुनाव उपयोगकर्ता की पसंद पर आधारित है।
उपर्युक्त विन्यास के आधार पर, हम अनुरोधित पृष्ठ से सभी विषयों को निकाल सकते हैं और "डीबग नमूना" और "परिणाम देखें ट्री" श्रोता का उपयोग करके निकाले गए परिणामों को सत्यापित कर सकते हैं।
JSON एक्सट्रैक्टर का उपयोग करके सहसंबंध
JSON आमतौर पर उपयोग किया जाने वाला डेटा प्रारूप है जो वेब आधारित अनुप्रयोगों में उपयोग किया जाता है। JMeter में JSON- आधारित प्रतिक्रियाओं से मान निकालने के लिए JMeter JSON चिमटा JSON पथ अभिव्यक्तियों का उपयोग करने का एक तरीका प्रदान करता है। इस पोस्ट प्रोसेसर को HTTP सैम्पलर के बच्चे के रूप में या किसी अन्य नमूने के लिए रखा जाना चाहिए जिसमें प्रतिक्रियाएँ हों।
इस घटक का उपयोग करने के लिए, JMeter मेनू खोलें और: Add -> पोस्ट प्रोसेसर -> JSON एक्सट्रैक्टर।
JSON एक्सट्रैक्टर रेगुलर एक्सप्रेशन एक्सट्रैक्टर के समान है। उस उदाहरण में लगभग सभी मुख्य क्षेत्रों का उल्लेख किया गया है। केवल एक विशिष्ट JSON एक्सट्रैक्टर पैरामीटर है: 'गणना संघनक var'। यदि कई परिणाम पाए जाते हैं, तो यह एक्सट्रैक्टर उन्हें _ALL नाम के एक संस्करण में ',' सेपरेटर का उपयोग करके और इसे स्टोर करके उन्हें समेट देगा।
आइए JSON के साथ इस सर्वर प्रतिक्रिया को मानें:
{
"store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{ "category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
नीचे दी गई तालिका एक निर्दिष्ट JSON से डेटा निकालने के विभिन्न तरीकों का एक शानदार उदाहरण प्रदान करती है:
इस लिंक के माध्यम से आप संबंधित उदाहरणों के साथ JSON पथ प्रारूप का अधिक विस्तृत विवरण पा सकते हैं।
ब्लेज़मीटर के 'स्मार्टजेएमएक्स' का उपयोग करके स्वचालित सहसंबंध
जब आप मैन्युअल रूप से अपनी प्रदर्शन स्क्रिप्ट लिखते हैं, तो आपको स्वयं सहसंबंध से निपटने की आवश्यकता होती है। लेकिन अपनी स्क्रिप्ट बनाने के लिए एक और विकल्प है - स्वचालन स्क्रिप्ट रिकॉर्डिंग। एक तरफ, मैनुअल दृष्टिकोण आपके लिखित संरचित स्क्रिप्ट को लिखने में मदद करता है और आप एक ही समय में सभी आवश्यक एक्सट्रैक्टर्स जोड़ सकते हैं। दूसरी ओर, यह दृष्टिकोण बहुत समय लेने वाला है।
ऑटोमेशन स्क्रिप्ट रिकॉर्डिंग बहुत आसान है और आपको एक ही काम करने देती है, केवल बहुत तेजी से। लेकिन यदि आप सामान्य रिकॉर्डिंग तरीकों का उपयोग करते हैं, तो स्क्रिप्ट बहुत ही असंरचित होगी और आमतौर पर अतिरिक्त पैराट्रिजेशन को जोड़ने की आवश्यकता होती है। ब्लेज़मीटर रिकॉर्डर पर "स्मार्ट जेएमएक्स" सुविधा दोनों तरीकों के फायदे को जोड़ती है। यह इस लिंक पर पाया जा सकता है: [ https://a.blazemeter.com/app/recorder/index.htmldesing1]
पंजीकरण के बाद "रिकॉर्डर" अनुभाग पर जाएं।
स्क्रिप्ट रिकॉर्डिंग शुरू करने के लिए, पहले आपको अपने ब्राउज़र के प्रॉक्सी ( यहां कवर ) को कॉन्फ़िगर करने की आवश्यकता है, लेकिन इस बार आपको प्रॉक्सी होस्ट और ब्लेज़मीटर रिकॉर्डर द्वारा प्रदान किया गया पोर्ट मिलना चाहिए।
जब ब्राउज़र कॉन्फ़िगर किया जाता है, तो आप नीचे लाल बटन दबाकर स्क्रिप्ट रिकॉर्डिंग के साथ आगे बढ़ सकते हैं। अब आप परीक्षण के तहत आवेदन पर जा सकते हैं और रिकॉर्डिंग के लिए उपयोगकर्ता वर्कफ़्लोज़ कर सकते हैं।
स्क्रिप्ट रिकॉर्ड होने के बाद, आप परिणामों को "SMART" JMX फ़ाइल में निर्यात कर सकते हैं। एक निर्यात की गई jmx फ़ाइल में उन विकल्पों की एक सूची होती है, जो आपको अतिरिक्त प्रयासों के बिना अपनी स्क्रिप्ट को कॉन्फ़िगर करने और मानकीकृत करने की अनुमति देते हैं। इन सुधारों में से एक यह है कि "SMART" JMX स्वचालित रूप से सहसंबंध के उम्मीदवारों को ढूंढता है, इसे उपयुक्त एक्सट्रैक्टर के साथ प्रतिस्थापित करता है, और आगे पैराट्रिजेशन के लिए एक आसान तरीका प्रदान करता है।