इस लेख में, मैं एक सरल तरीका प्रदर्शित करूंगा जिससे हम k6 को XRAY/Jira के साथ एकीकृत कर सकते हैं।
कुछ समय पहले मुझे एक एपीआई के लिए एक प्रदर्शन परीक्षण लिखने का काम सौंपा गया था, जिससे काफी संख्या में अनुरोधों को संभालने की उम्मीद थी। इस कारण से हमें एक अच्छे टूल की आवश्यकता थी जो तेजी से उठाया जा सके और किसी भी QA इंजीनियर के लिए योगदान देना आसान हो।
अतीत में लोड प्रभाव का उपयोग करने के बाद, मैं K6 से काफी परिचित था। ये मुख्य कारण हैं कि हमने अन्य प्रदर्शन परीक्षण उपकरणों की तुलना में k6 को क्यों चुना:
जावास्क्रिप्ट का उपयोग करता है: मेरी टीम के अधिकांश क्यूए/डेवलपर्स जावास्क्रिप्ट से परिचित थे, जिसके कारण इसे एक नई भाषा सीखने की कोई आवश्यकता नहीं थी
ओपन-सोर्स: इसका मतलब है, टूल का उपयोग करने के लिए किसी भुगतान की आवश्यकता नहीं है, और समुदाय सक्रिय है
CI/CD: हमारे CI/CD पाइपलाइनों के साथ k6 को एकीकृत करना सीधा था
मैं k6 चुनने के लाभों को जारी रख सकता हूं, लेकिन मैं उस बारे में विशेष रूप से बात करने के लिए एक नई पोस्ट लिखूंगा।
अपना परीक्षण ढांचा पूरा करने के बाद, हम जीरा पर अपने परीक्षण परिणाम देखना चाहते थे। चूँकि हम पहले से ही XRAY का उपयोग कर रहे थे, हमें k6 JSON रिपोर्ट को एक्स-रे प्रारूप में बदलने के लिए एक समाधान की आवश्यकता थी। मुझे ऐसा कोई समाधान नहीं मिल सका जो हमारे मामले में कारगर हो।
K6 में एक आवश्यक सुविधा है जिसका उपयोग सभी मैट्रिक्स प्राप्त करने के लिए किया जा सकता है। ये विकल्प stdout, XML और JSON हैं।
इसके लिए, हमें केवल हैंडलसमरी फ़ंक्शन से डेटा ऑब्जेक्ट लेने के लिए एक स्क्रिप्ट बनाने की आवश्यकता है।
डेटा ऑब्जेक्ट को k6 से सरल XRAY प्रारूप रिपोर्ट में बदलने की स्क्रिप्ट नीचे दी गई है:
k6-XRAY-स्क्रिप्ट
रेपो को अपने इच्छित स्थान पर क्लोन करें:
अधिमानतः, मुख्य प्रोजेक्ट के अंदर एक फ़ोल्डर बनाएं।
उदाहरण:
सहायक, स्रोत, रिपोर्ट
इससे आपको बिना किसी समस्या के आयात को अच्छी तरह से प्रबंधित करने में मदद मिलेगी:
शुरू करने से पहले, सुनिश्चित करें कि आपने अपनी मशीन पर निम्नलिखित इंस्टॉल कर लिया है:
यदि आपके k6 परीक्षण समूहों में व्यवस्थित हैं, और प्रत्येक समूह का शीर्षक एक्सरे पर एक परीक्षण केस से मेल खाता है, तो आप एक्सरे के साथ संगत JSON फ़ाइल बनाने के लिए जनरेटर स्क्रिप्ट का उपयोग कर सकते हैं।
एक्सरे डॉक्स से नीचे दी गई छवि CALC-01 और CALC-02 कुंजियों के साथ परीक्षण मामले दिखाती है।
अपनी k6 परीक्षण स्क्रिप्ट में, आप समूह शीर्षकों को CALC-01 और CALC-02 नाम दे सकते हैं। स्क्रिप्ट इन समूह नामों की खोज करेगी और एक्सरे पर संबंधित परीक्षण मामलों को परीक्षण परिणाम निर्दिष्ट करेगी।
group('CALC-01', function() { // test code }); group('CALC-02', function() { // test code });
स्क्रिप्ट एक्सरे के साथ संगत एक JSON फ़ाइल उत्पन्न करती है, जिसे स्क्रिप्ट के समान निर्देशिका में सहेजा जाता है।
git clone https://github.com/skingori/k6-json-xray.git
हम JSON फ़ाइल उत्पन्न करने के लिए k6 द्वारा प्रदान किए गए हैंडलसमरी फ़ंक्शन और हमारी जनरेटर.जेएस स्क्रिप्ट से टेक्स्टसमरी का उपयोग करेंगे। हैंडलसमरी फ़ंक्शन एक डेटा ऑब्जेक्ट लेता है, जिसे हम एक्सरे-संगत प्रारूप में संशोधित करने के लिए गेटसमरी को पास करते हैं।
k6 हैंडल सारांश के बारे में यहां और पढ़ें
अपनी निष्पादन स्क्रिप्ट खोलें और निम्नलिखित पंक्तियाँ जोड़ें:
import { getSummary } from "./generator.js"; import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";
मैं सीधे ./generator.js का उपयोग कर रहा हूं क्योंकि यह मेरी स्क्रिप्ट के समान फ़ोल्डर में था। आइए मान लें कि आप सहायक का उपयोग कर रहे थे, यह होना चाहिए:
import { getSummary } from "./helper/generator.js";
अपने कोड के अंत में हैंडल सारांश फ़ंक्शन जोड़ें:
export function handleSummary(data) { return { stdout: textSummary(data, { indent: " ", enableColors: true }), "summary.json": JSON.stringify(getSummary(data, "CALC-2062", "CALC"), null, 2) }; }
हमारा फ़ंक्शन getSummary डेटा ऑब्जेक्ट को एक्स-रे अपेक्षित प्रारूप में बदल देगा और आउटपुट को summar.json फ़ाइल में सहेज देगा
हम textSummary का उपयोग क्यों कर रहे हैं?
कंसोल पर मुद्रित आउटपुट के लिए, हमें k6 जेएस यूटिलिटीज लाइब्रेरी से टेक्स्टसमरी आयात करने की आवश्यकता है
लेकिन यह हर किसी पर लागू नहीं हो सकता है यदि आपको किसी स्टडआउट रिपोर्ट की आवश्यकता नहीं है, आपको टेक्स्ट सारांश आयात करने की आवश्यकता नहीं है
import http from 'k6/http'; import { sleep, group, check } from 'k6'; import { getSummary } from "./generator.js"; import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js"; export const options = { vus: 10, duration: '30s', }; export default function() { group('CALC-01', function() { const resp = http.get('http://test.k6.io'); check(resp, { 'status is 200': (r) => r.status === 200, }); sleep(1); }); group('CALC-02', function() { const resp = http.get('http://test.k6.io'); check(resp, { 'status is 200': (r) => r.status === 200, }); sleep(1); }); }; export function handleSummary(data) { return { stdout: textSummary(data, { indent: " ", enableColors: true }), "summary.json": JSON.stringify(getSummary(data, "CALC-2062", "CALC"), null, 2) }; }
नोट: यदि आप टेक्स्टसमरी आयात नहीं करना चाहते हैं तो आप stdout: textSummary(data, { indent: " ", EnableColors: true }), लाइन को हटा सकते हैं
handleSummary डिफ़ॉल्ट रूप से काम करता है और इसे आमतौर पर परीक्षण जीवनचक्र के अंत में कॉल किया जाता है।
स्क्रिप्ट चलाने के लिए, निम्नलिखित कमांड का उपयोग करें:
k6 run script.js -e TEST_PLAN_KEY="CALC-2345" -e TEST_EXEC_KEY="CALC-0009"
TEST_PLAN_KEY और TEST_EXEC_KEY का उपयोग एक्सरे पर परीक्षण योजना और परीक्षण निष्पादन की पहचान करने के लिए किया जाता है।
परीक्षण योजना और परीक्षण निष्पादन कुंजियों के बारे में यहां और पढ़ें
उपरोक्त स्क्रिप्ट सारांश.json के अंतर्गत निम्नलिखित रिपोर्ट तैयार करेगी
{ "info": { "summary": "K6 Test execution - Mon Sep 09 2024 21:20:16 GMT 0300 (EAT)", "description": "This is k6 test with maximum iteration duration of 4.95s, 198 passed requests and 0 failures on checks", "user": "k6-user", "startDate": "2024-09-09T18:20:16.000Z", "finishDate": "2024-09-09T18:20:16.000Z", "testPlanKey": "CALC-2345" }, "testExecutionKey": "CALC-0009", "tests": [ { "testKey": "CALC-01", "start": "2024-09-09T18:20:16.000Z", "finish": "2024-09-09T18:20:16.000Z", "comment": "Test execution passed", "status": "PASSED" }, { "testKey": "CALC-02", "start": "2024-09-09T18:20:16.000Z", "finish": "2024-09-09T18:20:16.000Z", "comment": "Test execution passed", "status": "PASSED" } ] }
के6 और एक्स-रे के बारे में अधिक जानकारी प्राप्त करने के लिए कृपया उनके दस्तावेज़ तक पहुंचें:
K6 दस्तावेज़
एक्सरे दस्तावेज़
इसे भी देखें - एक्सरे और जिरा के साथ टेस्ट केस कैसे बनाएं और प्रबंधित करें, सर्जियो फ़्रेयर द्वारा लिखित एक अच्छा लेख
और हमेशा की तरह, बेझिझक मुझसे संपर्क करें!
लिंक्डइन
ईमेल
जीथब
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3