आपका अनुप्रयोग पूरी तरह से अपने लैपटॉप पर काम करता है। इकाई जाँच चल रहा है। आप उत्पादन करने के लिए कार्रवाई, और अचानक सब कुछ समेटने के लिए इकट्ठा होता है। पांच सौ वास्तविक प्रयोक्ता आपके घर के लिए एक साथ चला जाता है, और आपका सर्वर 503 त्रुटियाँ शुरू होता है। आपका ध्यान से अपलिंग रणनीति शुरू करता है? यह आपको लगता है की तरह काम नहीं करता है। यह बहुत तेज है कि आप सोच रहे हैं? यह एक बोतल बनाने के लिए तैयार है।
यह हर डेवलपर भय है, लेकिन अधिकांश के लिए परीक्षण नहीं है। परफ़ॉर्मेंस जाँच वैकल्पिक नहीं है - यह एक सफल लांच और एक 3 आपातकालीन पृष्ठ के बीच अंतर है. यह दो अप मार्गदर्शक आपको दिखा देगा कि कैसे इस स्थिति को 06 के उपयोग से रोका जा सकता है, आधुनिक लोड जाँच औज़ार है कि व्यावसायिक अनुप्रयोगों के लिए पर्याप्त शक्तिशाली है लेकिन आपके सीआईI/CDs को चलाने के लिए पर्याप्त सरल.
यह है पार्ट 1 के- 6 के जरिए जांच पर एक दो भाग की श्रृंखला:
परफ़ॉर्मेंस जाँच किसी भी उत्पादन के लिए महत्वपूर्ण है. क्या आप एक सरल ब्लॉग, एक जटिल सूक्ष्म रचना, या एक व्यावसायिक अनुप्रयोग बना रहे हैं, आपको पता लगाने की जरूरत है कि आपका अनुप्रयोग कैसे बोझ तले व्यवहार करता है. क्या यह 100 cundsssssss? 1000 कहां है? क्या आपकी रणनीति वास्तव में काम करता है?
यह व्यापक मार्गदर्शक आपको दिखाता है कि कैसे प्रमाणीकरण करने के लिए वेरिकार्ड अनुप्रयोग उपयोग में लिए जा रहे हैं के6 - सबसे शक्तिशाली ओपन-source टेस्ट औज़ारों में से एक उपलब्ध हैं. जबकि हम उपयोग करेंगे न्यूनतम ब्लॉग हमारे उदाहरण अनुप्रयोग के रूप में (एक सरल चिह्न आधारित ब्लॉग को मेमोरी व आउटपुट कोडिंग के साथ जारी रखते हैं) तकनीकों और पैटर्नों के रूप में यहाँ लागू होते हैं कोई भी एनईएस. int अनुप्रयोग.
इस दो भाग श्रृंखला के अंत तक, आप कैसे पता चल जाएगा:
उदाहरण के रूप में न्यूनतम ब्लॉगर क्यों? यह एक वास्तविक Abe.NT 90 अनुप्रयोग आम पैटर्न के साथ है: Razor पृष्ठ, स्मृति Cons, Caming, T/O अपिंग, फ़ाइल अपिंग, और निशानन प्रक्रिया. जाँच के आस पास आप अपने एमVC, वेब MVC के लिए बराबर लागू होगी, MVC, MVC, MVAT, या न्यूनतम अनुप्रयोग.
के6 विकासकर्ता के लिए बनाया गया आधुनिक जाँच औज़ार है. JMoter या लोड करने के लिए पुराने औज़ारों से भिन्न हैं, के-6 है:
न्यूनतम ब्लॉग के लिए, के६ आदर्श है क्योंकि:
विकल्प 1: चॉकलेटी इस्तेमाल किया जा रहा है (पुष्टि)
choco install k6
विकल्प 2: वॉट प्रयोग किया जा रहा है
winget install k6 --source winget
विकल्प 3: मैनुअल संस्थापन
k6.exe फ़ाइलk6.exe एक निर्देशिका पहले से ही पथ मेंसंस्थापन सत्यापित करें:
k6 version
विकल्प 1: होम-टाइप प्रयोग में लिया जा रहा है (पुष्टि)
brew install k6
विकल्प 2: मैज पोर्ट्स का उपयोग कर रहा है
sudo port install k6
विकल्प 3: मैनुअल संस्थापन
# Download and install the latest release
curl -O -L https://github.com/grafana/k6/releases/latest/download/k6-macos-amd64.zip
unzip k6-macos-amd64.zip
sudo cp k6-macos-amd64/k6 /usr/local/bin/
sudo chmod +x /usr/local/bin/k6
संस्थापन सत्यापित करें:
k6 version
विकल्प 1: पैकेज प्रबंधक का उपयोग
के लिए डेबियन/ डब्लूय:
sudo gpg -k
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69
echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list
sudo apt-get update
sudo apt-get install k6
के लिए फेला/CHOP/RHE:
sudo dnf install https://dl.k6.io/rpm/repo.rpm
sudo dnf install k6
विकल्प 2: स्नैप इस्तेमाल किया जा रहा है
sudo snap install k6
विकल्प 3: मैनुअल संस्थापन
# Download the latest release
curl -O -L https://github.com/grafana/k6/releases/latest/download/k6-linux-amd64.tar.gz
tar -xzf k6-linux-amd64.tar.gz
sudo cp k6-linux-amd64/k6 /usr/local/bin/
sudo chmod +x /usr/local/bin/k6
विकल्प ४: उपयोगक
docker pull grafana/k6:latest
# Run a test
docker run --rm -i grafana/k6:latest run - <script.js
संस्थापन सत्यापित करें:
k6 version
परीक्षण में कटौती से पहले, चलो एक k6 परीक्षा के बुनियादी संरचना को समझने के लिए:
import http from 'k6/http';
import { check, sleep } from 'k6';
// Test configuration
export const options = {
vus: 10, // Virtual users
duration: '30s', // Test duration
};
// Setup function (runs once before test)
export function setup() {
// Prepare test data
return { baseUrl: 'http://localhost:5000' };
}
// Main test function (runs for each VU)
export default function(data) {
const response = http.get(data.baseUrl);
// Assertions
check(response, {
'status is 200': (r) => r.status === 200,
'response time < 200ms': (r) => r.timings.duration < 200,
});
sleep(1); // Wait between iterations
}
// Teardown function (runs once after test)
export function teardown(data) {
// Clean up
}
कुंजी मूल्य:
अपने अनुप्रयोग की जाँच करने से पहले, चलो पांच मुख्य प्रकार के लोड परीक्षण को समझें और प्रत्येक का उपयोग करने के लिए:
graph TD
A[Performance Testing Types] --> B[Smoke Test]
A --> C[Load Test]
A --> D[Stress Test]
A --> E[Spike Test]
A --> F[Soak Test]
B --> B1[1-2 VUs<br/>30s-1min<br/>Basic Functionality]
C --> C1[Normal Load<br/>5-15 minutes<br/>Verify SLAs]
D --> D1[Gradual Increase<br/>10-30 minutes<br/>Find Breaking Point]
E --> E1[Sudden Spike<br/>5-10 minutes<br/>Test Recovery]
F --> F1[Normal Load<br/>Hours/Days<br/>Memory Leaks]
style B stroke:#90EE90
style C stroke:#87CEEB
style D stroke:#FFD700
style E stroke:#FF6347
style F stroke:#DDA0DD
उद्देश्य: तंत्र कम से कम भार के नीचे काम करता है सत्यापित करें
कब इस्तेमाल किया जाए:
अक्षर- चिह्न:
उद्देश्य: आम तौर पर काम करना
कब इस्तेमाल किया जाए:
अक्षर- चिह्न:
उद्देश्यजोडीयॉं ढुॅंढे
कब इस्तेमाल किया जाए:
अक्षर- चिह्न:
उद्देश्य: अचानक ट्रैफिक जाम के दौरान जाँच - पड़ताल करना
कब इस्तेमाल किया जाए:
अक्षर- चिह्न:
उद्देश्यसमय के साथ स्मृति रिसाव और अपमान प्राप्त करें
कब इस्तेमाल किया जाए:
अक्षर- चिह्न:
graph LR
A[Start] --> B{Smoke Test Pass?}
B -->|No| C[Fix Issues]
C --> A
B -->|Yes| D{Load Test Pass?}
D -->|No| E[Optimize]
E --> D
D -->|Yes| F{Stress Test}
F --> G{Found Limit?}
G -->|Yes| H[Document Capacity]
G -->|No| I[Increase Load]
I --> F
H --> J{Spike Test Pass?}
J -->|No| K[Improve Resilience]
K --> J
J -->|Yes| L{Soak Test}
L --> M{Memory Stable?}
M -->|No| N[Fix Memory Leaks]
N --> L
M -->|Yes| O[Production Ready]
style O stroke:#90EE90
इतने सारे लोड जाँच औज़ारों के साथ, आपको के6 क्यों चुनना चाहिए? चलो लोकप्रिय विकल्पों के साथ के K6 की तुलना करें:
स्ट्रांग जे मीटर परीक्षण औज़ारों को लोड करने के लिए अनुभवी है (बी. बी.
Amak विशेषता k6im Jeta |---------|----|---------| | संस्थापन INVECKS द्विचर, कोई निर्भरता लागू जावा आवश्यक नहीं, भारी संस्थापित करें | परिभाषा जाँचें INV जावास्क्रिप्ट कोड तमाम एक्सएमएल या जीयूआई सरकशी | संसाधन उपयोग INBS हल्के रंग (जाते) japan. kgm | सीआई/सीडी संयोजन Kmute बढ़िया (CLI- प्रथम) आवश्यक प्लगइन से पूछताछ | वक्र को समझ रहा है विकासकर्ता के लिए स्लोर, जीयूआई-फ़्यूड | प्रोटोकॉल समर्थन UNV HTTP, वेबकॉट्स, gPRCPC BFester (FTPC, JDBC, SMTP, आदि.)
बदले में जब Jmetter इस्तेमाल किया जाए:
क्यों केडी6 अधिक से अधिक एनईएस के लिए बेहतर है. Nint Cons:
बिन्दुपथ पायथन आधारित जांच औज़ार है, पायथन की दुकानों में लोकप्रिय.
Libbrazil. kgm |---------|----|---------| | भाषा कामों के लिए अज़ीज़ जावास्क्रिप्ट बड़े ही बुलंद आवाज़ देते हैं | परफार्मेंस SERMAN बहुत तेज (जाकते हुए) 2002- 2006 धीमा (एंपेथी जीएल) Name | इस्तेमाल की वजह से स्लोवेनिया सादा जावास्क्रिप्ट BAR पायथनी, आसान BAR | सामान्यीकृत जाँच एनटी k6 बादल (पारिविव- लाइन) 2002- 2006 | वेब यूआई एसआईएससी सीमा एनईसी बढ़िया समय यूआई | मेट्रिक निर्यात Libisofs ने कई फ़ॉर्मेट किए CSV, वेब यूआई
जब स्थान का इस्तेमाल किया जाए (a)
क्यों केडी6 अधिक से अधिक एनईएस के लिए बेहतर है. Nint Cons:
गैटलिंग एक स्केलिक आधारित औज़ार उत्तम समाचार रपट के साथ है.
INBGECKS k6BLLLLLLLLLLGenericName |---------|----|---------| | भाषा BAR जावास्क्रिप्ट राहू/JavadGenericName | अहवाल INBOX मूल (+ एक्सटेंशन), सुंदर रूप से निर्मित HTML रिपोर्टों के द्वारा | वक्र को समझ रहा है SWACKS आसान मोडरेट ( स्केल डीएसएल) | परफार्मेंस बहुत ही अच्छा अन्दाज़ा | स्रोत खोलें WACKRT पूरी तरह से खुला ओपन- व्यावसायिक जोड़ने के साथ खोलें | बादल सेवा Libisofs के द्वारा 66 बादल सरफेश गंदल गर्मिंग
जब बदले में गैसलिंग इस्तेमाल किया जाए:
क्यों केडी6 अधिक से अधिक एनईएस के लिए बेहतर है. Nint Cons:
कलाकी एक अन्य जावास्क्रिप्ट जाँच औज़ार लोड करता है.
एलआईएसएमकेमhaiti. kgm |---------|----|---------| | परिभाषा जाँचें INBS जावास्क्रिप्ट कोड YAएमएल + साइनआउट | परफार्मेंस ख़र (जागंपारीक) japan. kgm | इस्तेमाल की वजह से अतुल्यकालिक कोड आधारित YAएमएल कॉन्फ़िग- आधारित | के लिए बनाया गया Libisofs का लोड करें + सामान्य परीक्षणGenericName | अ- धातु बढ़िया सीमा सीमा "% 1" आधारभूत अपेक्षाएँ "% 1" | अनंतता विस्तार विस्तार विस्तार विस्तार एक्सटेंशन्स प्लगइन्स
इसके बजाय कला का उपयोग करने के लिए:
क्यों केडी6 अधिक से अधिक एनईएस के लिए बेहतर है. Nint Cons:
बैकk एक हल्का HTTP च्यूटिंग औज़ार है.
INVERTCKTCKS clanama. kgm |---------|----|---------| | इस्तेमाल की वजह से सीमित उच्च-स्तर API लो- लेवल सी + Luap | उदाहरण Libisofs का समर्थन करता है ("%s") | मेट्रिक्स गणना करें जो अतिरिक्तांक मूल | स्क्रिप्टिंग कामों के लिए नमूना बना | केस इस्तेमाल करें शिर्क करनेवालों के लिए पूर्ण जाँच
इसके बजाए डले का उपयोग करने के लिए:
क्यों केडी6 अधिक से अधिक एनईएस के लिए बेहतर है. Nint Cons:
खेलें- दायाँ और सलीड परीक्षण के लिए कभी कभी कभी ब्राउज़र कुंजियाँ इस्तेमाल की जाती हैं.
INBGECKS k6JOWPP/CHELLLLLLONKol |---------|----|---------| | नीचे जाएँ गोपित प्रोटोकॉल- लेवल HTTPibrazil. kgm | परफार्मेंस वीयूस की हज़ार हज़ार लोग ब्राउज़रों का दसवाँ हिस्सा | संसाधन उपयोग हल्की हल्के रंग वाला भारी (ब्रोजर) हालत मेंweather condition | जावास्क्रिप्ट चलाना एनटीएलएम जीएमईName | प्राथमिक उपयोग केस सीजेके जाँच- जाँच- पड़ताल
इसके बजाए जब बजाने का उपयोग करें (y)
क्यों केडी6 अधिक से अधिक एनईएस के लिए बेहतर है. Nint Cons:
जब आप चाहते हैं कि के6 चुनें:
के- 6 के लिए सही है:
यदि आपको ज़रूरत है तो विकल्पों पर विचार कीजिए:
अब कि आप समझ सकते हैं कि क्या है, कैसे यह स्थापित करने के लिए, प्रदर्शन परीक्षण के प्रकार उपलब्ध हैं, और क्यों केडी6 एक महान विकल्प है Aack. NET कोर अनुप्रयोगों के लिए, आप वास्तविक जाँच शुरू करने के लिए तैयार हैं.
यहाँ जारी रखें पार्ट २: व्यावहारिक कार्यान्वयन जहां हम कवर होगा:
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.