स्केलेबिलिटी टेस्टिंग क्या है? उदाहरण के साथ जानें
⚡ स्मार्ट सारांश
स्केलेबिलिटी टेस्टिंग यह मापती है कि उपयोगकर्ता भार, डेटा वॉल्यूम या लेनदेन दर बढ़ने या घटने पर कोई एप्लिकेशन कैसा व्यवहार करता है, जिससे वह सटीक बिंदु पता चलता है जहां प्रदर्शन का स्तर बढ़ना बंद हो जाता है और इसके लिए जिम्मेदार बाधा की पहचान होती है।
स्केलेबिलिटी परीक्षण क्या है?
स्केलेबिलिटी परीक्षण स्केलेबिलिटी टेस्टिंग एक गैर-कार्यात्मक परीक्षण विधि है जो उपयोगकर्ता अनुरोधों की संख्या में वृद्धि या कमी होने पर सिस्टम या नेटवर्क के प्रदर्शन को मापती है। इसका उद्देश्य यह सुनिश्चित करना है कि सिस्टम उपयोगकर्ता ट्रैफ़िक, डेटा वॉल्यूम और लेनदेन आवृत्ति में अनुमानित वृद्धि को संभाल सके। यह सिस्टम की बढ़ती मांग को पूरा करने की क्षमता का परीक्षण करता है।
स्केलेबिलिटी टेस्टिंग एक उपप्रकार है प्रदर्शन का परीक्षणइसलिए, यह किसी एप्लिकेशन के व्यवहार पर ध्यान केंद्रित करता है जब उसे किसी बड़े सिस्टम पर तैनात किया जाता है या अतिरिक्त भार के तहत उसका उपयोग किया जाता है। सॉफ्टवेयर इंजीनियरिंगस्केलेबिलिटी टेस्टिंग उस बिंदु को मापती है जहां कोई एप्लिकेशन स्केल करना बंद कर देता है और इसके पीछे के कारण की पहचान करती है।
स्केलेबिलिटी टेस्टिंग क्यों करें?
क्षमता संबंधी समस्याएं कार्यात्मक परीक्षण के दौरान शायद ही कभी सामने आती हैं। ये समस्याएं साल के सबसे व्यस्त कारोबारी दिन, किसी मार्केटिंग अभियान के शुरू होने पर, या दो साल तक चुपचाप बढ़ता हुआ डेटा सेट अंततः सभी क्वेरी को धीमा कर देने पर ही उभरती हैं। स्केलेबिलिटी टेस्टिंग नियंत्रित वातावरण में पहले ही इन सीमाओं को उजागर कर देती है। विशेष रूप से, यह आपकी मदद करती है:
- यह निर्धारित करें कि कार्यभार बढ़ने पर एप्लिकेशन किस प्रकार स्केल करता है, और वह वक्र कहाँ समतल हो जाता है।
- वेब एप्लिकेशन के लिए एक साथ उपयोग करने वाले उपयोगकर्ताओं की सीमा निर्धारित करें, इससे पहले कि प्रतिक्रिया समय अस्वीकार्य हो जाए।
- लोड की स्थिति में क्लाइंट-साइड की खराबी और अंतिम उपयोगकर्ता के अनुभव का पता लगाएं, जैसे कि स्क्रीन का धीमा रेंडर होना।
- सीपीयू संतृप्ति, मेमोरी लीक और कनेक्शन-पूल की कमी सहित सर्वर-साइड मजबूती और गिरावट का निर्धारण करें।
इस संबंध को एक वक्र के रूप में समझना सबसे आसान है: अतिरिक्त भार के साथ थ्रूपुट बढ़ता है जब तक कि कोई संसाधन संतृप्त नहीं हो जाता, जिसके बाद अतिरिक्त उपयोगकर्ता केवल कतार को लंबा कर देते हैं।
स्केलेबिलिटी परीक्षण के प्रकार
स्केलेबिलिटी कोई एकल गुण नहीं है, इसलिए एक परीक्षण योजना में आमतौर पर एक से अधिक आयाम शामिल होते हैं। नीचे दिए गए चार प्रकार वे हैं जिनका मापन अधिकांश टीमें करती हैं, और पहले दो प्रकार स्वयं परीक्षण वातावरण के स्वरूप को निर्धारित करते हैं।
| प्रकार | क्या मापा जाता है? | परीक्षण से क्या सिद्ध होता है |
|---|---|---|
| ऊर्ध्वाधर मापनीयता (स्केल अप) | किसी एक सर्वर में सीपीयू, मेमोरी या स्टोरेज जोड़ा गया | अपग्रेड की गई मशीन कितना अतिरिक्त भार सहन करती है, और सिंगल-नोड सीलिंग कहाँ स्थित है? |
| क्षैतिज मापनीयता (बाहर निकालना) | लोड बैलेंसर के पीछे अतिरिक्त सर्वर, कंटेनर या नोड | क्या थ्रूपुट जोड़े गए नोड्स के लगभग अनुपात में बढ़ता है, या क्या साझा संसाधन इसे सीमित करते हैं |
| कार्यात्मक स्केलेबिलिटी | नई सुविधाएँ, मॉड्यूल या सेवाएँ | क्या मौजूदा लेनदेन को प्रभावित किए बिना अतिरिक्त कार्यक्षमता को समाहित किया जा सकता है? |
| प्रशासनिक मापनीयता | प्रबंधित किए जाने वाले उपयोगकर्ता, किरायेदार, टीमें या वातावरण | संगठन के विकास के साथ-साथ ऑनबोर्डिंग, अनुमतियाँ और निगरानी की प्रक्रियाएँ कारगर बनी रहती हैं या नहीं। |
वर्टिकल स्केलिंग सरल है क्योंकि आर्किटेक्चर में शायद ही कभी बदलाव होता है, लेकिन एक मशीन की हमेशा एक सीमा होती है। हॉरिजॉन्टल स्केलिंग उस सीमा को हटा देती है और फॉल्ट टॉलरेंस को बेहतर बनाती है, हालांकि इसके बदले नेटवर्क लेटेंसी, डेटा कंसिस्टेंसी और कोऑर्डिनेशन ओवरहेड जैसी समस्याएं आती हैं - इन सभी को टेस्ट में मापना आवश्यक है, न कि अनुमान लगाना।
स्केलेबिलिटी टेस्टिंग में क्या-क्या टेस्ट करना चाहिए
स्केलेबिलिटी का आकलन मापों के आधार पर किया जाता है, न कि तात्कालिक परिणामों के आधार पर। प्रत्येक लोड चरण पर निम्नलिखित विशेषताओं को रिकॉर्ड करें ताकि केवल अंतिम संख्या ही नहीं, बल्कि समग्र रुझान भी दिखाई दे।
| विशेषता | यह आपको क्या बताता है? |
|---|---|
| जवाब देने का समय | उपयोगकर्ता के अनुरोध और सिस्टम की प्रतिक्रिया के बीच का समय; समवर्तीता बढ़ने पर भी यह स्थिर रहना चाहिए। |
| स्क्रीन संक्रमण | लोड होने पर एक पेज या व्यू कितनी जल्दी दूसरे पेज या व्यू में बदल जाता है |
| प्रवाह | प्रति इकाई समय में संसाधित अनुरोधों की संख्या; एक पठार स्केलेबिलिटी सीमा को दर्शाता है। |
| समय माप | सत्र समय, रीबूट समय, प्रिंटिंग समय, लेनदेन समय और कार्य निष्पादन समय |
| उपयोगकर्ता संख्या के आधार पर प्रदर्शन | जैसे-जैसे एक साथ कई उपयोगकर्ताओं की संख्या बढ़ती जाती है, प्रत्येक मीट्रिक में क्या परिवर्तन होता है? |
| दरों का अनुरोध करें | प्रति सेकंड अनुरोध, प्रति सेकंड लेनदेन और प्रति सेकंड हिट |
| नेटवर्क उपयोग | उपयोग की गई बैंडविड्थ और विभिन्न स्तरों के बीच पैकेट विलंबता |
| सीपीयू और मेमोरी उपयोग | प्रति लेनदेन संसाधन लागत; लगातार बढ़ती हुई लागत अक्सर किसी गड़बड़ी का संकेत देती है। |
| वेब सर्वर काउंटर | प्रति सेकंड अनुरोध और प्रतिक्रियाएँ, कतार की गहराई और अस्वीकृत कनेक्शन |
| लोड के तहत प्रदर्शन | जब सभी मेट्रिक को एक साथ पीक पर पढ़ा जाता है तो संयुक्त व्यवहार |
स्केलेबिलिटी टेस्टिंग के लिए परीक्षण रणनीति
स्केलेबिलिटी टेस्टिंग की परीक्षण रणनीति परीक्षण किए जा रहे एप्लिकेशन के प्रकार के आधार पर भिन्न होती है। यदि कोई एप्लिकेशन किसी विशिष्ट एप्लिकेशन तक पहुँचता है, तो परीक्षण रणनीति अलग-अलग हो सकती है। डेटाबेसपरीक्षण मापदंडों में उपयोगकर्ताओं की संख्या के संबंध में डेटाबेस का आकार आदि शामिल होंगे।
स्केलेबिलिटी परीक्षण के लिए पूर्वापेक्षाएँ
- भार वितरण क्षमता — यह जांचें कि लोड परीक्षण उपकरण कई मशीनों से लोड उत्पन्न करने और उसे एक केंद्रीय बिंदु से नियंत्रित करने में सक्षम है या नहीं।
- Operaटिंग सिस्टम — जाँच करें कि क्या ऑपरेटिंग सिस्टम लोड जनरेशन एजेंट और लोड टेस्ट मास्टर इसके अंतर्गत चलते हैं।
- प्रोसेसर — वर्चुअल यूजर एजेंट और लोड टेस्ट मास्टर के लिए किस प्रकार के सीपीयू की आवश्यकता है, इसकी जांच करें।
- याद — यह जांचें कि वर्चुअल यूजर एजेंट और लोड टेस्ट मास्टर के लिए कितनी मेमोरी पर्याप्त होगी।
- परीक्षण का वातावरण — यह सुनिश्चित करें कि परीक्षण का वातावरण उत्पादन प्रक्रिया इतनी सटीक रूप से प्रतिबिंबित होती है कि परिणाम समान रूप से लागू हो सकें।
स्केलेबिलिटी परीक्षण कैसे करें
- एप्लिकेशन के पूरे जीवनचक्र में स्केलेबिलिटी परीक्षणों को निष्पादित करने के लिए एक दोहराने योग्य प्रक्रिया को परिभाषित करें।
- मापनीयता के लिए मानदंड निर्धारित करें
- लोड परीक्षण चलाने के लिए आवश्यक सॉफ़्टवेयर टूल की सूची बनाएं
- परीक्षण वातावरण सेट करें और स्केलेबिलिटी परीक्षण निष्पादित करने के लिए आवश्यक हार्डवेयर कॉन्फ़िगर करें
- परीक्षण परिदृश्यों के साथ-साथ स्केलेबिलिटी परीक्षणों की योजना बनाएं।
- वर्चुअल उपयोगकर्ता स्क्रिप्ट बनाएं और सत्यापित करें
- लोड परीक्षण परिदृश्य बनाएं और सत्यापित करें
- परीक्षण निष्पादित करें
- परिणामों का मूल्यांकन करें
- आवश्यक रिपोर्ट तैयार करें
स्केलेबिलिटी परीक्षण योजना
टेस्ट बनाने से पहले, एक विस्तृत टेस्ट प्लान तैयार करें। यह सुनिश्चित करने के लिए एक महत्वपूर्ण कदम है कि टेस्ट एप्लिकेशन की आवश्यकताओं के अनुरूप हो।
एक सुपरिभाषित ब्लॉग बनाने के लिए निम्नलिखित विशेषताएँ हैं जाँच की योजना स्केलेबिलिटी परीक्षण के लिए.
- स्क्रिप्ट के लिए चरणटेस्ट स्क्रिप्ट में विस्तृत चरण होने चाहिए जो उपयोगकर्ता द्वारा की जाने वाली सटीक कार्रवाइयों को निर्धारित करते हों।
- रन-टाइम डेटाटेस्ट प्लान में एप्लिकेशन के साथ इंटरैक्ट करने के लिए आवश्यक किसी भी रन-टाइम डेटा का निर्धारण किया जाना चाहिए।
- डेटा संचालित परीक्षणयदि स्क्रिप्ट को रन-टाइम पर अलग-अलग डेटा की आवश्यकता होती है, तो आपको उन सभी फ़ील्ड्स की समझ होनी चाहिए जिन्हें इस डेटा की आवश्यकता होती है।
स्केलेबिलिटी परीक्षण का उदाहरण
मान लीजिए एक ऑनलाइन स्टोर है जो मौसमी सेल के दौरान एक साथ 2,000 खरीदारों की उम्मीद करता है। टीम पहले एक पास मानदंड पर सहमत होती है: चेकआउट लेनदेन 95 प्रतिशत उपयोगकर्ताओं के लिए तीन सेकंड से कम समय में पूरा होना चाहिए, जिसमें त्रुटि दर एक प्रतिशत से कम हो।
इसके बाद परीक्षण में उसी ब्राउज़-सर्च-कार्ट-चेकआउट स्क्रिप्ट को 250, 500, 1,000, 1,500 और 2,000 वर्चुअल उपयोगकर्ताओं पर चलाया गया। 1,000 उपयोगकर्ताओं तक प्रतिक्रिया समय लगभग दो सेकंड बना रहता है, 1,500 उपयोगकर्ताओं पर यह बढ़कर 2.8 सेकंड हो जाता है और 2,000 उपयोगकर्ताओं पर नौ सेकंड तक पहुंच जाता है, जबकि डेटाबेस CPU 98 प्रतिशत पर रहता है। इसलिए, स्केलेबिलिटी की सीमा लगभग 1,500 उपयोगकर्ता है, और बाधा डेटाबेस स्तर है - न कि वे एप्लिकेशन सर्वर जिन्हें टीम ने जोड़ने की योजना बनाई थी।
स्केलेबिलिटी परीक्षण उपकरण
स्केलेबिलिटी टेस्टिंग के लिए एक ऐसे टूल की आवश्यकता होती है जो एक साथ कई मशीनों से लोड उत्पन्न कर सके और परिणामों को केंद्रीय रूप से रिपोर्ट कर सके। इसका चुनाव आमतौर पर टीम की मुख्य भाषा और परीक्षण किए जा रहे प्रोटोकॉल के आधार पर किया जाता है।
| उपकरण | स्क्रिप्टिंग | के लिए सबसे उपयुक्त |
|---|---|---|
| Apache JMeter | जीयूआई और एक्सएमएल परीक्षण योजनाएं, Java आधारित | जेडीबीसी, जेएमएस, एलडीएपी और एसओएपी सहित व्यापक प्रोटोकॉल कवरेज |
| ग्राफ़ाना k6 | Javaस्क्रिप्ट या TypeScript | API और माइक्रोसर्विस परीक्षणों को CI/CD पाइपलाइन में एकीकृत किया गया है। |
| गैटलिंग | Javaकोटलिन या स्काला डीएसएल | प्रत्येक इंजेक्टर के लिए उच्च आभासी उपयोगकर्ता संख्या और विस्तृत HTML रिपोर्ट |
| टिड्डी | मैदान Python | Python वे टीमें जिन्हें HTTP से परे क्लाइंट का विस्तार करने की आवश्यकता है |
| लोडरनर | VuGen में रिकॉर्ड की गई C जैसी स्क्रिप्ट | पुराने और पैकेजित अनुप्रयोगों वाले बड़े उद्यम समूह |
क्लाउड-होस्टेड रनर जैसे BlazeMeterLoadView और Gatling Enterprise इनमें से कई इंजनों के शीर्ष पर स्थित हैं और परीक्षण के लिए हजारों आभासी उपयोगकर्ताओं या कई भौगोलिक क्षेत्रों से ट्रैफ़िक की आवश्यकता होने पर इन पर विचार करना उचित है। इस श्रेणी का व्यापक सर्वेक्षण गाइड में उपलब्ध है। प्रदर्शन परीक्षण उपकरण.
स्केलेबिलिटी टेस्टिंग में चुनौतियाँ और सर्वोत्तम अभ्यास
अत्यंत निराशाजनक स्केलेबिलिटी परिणाम tracएप्लिकेशन के बजाय टेस्ट सेटअप पर वापस जाएं। ये वे समस्याएं हैं जो बार-बार होती हैं, और वे आदतें जो इन्हें रोकती हैं।
आम चुनौतियां
- छोटे आकार के वातावरण — उत्पादन मेमोरी की आधी मेमोरी वाले एक परीक्षण रिग में एक ऐसी बाधा उत्पन्न होने की सूचना मिलती है जो उत्पादन में मौजूद नहीं है।
- अवास्तविक कार्यभार मॉडल — बिना थिंक टाइम या डेटा वेरिएशन वाली स्क्रिप्ट उन कैश को हिट करती हैं जिन्हें वास्तविक उपयोगकर्ता अनदेखा कर देते हैं।
- शोरगुल भरे परिणाम — ऑटो-स्केलिंग, गार्बेज कलेक्शन और साझा क्लाउड हार्डवेयर के कारण दो समान रन में असहमति पाई गई।
- पतली अवलोकन क्षमता — सर्वर-साइड मेट्रिक्स के बिना, धीमा परिणाम यह दर्शाता है कि कुछ गड़बड़ हुई है, लेकिन यह नहीं कि क्या गड़बड़ हुई है।
- लागत बहुत अधिक समवर्तीता उत्पन्न करने के लिए लोड जनरेटरों के अपने बेड़े की आवश्यकता होती है, जिसके लिए बजट कम पड़ सकता है।
सर्वोत्तम प्रथाएं
- पहले रन से पहले पास होने के मानदंडों पर सहमति बना लें, जैसे कि प्रतिक्रिया समय प्रतिशत और त्रुटि दर की अधिकतम सीमा।
- योजनाबद्ध तरीके से लोड बढ़ाएं और सिस्टम को स्थिर होने के लिए प्रत्येक चरण को पर्याप्त समय तक बनाए रखें।
- प्रत्येक वर्चुअल उपयोगकर्ता के लिए परीक्षण डेटा को अलग-अलग रखें ताकि कैशिंग परिणामों को प्रभावित न करे।
- क्लाइंट-साइड संख्याओं के साथ-साथ एप्लिकेशन, डेटाबेस और इंफ्रास्ट्रक्चर मेट्रिक्स भी एकत्र करें।
- टेस्ट स्क्रिप्ट को वर्जन कंट्रोल में स्टोर करें और प्रत्येक बिल्ड पर एक संक्षिप्त स्केलेबिलिटी जांच चलाएं, फिर रिलीज से पहले एक पूर्ण रन चलाएं।
- किसी एक रिपोर्ट का अलग से मूल्यांकन करने के बजाय, विभिन्न बिल्ड्स में रुझानों की तुलना करें।
स्केलेबिलिटी टेस्टिंग बनाम लोड टेस्टिंग
इन दोनों को अक्सर एक दूसरे से भ्रमित किया जाता है क्योंकि दोनों ही लोड डालते हैं। अंतर इस बात में निहित है कि प्रत्येक किस प्रश्न का उत्तर देता है: स्केलेबिलिटी टेस्टिंग यह पूछती है कि सिस्टम कितना बढ़ सकता है, जबकि लोड परीक्षण यह पूछता है कि क्या यह पहले से अपेक्षित भार को संभालने में सक्षम है।
| आधार | स्केलेबिलिटी परीक्षण | लोड परीक्षण |
|---|---|---|
| फोकस | यह बढ़ती आवश्यकता को पूरा करने के लिए सिस्टम के आकार या मात्रा में किए गए परिवर्तनों के दौरान आपकी वेबसाइटों, सॉफ़्टवेयर, हार्डवेयर और एप्लिकेशन के प्रदर्शन पर ध्यान केंद्रित करता है। | लोड टेस्टिंग का मुख्य उद्देश्य किसी एप्लिकेशन को भारी लोड के तहत टेस्ट करना है, ताकि यह निर्धारित किया जा सके कि सिस्टम की प्रतिक्रिया समय किस बिंदु पर विफल हो जाती है। |
| लोड पैटर्न | लोड को चरणों में बढ़ाया जाता है, और चरणों के बीच संसाधन जोड़े जा सकते हैं। | लोड को एक निश्चित अवधि के लिए अपेक्षित अधिकतम स्तर पर बनाए रखा जाता है। |
| प्रश्न का उत्तर दिया गया | यह प्रणाली कितनी दूर तक विकसित हो सकती है, और इसे क्या सीमित करता है? | क्या यह प्रणाली आज अपने निर्धारित लक्ष्यों को पूरा करती है? |
| विशिष्ट आउटपुट | स्केलेबिलिटी की सीमा, एक अड़चन और एक क्षमता योजना | प्रतिक्रिया समय और थ्रूपुट लक्ष्यों के आधार पर उत्तीर्ण या असफल |
दोनों नीचे बैठते हैं गैर-कार्यात्मक परीक्षण छाता साथ में तनाव परीक्षण, स्पाइक परीक्षण, सहनशक्ति परीक्षण और मात्रा परीक्षणऔर एक परिपक्व प्रदर्शन रणनीति आमतौर पर उनमें से कई को एक ही स्क्रिप्ट के विरुद्ध चलाती है।

