জেমিটার (JMeter) একটি শক্তিশালী টুল যা ওয়েব অ্যাপ্লিকেশন এবং সার্ভিসের পারফরম্যান্স টেস্টিং করতে ব্যবহৃত হয়। ওয়েব অ্যাপ্লিকেশনগুলো সাধারণত ডাইনামিক ডেটা ব্যবহার করে (যেমন: টোকেন, সেশন আইডি, কুকিজ), এবং এই ডাইনামিক ডেটা টেস্ট প্ল্যানে সঠিকভাবে হ্যান্ডেল করা প্রয়োজন। Correlation হলো একটি প্রক্রিয়া যার মাধ্যমে ডাইনামিক ডেটা এক রিকোয়েস্ট থেকে আরেকটি রিকোয়েস্টে সরবরাহ করা হয়। এটি রিকোয়েস্ট এবং রেসপন্সের মধ্যে সঠিক ডেটা পরিচালনা করতে সহায়তা করে।
এই গাইডে, আমরা জেমিটার (JMeter) তে Correlation ব্যবহার করে ডাইনামিক ডেটা হ্যান্ডল করার প্রক্রিয়া আলোচনা করব।
Correlation কি?
Correlation হলো একটি প্রক্রিয়া যেখানে আপনি একটি রিকোয়েস্ট থেকে প্রাপ্ত ডাইনামিক ডেটা (যেমন: সেশন আইডি, সার্ভার-সাইড জেনারেট করা টোকেন) পরবর্তী রিকোয়েস্টে ব্যবহার করেন। অধিকাংশ ওয়েব অ্যাপ্লিকেশন ডাইনামিক ডেটা তৈরি করে, এবং সেগুলির সঠিক ব্যবহার নিশ্চিত করা জরুরি। জেমিটার Correlation এর মাধ্যমে আপনি ডাইনামিক ডেটা এক রিকোয়েস্ট থেকে আরেক রিকোয়েস্টে সঠিকভাবে পাস করতে পারেন।
কেন Correlation প্রয়োজন?
- Session Handling: ওয়েব অ্যাপ্লিকেশনগুলো সাধারণত সেশন আইডি ব্যবহার করে সেশন ট্র্যাকিং করতে। পরবর্তী রিকোয়েস্টে সেশন আইডি পাঠানো প্রয়োজন।
- Dynamic Tokens: অনেক অ্যাপ্লিকেশন রিকোয়েস্টের মধ্যে ডাইনামিক টোকেন জেনারেট করে, যেমন CSRF টোকেন।
- Data Dependency: এক রিকোয়েস্টের আউটপুট পরবর্তী রিকোয়েস্টের ইনপুট হিসেবে ব্যবহার হয়।
Correlation এর মাধ্যমে Dynamic Data Handle করার প্রক্রিয়া
1. ডাইনামিক ডেটা সনাক্ত করা
প্রথমে, আপনাকে ডাইনামিক ডেটা সনাক্ত করতে হবে। উদাহরণস্বরূপ, একটি লগিন রিকোয়েস্টে সেশন আইডি বা টোকেন থাকে যা পরবর্তী রিকোয়েস্টে ব্যবহার করা হয়।
ধরা যাক, একটি GET রিকোয়েস্টের রেসপন্সের মধ্যে একটি সেশন আইডি রয়েছে:
{
"session_id": "xyz123456"
}
এটি পরবর্তী রিকোয়েস্টে প্রেরণ করতে হবে।
2. Regex Extractor ব্যবহার করে ডাইনামিক ডেটা এক্সট্র্যাক্ট করা
Regular Expression Extractor হল একটি জেমিটার টুল যা রেসপন্স থেকে ডাইনামিক ডেটা এক্সট্র্যাক্ট করতে ব্যবহৃত হয়। আপনি এটি একটি Post Processor হিসেবে ব্যবহার করবেন।
ধাপ ১: Regular Expression Extractor যোগ করা
- Thread Group এর অধীনে রিকোয়েস্ট সিলেক্ট করুন।
- Add → Post Processors → Regular Expression Extractor সিলেক্ট করুন।
- এখন, আপনি সঠিক Regular Expression এবং গ্লোবাল ভেরিয়েবল সঠিকভাবে কনফিগার করবেন।
উদাহরণ কনফিগারেশন:
- Regular Expression:
"session_id":"(.+?)" - Template:
$1$ - Match No.:
1(প্রথম ম্যাচ) - Default Value:
NOT_FOUND
এটি session_id এর মান এক্সট্র্যাক্ট করবে এবং $1$ ব্যবহার করে এটি একটি ভেরিয়েবল হিসেবে সংরক্ষণ করবে।
3. Extracted Data পরবর্তী রিকোয়েস্টে ব্যবহার করা
ডাইনামিক ডেটা এক্সট্র্যাক্ট করার পর, আপনাকে এই ডেটা পরবর্তী রিকোয়েস্টে ব্যবহার করতে হবে। এটি জেমিটার-এ একটি ভেরিয়েবল হিসেবে কাজ করবে এবং পরবর্তী রিকোয়েস্টে সেটি ইনপুট হিসেবে পাস করা যাবে।
উদাহরণ:
ধরা যাক, আমরা যে সেশন আইডি এক্সট্র্যাক্ট করেছি, তা পরবর্তী HTTP রিকোয়েস্টে ব্যবহার করতে চাই। এখানে, এক্সট্র্যাক্ট করা ডেটা $session_id$ হিসেবে পরিচিত হবে।
পরবর্তী রিকোয়েস্ট কনফিগারেশন:
- HTTP Request-এ, যেখানে সেশন আইডি ব্যবহার করতে হবে, সেখানে ${session_id} ভেরিয়েবলটি ব্যবহার করুন।
উদাহরণ:
http://example.com/api/user?session_id=${session_id}
এখানে, $session_id$ ভেরিয়েবলটি প্রথম রিকোয়েস্ট থেকে এক্সট্র্যাক্ট করা সেশন আইডির মান গ্রহণ করবে এবং পরবর্তী রিকোয়েস্টে এটি পাঠানো হবে।
4. Debug Sampler দিয়ে ডাইনামিক ডেটা যাচাই করা
আপনার টেস্ট প্ল্যানে Debug Sampler যোগ করে আপনি নিশ্চিত করতে পারেন যে ডাইনামিক ডেটা সঠিকভাবে এক্সট্র্যাক্ট এবং ব্যবহৃত হচ্ছে কিনা।
ধাপ ১: Debug Sampler যোগ করা
- Thread Group এর অধীনে Add → Sampler → Debug Sampler সিলেক্ট করুন।
- এটি আপনার ভেরিয়েবল এবং ডাইনামিক ডেটা যাচাই করবে।
উদাহরণ:
Debug Sampler দিয়ে আপনি দেখতে পারবেন যে, এক্সট্র্যাক্ট করা ভেরিয়েবলটি সঠিকভাবে পাস হচ্ছে কিনা।
5. CSV Data Set Config ব্যবহার করা
ডাইনামিক ডেটা প্রক্রিয়ার জন্য কখনও কখনও একটি নির্দিষ্ট ডেটাসেট ব্যবহার করতে হতে পারে, বিশেষত যখন আপনাকে বড় আকারের ডেটা স্ক্র্যাপ করতে হয়। জেমিটার CSV Data Set Config ব্যবহার করে CSV ফাইল থেকে ডেটা ইনপুট নেয় এবং প্রতিটি রিকোয়েস্টে ডাইনামিক ডেটা সরবরাহ করতে সহায়তা করে।
উদাহরণ:
ধরা যাক, আপনার কাছে একটি CSV ফাইল আছে যা ডাইনামিক ইউজার ডেটা ধারণ করে:
username,password
user1,pass1
user2,pass2
user3,pass3
কনফিগারেশন:
- Thread Group এর অধীনে Add → Config Element → CSV Data Set Config সিলেক্ট করুন।
- CSV Data Set Config প্যানেলে, Filename এবং Variable Names ইনপুট দিন, যেমন:
- Filename:
user_data.csv - Variable Names:
username,password
- Filename:
এখন প্রতিটি রিকোয়েস্টে ডাইনামিকভাবে username এবং password পাস হবে।
সারাংশ
Correlation একটি অত্যন্ত গুরুত্বপূর্ণ প্রক্রিয়া যা ডাইনামিক ডেটা এক রিকোয়েস্ট থেকে অন্য রিকোয়েস্টে পাস করার জন্য ব্যবহৃত হয়। জেমিটার (JMeter) তে Regular Expression Extractor এবং CSV Data Set Config ব্যবহার করে আপনি ডাইনামিক ডেটা হ্যান্ডল করতে পারেন। এই প্রক্রিয়াগুলি আপনাকে ওয়েব অ্যাপ্লিকেশন বা API টেস্টে সঠিক ডেটা পাস করতে সহায়তা করে, যাতে আপনার টেস্টগুলি বাস্তবসম্মত হয় এবং সঠিকভাবে কাজ করে।
Read more