थ्रेड समूहों के बीच JMeter पास चर

इस JMeter ट्यूटोरियल में, हम देखते हैं कि हम थ्रेड समूहों के बीच चर कैसे साझा कर सकते हैं और पास कर सकते हैं।

उन्नत JMeter स्क्रिप्ट विकसित करते समय, सबसे अधिक संभावना है कि आपके पास कई थ्रेड समूह होंगे। प्रत्येक थ्रेड समूह अलग-अलग अनुरोध कर रहे होंगे।

इसका एक अच्छा उदाहरण है जब हमें उपयोगकर्ताओं को बेयरर टोकन के साथ प्रमाणित करने की आवश्यकता होती है। एक थ्रेड समूह प्रमाणीकरण करता है और टोकन बचाता है। एक अन्य थ्रेड समूह को इस टोकन तक पहुंचने और इसे किसी अन्य अनुरोध में उपयोग करने की आवश्यकता है।


इसलिए, हमें थ्रेड समूहों के बीच चर को पारित करने के लिए एक तंत्र की आवश्यकता है।



JMeter में थ्रेड समूहों के बीच वेरिएबल्स पास करें

इस उदाहरण के लिए, हमारी परीक्षण योजना में दो थ्रेड समूह होंगे। पहला थ्रेड समूह किसी वेब सेवा के लिए GET अनुरोध करता है। हम तब उपयोग करते हैं JSON चिमटा JSON प्रतिक्रिया पार्स करने के लिए प्लगइन।


JSONPath का उपयोग करते हुए, हम एक विशेष कुंजी के लिए मान निकालते हैं और इसे JMeter चर के रूप में सहेजते हैं।

इस तरह हमारा JMeter अनुरोध दिखता है:

उपरोक्त अनुरोध का परिणाम JSON प्रारूप में निम्नलिखित प्रतिक्रिया उत्पन्न करता है:


और हमारा JSONPath पहला url निकालने के लिए जैसा दिखता है:

JSONPath क्वेरी का मान इस प्रकार सहेजा जाता है। _ + _ | यह चर केवल उसी थ्रेड समूह के भीतर पहुंच योग्य है और हम इसका उपयोग करके इसके मूल्य प्राप्त कर सकते हैं first_url अब, हम इस चर को अन्य थ्रेड समूहों के माध्यम से कैसे सुलभ बनाने जा रहे हैं?


उपयोग करने का उत्तर है ${first_url} वैश्विक संपत्ति के रूप में चर को बचाने के लिए। इस तरह, हम थ्रेड समूहों के बीच चर पारित कर सकते हैं।

बीनशेल एश्योरेंस जोड़ने के लिए, टेस्ट प्लान पर राइट क्लिक करें> ऐड> एसेरेशन> बीनशेल एश्योरेंस पर क्लिक करें

हमारे बीनशेल अभिकथन में, हम निम्नलिखित कोड दर्ज कर सकते हैं

BeanShell Assertion


अब थ्रेड समूह 2 में, हम इस वेरिएबल को सीधे उपयोग करके एक्सेस कर सकते हैं ${__setProperty(first_url, ${first_url})}; जैसा कि नीचे दिया गया है:

या, हम a ${__property(first_url)} का उपयोग कर सकते हैं चर में हेरफेर करने के लिए:


बीनशेल प्रीप्रोसेसर में, हम एक अन्य थ्रेड समूह से पारित चर का उपयोग कर सकते हैं | फिर हम कुछ स्ट्रिंग हेरफेर कर सकते हैं और परिणाम को नए चर के रूप में सहेज सकते हैं।

ऊपर के उदाहरण में, हम हटाते हैं | _ + + _ | वह चर जो थ्रेड समूह 1 से पारित किया गया था, और हम परिणाम को चर के रूप में सहेजते हैं BeanShell PreProcessor

चर props.get('name_of_variable') अब थ्रेड समूह 2 के लिए स्थानीय है और सीधे उपयोग करके इसे एक्सेस करें। _ + _ | जैसा कि नीचे दिया गया है:

दिलचस्प लेख