k6 में डेटा पैरामीटरकरण
परीक्षण इनपुट के लिए बाहरी डेटा स्रोतों का उपयोग करने हेतु k6 स्क्रिप्ट में डेटा पैरामीटरकरण लागू करें।
k6 में डेटा पैरामीटरकरण, CoddyKit पर JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
k6 परीक्षणों में गतिशील डेटा
प्रदर्शन परीक्षण करते समय, आप शायद ही कभी चाहते हैं कि हर वर्चुअल उपयोगकर्ता (VU) बिल्कुल एक जैसा काम करे और बिल्कुल एक ही डेटा का उपयोग करे। वास्तविक उपयोगकर्ताओं का व्यवहार अलग-अलग होता है!
डेटा पैरामीटरीकरण वह तकनीक है जिसमें बाहरी डेटा स्रोतों का उपयोग करके आपके परीक्षण स्क्रिप्ट में गतिशील इनपुट दिए जाते हैं।
परीक्षण डेटा को पैरामीटरयुक्त क्यों करें?
लॉगिन पेज के परीक्षण की कल्पना कीजिए। यदि सभी VU "user1" और "pass1" से लॉग इन करने का प्रयास करें, तो आप विशिष्ट उपयोगकर्ता परिदृश्यों का परीक्षण नहीं कर रहे हैं। इससे ये समस्याएँ हो सकती हैं:
- अवास्तविक लोड पैटर्न
- कैशिंग संबंधी समस्याएँ
- दोहराए गए संचालन से होने वाली त्रुटियाँ
पैरामीटरीकरण विविध और वास्तविक उपयोगकर्ता व्यवहार का अनुकरण करने में सहायता करता है।
कुशल डेटा के लिए SharedArray
k6 में बाहरी डेटा को कुशलतापूर्वक लोड करने के लिए SharedArray आपका मुख्य साधन है। इसे परीक्षण की शुरुआत में डेटा को एक बार लोड करने और फिर सभी वर्चुअल उपयोगकर्ताओं (VU) के बीच साझा करने के लिए बनाया गया है।
- एक बार लोड करें: अनावश्यक फ़ाइल रीड को रोकता है।
- अपरिवर्तनीय: VU डेटा को बदल नहीं सकते।
- कुशल: मेमोरी का अतिरिक्त उपयोग घटाता है।
SharedArray के साथ JSON लोड करना
आइए, उपयोगकर्ता क्रेडेंशियल की एक सरल JSON सारणी लोड करके शुरू करें। वास्तविक परीक्षण में, स्थानीय फ़ाइल पढ़ने के लिए आप open('./users.json') का उपयोग करेंगे। इस चलाए जा सकने वाले उदाहरण के लिए, हम JSON डेटा को सीधे शामिल करेंगे।
import { SharedArray } from 'k6/data';
import http from 'k6/http';
import { sleep } from 'k6/execution';
const users = new SharedArray('user_data', function () {
// In a real test, you'd use open('./users.json')
// For this runnable example, we'll use inline JSON data:
const inlineJson = `[
{"username": "user1", "password": "password1"},
{"username": "user2", "password": "password2"}
]`;
return JSON.parse(inlineJson);
});
export default function () {
const user = users[Math.floor(Math.random() * users.length)]; // Pick a random user
console.log(`VU ${__VU} using user: ${user.username}`);
// Simulate a request
http.get('https://test.k6.io');
sleep(1);
}
पैरामीटरयुक्त JSON का उपयोग करना
SharedArray लोड होने के बाद, प्रत्येक वर्चुअल उपयोगकर्ता (VU) अपने अनुरोधों में उपयोग करने के लिए कोई विशिष्ट या यादृच्छिक प्रविष्टि चुन सकता है। इससे अलग-अलग उपयोगकर्ताओं के लॉग इन करने या क्रियाएँ करने का अनुकरण होता है।
ध्यान दें कि उपयोगकर्ताओं को समान रूप से बाँटने के लिए हम __VU % users.length के आधार पर उपयोगकर्ता चुनते हैं। इसके बाद इस उपयोगकर्ता का डेटा आपके HTTP अनुरोधों के लिए उपलब्ध होता है।
import { SharedArray } from 'k6/data';
import http from 'k6/http';
import { sleep } from 'k6/execution';
const users = new SharedArray('user_data', function () {
const inlineJson = `[
{"username": "alice", "password": "passA"},
{"username": "bob", "password": "passB"},
{"username": "charlie", "password": "passC"}
]`;
return JSON.parse(inlineJson);
});
export default function () {
const user = users[__VU % users.length]; // Distribute users evenly
console.log(`VU ${__VU} logging in as: ${user.username}`);
const payload = JSON.stringify({
username: user.username,
password: user.password,
});
const params = {
headers: {
'Content-Type': 'application/json',
},
};
// Simulate a login request
http.post('https://test.k6.io/login', payload, params);
sleep(1);
}
SharedArray के साथ CSV लोड करना
CSV (Comma Separated Values) फ़ाइलें परीक्षण डेटा संग्रहीत करने का एक और सामान्य तरीका हैं। SharedArray इन्हें भी संभाल सकता है, लेकिन इसके लिए एक छोटा पार्सिंग चरण आवश्यक होता है।
एक products.csv फ़ाइल की कल्पना कीजिए:
product_id,product_name,price
101,Laptop,1200
102,Mouse,25
103,Keyboard,75आप इस फ़ाइल को पढ़ेंगे और प्रत्येक पंक्ति को पार्स करेंगे।
k6 में CSV पार्स करना
CSV डेटा को पार्स करने के लिए आप आमतौर पर फ़ाइल को पंक्ति-दर-पंक्ति पढ़ेंगे, अल्पविराम के आधार पर विभाजित करेंगे और फिर उसे एक ऑब्जेक्ट में मैप करेंगे। k6/data मॉड्यूल में पहले से कोई CSV पार्सर नहीं है, इसलिए आपको यह काम मैन्युअल रूप से करना होगा या किसी सरल सहायक का उपयोग करना होगा।
नीचे CSV स्ट्रिंग को लोड और पार्स करने का तरीका दिया गया है, जिसमें हेडर पंक्ति को छोड़ना सुनिश्चित किया गया है:
import { SharedArray } from 'k6/data';
import http from 'k6/http';
import { sleep } from 'k6/execution';
const products = new SharedArray('product_data', function () {
// For runnable example, use inline CSV content
const csvData = `product_id,product_name,price\n101,Laptop,1200\n102,Mouse,25\n103,Keyboard,75`;
const lines = csvData.split('\n');
const headers = lines[0].split(','); // Get headers
const data = [];
for (let i = 1; i < lines.length; i++) { // Start from second line (skip header)
const values = lines[i].split(',');
const row = {};
for (let j = 0; j < headers.length; j++) {
row[headers[j]] = values[j];
}
data.push(row);
}
return data;
});
export default function () {
const product = products[__VU % products.length]; // Distribute products
console.log(`VU ${__VU} viewing product: ${product.product_name}`);
// Simulate viewing a product page
http.get(`https://test.k6.io/products/${product.product_id}`);
sleep(1);
}
पैरामीटरयुक्त CSV का उपयोग करना
जब आपका CSV डेटा SharedArray द्वारा ऑब्जेक्ट की एक सारणी में लोड और पार्स हो जाए, तो आप JSON डेटा की तरह ही उसकी प्रॉपर्टीज़ तक पहुँच सकते हैं। इससे आप गतिशील URL, अनुरोध बॉडी या हेडर बना सकते हैं।
उदाहरण में, प्रत्येक VU किसी उत्पाद के product_id और product_name तक पहुँचकर अलग-अलग उत्पाद पेज ब्राउज़ करने का अनुकरण करता है और फिर उसे कार्ट में जोड़ता है।
import { SharedArray } from 'k6/data';
import http from 'k6/http';
import { sleep } from 'k6/execution';
const products = new SharedArray('product_data', function () {
const csvData = `product_id,product_name,price\n101,Laptop,1200\n102,Mouse,25\n103,Keyboard,75`;
const lines = csvData.split('\n');
const headers = lines[0].split(',');
const data = [];
for (let i = 1; i < lines.length; i++) {
const values = lines[i].split(',');
const row = {};
for (let j = 0; j < headers.length; j++) {
row[headers[j]] = values[j];
}
data.push(row);
}
return data;
});
export default function () {
const product = products[__VU % products.length]; // Distribute products
console.log(`VU ${__VU} adding ${product.product_name} to cart`);
const payload = JSON.stringify({
productId: product.product_id,
quantity: 1,
price: product.price,
});
const params = {
headers: {
'Content-Type': 'application/json',
},
};
// Simulate adding a product to cart
http.post('https://test.k6.io/cart/add', payload, params);
sleep(1);
}
VU में डेटा वितरित करना
VU को अपना डेटा कैसे मिलता है? आपने दो सामान्य पैटर्न देखे हैं:
- यादृच्छिक:
data[Math.floor(Math.random() * data.length)]- प्रत्येक VU एक यादृच्छिक आइटम चुनता है। एक बड़े और परस्पर बदले जा सकने वाले डेटा समूह के लिए उपयोगी। - समान वितरण:
data[__VU % data.length]- प्रत्येक VU को क्रमवार चक्र के तरीके से एक अलग आइटम मिलता है। तब उपयोगी जब डेटा आइटम VU से कम हों और आप सुनिश्चित करना चाहते हों कि प्रत्येक का उपयोग हो।
वह विधि चुनें जो आपके वास्तविक उपयोगकर्ता व्यवहार का सबसे अच्छा अनुकरण करती हो।
अपनी समझ जाँचें
डेटा पैरामीटरीकरण के लिए k6 के SharedArray के बारे में निम्नलिखित में से कौन-से कथन TRUE हैं?
पुनरावलोकन: k6 में गतिशील डेटा
आपने गतिशील डेटा के साथ अपने k6 परीक्षणों को अधिक प्रभावी बनाना सीख लिया है! हमने इन विषयों को शामिल किया:
- वास्तविक परीक्षणों के लिए डेटा पैरामीटरीकरण का महत्व।
- डेटा को कुशलतापूर्वक लोड और साझा करने के लिए k6 के
SharedArrayका उपयोग। - JSON और CSV डेटा को लोड करने और उपयोग करने के उदाहरण।
- अलग-अलग वर्चुअल उपयोगकर्ताओं में डेटा वितरित करने की रणनीतियाँ।
अब सर्वर प्रतिक्रियाओं से गतिशील मान निकालना (correlation) सीखें!
एआई शिक्षक के साथ JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “k6 में डेटा पैरामीटरकरण” पाठ निःशुल्क है?
हाँ — JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “k6 में डेटा पैरामीटरकरण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“k6 में डेटा पैरामीटरकरण” में मैं क्या सीखूँगा?
परीक्षण इनपुट के लिए बाहरी डेटा स्रोतों का उपयोग करने हेतु k6 स्क्रिप्ट में डेटा पैरामीटरकरण लागू करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“k6 में डेटा पैरामीटरकरण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर JMeter और k6 के साथ लोड परीक्षण और प्रदर्शन मानक-निर्धारण पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- आभासी उपयोगकर्ता परिदृश्य (VUs)
- k6 में डेटा पैरामीटरकरण
- k6 के साथ क्लाउड निष्पादन
- k6 में कस्टम मेट्रिक्स और रुझान