تھریڈ گروپس کے درمیان جے میٹر پاس متغیر

اس JMeter سبق میں ، ہم اس پر نظر ڈالتے ہیں کہ ہم تھریڈ گروپس کے مابین متغیرات کو کس طرح بانٹ سکتے ہیں اور پاس کرسکتے ہیں۔

اعلی درجے کی JMeter اسکرپٹس تیار کرتے وقت ، غالبا. آپ کے متعدد تھریڈ گروپس ہوں گے۔ ہر تھریڈ گروپ مختلف درخواستیں کر رہے ہوں گے۔

اس کی ایک عمدہ مثال اس وقت ہے جب ہمیں بیریر ٹوکن والے صارفین کو مستند کرنے کی ضرورت ہے۔ ایک تھریڈ گروپ توثیق کرتا ہے اور ٹوکن کو محفوظ کرتا ہے۔ دوسرے تھریڈ گروپ کو اس ٹوکن تک رسائی حاصل کرنے اور اسے کسی اور درخواست میں استعمال کرنے کی ضرورت ہے۔


لہذا ، ہمیں تھریڈ گروپس کے مابین متغیرات کو منتقل کرنے کے لئے ایک طریقہ کار کی ضرورت ہے۔



جے میٹر میں تھریڈ گروپس کے مابین متغیرات کو پاس کریں

اس مثال کے طور پر ، ہمارے ٹیسٹ پلان میں دو تھریڈ گروپس ہوں گے۔ پہلا تھریڈ گروپ ویب سروس کے لئے GET درخواست کرتا ہے۔ اس کے بعد ہم استعمال کرتے ہیں JSON ایکسٹریکٹر JSON جواب کو پارس کرنے کیلئے پلگ ان۔


JSONPath کا استعمال کرتے ہوئے ، ہم کسی خاص کلید کی قدر نکالتے ہیں اور اسے JMeter متغیر کی حیثیت سے بچاتے ہیں۔

ہماری JMeter کی درخواست کچھ یوں دکھتی ہے:

مذکورہ درخواست کا نتیجہ JSON فارمیٹ میں درج ذیل ردعمل پیدا کرتا ہے۔


اور ہمارا JSONPath پہلے url کو نکالنے کے لئے ایسا لگتا ہے:

JSONPath استفسار کی قدر بطور | _ _ + _ | محفوظ کی گئی ہے۔ یہ متغیر صرف اسی تھریڈ گروپ میں قابل رسائ ہے اور ہم first_url استعمال کرکے اس کی قیمت حاصل کرسکتے ہیں۔ اب ، ہم دوسرے تریڈ گروپس کے ذریعہ اس متغیر کو کیسے قابل رسائی بنائیں گے؟


اس کا جواب استعمال کرنا ہے | _ _ + _ | متغیر کو عالمی املاک کی حیثیت سے بچانے کے ل. اس طرح ، ہم تھریڈ گروپس کے مابین متغیرات کو منتقل کرسکتے ہیں۔

بین شیل اثبات شامل کرنے کے لئے ، ٹیسٹ پلان پر دائیں کلک کریں> شامل کریں> اصرار> بین شیل اثبات

ہمارے بین شیل دعوی میں ، ہم درج ذیل کوڈ درج کر سکتے ہیں

${first_url}


اب تھریڈ گروپ 2 میں ، ہم BeanShell Assertion استعمال کرکے براہ راست اس متغیر تک رسائی حاصل کرسکتے ہیں جیسا کہ نیچے دکھایا گیا ہے:

یا ، ہم ایک | _ _ + _ | استعمال کرسکتے ہیں متغیر کو جوڑ توڑ کرنے کے لئے:


بین شیل پری پروسیسر میں ، ہم دوسرے _ترید گروپ سے پاس متغیر تک رسائی حاصل کرسکتے ہیں۔ اس کے بعد ہم کچھ اسٹرنگ ہیرا پھیری انجام دے سکتے ہیں اور نتیجے کو ایک نئے متغیر کی حیثیت سے محفوظ کرسکتے ہیں۔

مندرجہ بالا مثال میں ، ہم ${__setProperty(first_url, ${first_url})}; کو ہٹاتے ہیں متغیر سے جو تھریڈ گروپ 1 سے منظور کیا گیا تھا ، اور ہم نتیجہ متغیر کے بطور محفوظ کرتے ہیں۔ _ + _ |

متغیر ${__property(first_url)} | تھریڈ گروپ 2 کے لئے اب مقامی ہے اور BeanShell PreProcessor استعمال کرکے براہ راست اس تک رسائی حاصل کریں جیسا کہ نیچے دکھایا گیا ہے: