JMeter - एक परिचय

लेखक
Damian
Terlecki
6 मिनट पढ़ें
टेस्टिंग

JMeter एक ओपन-सोर्स जावा टूल है जिसका उपयोग अक्सर परफॉर्मेंस टेस्टिंग के लिए किया जाता है ताकि भारी लोड की स्थितियों में सिस्टम के व्यवहार का पता लगाया जा सके। हालाँकि, यह JMeter का मुख्य उद्देश्य है, लेकिन इसका उपयोग वास्तव में अधिकांश सिस्टम टेस्ट चलाने के लिए किया जा सकता है जैसे:

  • फंक्शनलिटी टेस्ट्स;
  • परफॉर्मेंस टेस्ट्स;
  • लोड और स्टेबिलिटी टेस्ट्स;
  • स्केलेबिलिटी टेस्ट्स;
  • रिग्रेशन टेस्ट्स।
टेस्टिंग के चरण

सिस्टम टेस्टिंग, यूनिट और इंटीग्रेशन टेस्टिंग के बाद, लेकिन एक्सेप्टेंस टेस्ट से पहले की जाती है। यह आमतौर पर डेवलपमेंट/टेस्टिंग टीम द्वारा किया जाने वाला अंतिम चरण होता है। आप तर्क दे सकते हैं, कि आपको सिस्टम टेस्टिंग के लिए एक अतिरिक्त टूल की आवश्यकता नहीं है - और यह आपके मामले में सच हो सकता है। आप बस डेवलपमेंट के दौरान इंटीग्रेशन स्तर पर पूरी तरह से इंटीग्रेटेड मॉड्यूल के साथ कुछ टेस्ट लिख सकते हैं - और यह भी काम कर सकता है। हालाँकि, बहुत सारे मामले हैं, जब बिना किसी ट्रिक के हर आवश्यकता की जांच करना मुश्किल होगा।

यहीं पर JMeter चमकता है - आपको एक ऐसा टूल मिलता है जो विशेष रूप से इस तरह के टेस्ट के लिए तैयार किया गया है। सबसे पहले, आप अपने टेस्ट के लिए उपयोगकर्ताओं (थ्रेड्स) की वांछित संख्या को आसानी से कॉन्फ़िगर कर सकते हैं। ऐसा करने के लिए, Test Plan पर RMB के साथ क्लिक करें और Add सूची से विकल्प चुनें। यदि आपको और चाहिए - तो आप स्टार्टअप देरी, रैंप-अप अवधि को भी परिभाषित कर सकते हैं और चुन सकते हैं कि जब सैंपलर (एकल टेस्ट के समान) विफल हो जाता है तो क्या करना है। प्रत्येक थ्रेड के लिए कई सैंपलर चुने जा सकते हैं:

  • HTTP Sampler - किसी साइट पर जाने वाले उपयोगकर्ता का अनुकरण करें, REST या SOAP वेब सेवाओं का परीक्षण करें;
  • JDBC Sampler - डेटा को सत्यापित करने या DML क्वेरी निष्पादित करने के लिए डेटाबेस से कनेक्ट करें (इसके लिए JDBC Connection Configuration तत्व की आवश्यकता है);
  • JSR223 Sampler - जावा प्लेटफॉर्म के लिए स्क्रिप्टिंग (ग्रूवी/बीनशेल/जावास्क्रिप्ट/...) का उपयोग करें;
  • SMTP और Mail Reader Samplers - SMTP सर्वर का परीक्षण करें या सत्यापित करें कि ईमेल डिलीवर हुआ है या नहीं;
  • JMS Samplers;
  • TCP Sampler;
  • FTP Request;
  • JUnit Request;

प्रत्येक सैंपलर के लिए आप विभिन्न प्रकार के एसर्शन जोड़ सकते हैं (RMB->Add) जो डेटा को सत्यापित कर सकते हैं:

  • Response Assertion - RegEx क्षमताओं के साथ प्रतिक्रिया (हेडर/बॉडी/स्टेटस) का डिफ़ॉल्ट सत्यापन;
  • JSON Assertion - JSON पाथ और वैकल्पिक RegEx का उपयोग करके JSON प्रतिक्रिया डेटा को सत्यापित करता है;
  • JSR223 Assertion - सत्यापन के लिए स्क्रिप्टिंग भाषा का उपयोग करता है;
  • XPath Assertion - JSON पाथ के समान लेकिन XML के लिए;

छोटे टेस्ट केस में GUI एसर्शन का उपयोग करना चाहिए। अधिक जटिल समस्याओं के लिए, यदि आप एक डेवलपर हैं, तो आप शायद JSR223 Assertion के साथ सबसे कुशल होंगे (JMeter की बोझिलता और सीमित डीबग विकल्पों के अलावा)। अन्यथा, मैं Logic Controllers (if/while/for) और Post Processors (एक्सट्रैक्टर्स) के साथ टेस्ट प्लान को पुनर्गठित करने का सुझाव देता हूँ। Pre और Post Processors का उपयोग एक चयनित सैंपलर के लिए सैंपलर निष्पादन से पहले और बाद में लॉजिक निष्पादित करने के लिए किया जा सकता है।

JMeter में बॉक्स से बाहर बची हुई चीजें हैं Timers, Config Elements और Listener। पूर्ववर्ती समय को प्रबंधित करने का एक आसान तरीका प्रदान करते हैं - थ्रेड्स को रोकें, उन्हें ग्रुपिंग के लिए रोकें या अपेक्षित थ्रूपुट तक पहुंचने के लिए देरी करें। कॉन्फ़िगरेशन तत्वों का उपयोग पैरामीटर, काउंटर, अनुरोधों के लिए डिफ़ॉल्ट और कनेक्शन कॉन्फ़िगरेशन को परिभाषित करने के लिए किया जा सकता है। श्रोता परीक्षण परिणामों की कल्पना करने का एक तरीका प्रदान करते हैं।

अंत में, कुछ चीजें जिनका आप शायद टेस्ट विकसित करते समय सबसे अधिक उपयोग करेंगे, वे हैं:

  • Debug Samplers और Debug Post Processors - वेरिएबल मानों के साथ सैंपलर इनपुट और आउटपुट लॉग प्रदान करते हैं;
  • View Results Tree (Listener) - लॉग के साथ-साथ परीक्षणों के परिणाम देखने के लिए;
  • Summary या Aggregate Report (Listeners) - प्रदर्शन परीक्षण आँकड़े आउटपुट;
  • User Parameters (Pre Processor) या User Defined Variables (Config Element) - पैरामीटर (पैरामीटर मान प्राप्त करने के लिए ${param_name} सिंटैक्स का उपयोग करें) या वेरिएबल्स को परिभाषित करने के लिए।

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