জেমিটার (JMeter) একটি পারফরম্যান্স টেস্টিং টুল, যা ওয়েব অ্যাপ্লিকেশন এবং সার্ভিসের লোড এবং স্ট্রেস টেস্টিংয়ের জন্য ব্যবহৃত হয়। জেমিটার টেস্টের মধ্যে অনেক কনফিগারেশন এবং ম্যানিপুলেশন করার জন্য Pre-Processor এবং Post-Processor ব্যবহার করা হয়। এই দুটি উপাদান টেস্টের কার্যকারিতা এবং রেসপন্স ম্যানিপুলেশন করার ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে। তারা আপনাকে স্ক্রিপ্টের প্রক্রিয়া আরো গতিশীল এবং কাস্টমাইজড করতে সহায়তা করে।
এই টিউটোরিয়ালে, আমরা জানব Pre-Processor এবং Post-Processor এর কাজ এবং কিভাবে এগুলো ব্যবহার করা যায়।
Pre-Processor
Pre-Processor হলো একটি টুল যা একটি রিকোয়েস্ট বা স্যাম্পলার চালানোর আগে কিছু কার্যকলাপ বা কনফিগারেশন পরিচালনা করে। এটি মূলত ব্যবহার করা হয় রিকোয়েস্টের আগে কিছু প্রস্তুতি কাজ করার জন্য, যেমন ডেটা প্রিপারেশন, প্যারামিটার সেটিং, বা ডায়নামিক ডেটা তৈরি করা।
Pre-Processor এর ভূমিকা:
- Dynamic Data Generation: এটি রিকোয়েস্ট পাঠানোর আগে ডায়নামিক ডেটা তৈরি করতে সহায়তা করে। যেমন, একটি টেস্টের জন্য টোকেন জেনারেট করা বা সময়ের সাথে সম্পর্কিত ডেটা।
- Setup Activities: এটি রিকোয়েস্ট চালানোর আগে কিছু প্রস্তুতিমূলক কাজ করতে পারে, যেমন প্রাথমিক কনফিগারেশন বা প্যারামিটার অ্যাসাইন করা।
- Manipulating Request Data: Pre-Processor এর মাধ্যমে আপনি রিকোয়েস্টের প্যারামিটার বা বডি ডেটা পরিবর্তন বা কাস্টমাইজ করতে পারেন।
Pre-Processor উদাহরণ:
ধরা যাক, আপনি একটি POST রিকোয়েস্ট পাঠাতে চান এবং POST বডিতে ডায়নামিক ডেটা থাকতে হবে। এই ডেটাটি একটি Pre-Processor দিয়ে জেনারেট করতে পারেন।
- HTTP Request Sampler: POST রিকোয়েস্ট।
- Pre-Processor: Random Variable Pre-Processor যা রিকোয়েস্টের বডিতে র্যান্ডম প্যারামিটার যোগ করবে।
Pre-Processor এর উদাহরণ:
- User Defined Variables: যেখানে আপনি ডায়নামিক বা র্যান্ডম ভ্যালু সেট করতে পারেন।
- JSR223 PreProcessor: যেখানে স্ক্রিপ্টিং ভাষায় (যেমন Groovy বা JavaScript) কোড লেখা যেতে পারে।
- BeanShell PreProcessor: BeanShell স্ক্রিপ্টিং ভাষা ব্যবহার করে কাস্টম কোড লিখতে সহায়তা করে।
Post-Processor
Post-Processor হলো একটি টুল যা স্যাম্পলার বা রিকোয়েস্ট চলাকালীন অথবা পরে প্রক্রিয়া চালায়। এটি রিকোয়েস্টের রেসপন্স বিশ্লেষণ বা প্রসেস করার জন্য ব্যবহৃত হয়। এটি সাধারণত ব্যবহার করা হয় যখন আপনি রিকোয়েস্টের রেসপন্স ডেটা নিয়ে কোনো কাজ করতে চান, যেমন রেসপন্স থেকে ডেটা এক্সট্র্যাক্ট করা বা ফলস্বরূপ ডেটা ব্যবহার করা।
Post-Processor এর ভূমিকা:
- Response Handling: এটি রিকোয়েস্টের রেসপন্সের উপর কাজ করে, যেমন রেসপন্স ডেটা থেকে কিছু নির্দিষ্ট তথ্য বের করা।
- Extracting Data: Post-Processor এর মাধ্যমে আপনি রেসপন্স থেকে ডেটা এক্সট্র্যাক্ট করে পরবর্তী রিকোয়েস্টে ব্যবহার করতে পারেন। যেমন, লগইন রিকোয়েস্টের পরে একটি টোকেন সংগ্রহ করা এবং পরবর্তী রিকোয়েস্টে ব্যবহার করা।
- Processing Results: এটি রেসপন্সের ভিত্তিতে কিছু নির্দিষ্ট কাজ করে, যেমন লগইন টোকেন এক্সট্র্যাক্ট করা এবং তা পরবর্তী রিকোয়েস্টে ব্যবহার করা।
Post-Processor উদাহরণ:
ধরা যাক, আপনি একটি GET রিকোয়েস্ট পাঠাচ্ছেন এবং সেই রেসপন্সে কিছু ডেটা (যেমন, একটি টোকেন বা ID) রয়েছে, যেটি পরবর্তী রিকোয়েস্টে ব্যবহার করতে হবে। আপনি Post-Processor দিয়ে সেই ডেটা এক্সট্র্যাক্ট করবেন।
- Regular Expression Extractor: এটি সাধারণত Post-Processor হিসেবে ব্যবহৃত হয় এবং এটি রেসপন্সের মধ্যে থেকে নির্দিষ্ট প্যাটার্ন বা টেক্সট এক্সট্র্যাক্ট করে।
- JSON Extractor: JSON রেসপন্স থেকে নির্দিষ্ট ফিল্ড এক্সট্র্যাক্ট করার জন্য ব্যবহৃত হয়।
Post-Processor এর উদাহরণ:
- Regular Expression Extractor: রেসপন্সের মধ্যে থেকে একটি নির্দিষ্ট ভ্যালু এক্সট্র্যাক্ট করা।
- JSON Extractor: JSON রেসপন্স থেকে একটি নির্দিষ্ট ফিল্ড এক্সট্র্যাক্ট করা।
- JDBC PostProcessor: ডেটাবেস রেসপন্স প্রসেস করতে ব্যবহৃত হয়।
Pre-Processor এবং Post-Processor এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Pre-Processor | Post-Processor |
|---|---|---|
| কাজ | রিকোয়েস্ট পাঠানোর আগে প্রিপারেশন বা ডেটা ম্যানিপুলেশন | রেসপন্স পাওয়ার পরে রেসপন্স ম্যানিপুলেশন বা ডেটা এক্সট্র্যাকশন |
| কোথায় ব্যবহৃত হয় | রিকোয়েস্টের পূর্বে | রিকোয়েস্টের পর বা রেসপন্স পাওয়ার পর |
| ব্যবহার | ডায়নামিক ডেটা তৈরি, প্যারামিটার কনফিগার করা | রেসপন্স ডেটা এক্সট্র্যাক্ট করা, রেসপন্স প্রসেসিং করা |
| উদাহরণ | Random Variable, JSR223 PreProcessor | Regular Expression Extractor, JSON Extractor |
সারাংশ
Pre-Processor এবং Post-Processor জেমিটার টেস্ট প্ল্যানে দুটি গুরুত্বপূর্ণ উপাদান, যা রিকোয়েস্টের আগে এবং পরে কার্যক্রম সম্পাদন করতে ব্যবহৃত হয়। Pre-Processor মূলত রিকোয়েস্ট পাঠানোর আগে প্রস্তুতিমূলক কাজ করার জন্য ব্যবহৃত হয়, যেমন ডায়নামিক ডেটা তৈরি বা প্যারামিটার কনফিগার করা। অন্যদিকে, Post-Processor রেসপন্স পাওয়ার পরে ডেটা এক্সট্র্যাক্ট করার বা রেসপন্সের উপর কাজ করার জন্য ব্যবহৃত হয়, যেমন রেসপন্স থেকে টোকেন এক্সট্র্যাক্ট করা এবং পরবর্তী রিকোয়েস্টে ব্যবহার করা। এই দুটি উপাদান জেমিটার স্ক্রিপ্টের কার্যকারিতা ও কাস্টমাইজেশন আরো বৃদ্ধি করে।
Read more