জেমিটার (JMeter) হল একটি অত্যন্ত শক্তিশালী টুল যা ওয়েব অ্যাপ্লিকেশন, সার্ভার, এবং API পারফরম্যান্স টেস্টিংয়ের জন্য ব্যবহৃত হয়। তবে, কিছু বিশেষ পরিস্থিতিতে বা কার্যকরী টেস্টিংয়ের জন্য আপনাকে কিছু কাস্টমাইজেশন বা প্রিপ্রসেসিং (pre-processing) করতে হতে পারে। HTTP URL Re-writing Modifier এবং BeanShell Pre-Processor হল জেমিটারের দুটি গুরুত্বপূর্ণ উপাদান যা বিভিন্ন রিকোয়েস্টের জন্য URL রি-রাইটিং এবং কাস্টম স্ক্রিপ্টিং অপশন প্রদান করে।
এই টিউটোরিয়ালে, আমরা HTTP URL Re-writing Modifier এবং BeanShell Pre-Processor এর ব্যবহার এবং কনফিগারেশন নিয়ে আলোচনা করব।
HTTP URL Re-writing Modifier
HTTP URL Re-writing Modifier একটি বিশেষ টুল যা ব্যবহারকারীদের HTTP রিকোয়েস্টের URL পরিবর্তন করতে সহায়তা করে। এই কম্পোনেন্টটি সাধারণত সেশন আইডি বা ডাইনামিক প্যারামিটার (যেমন সেশনের তথ্য বা কোড যা URL এর মাধ্যমে ট্রান্সফার করা হয়) পরিবর্তন করার জন্য ব্যবহৃত হয়। ওয়েব অ্যাপ্লিকেশনগুলি প্রায়ই URL তে সেশন বা অ্যান্টি-ফ্ল্যাশিং প্যারামিটার যুক্ত করে থাকে, এবং HTTP URL Re-writing Modifier এর মাধ্যমে এই প্যারামিটারগুলো যুক্ত বা পরিবর্তন করা যায়।
HTTP URL Re-writing Modifier কনফিগারেশন
- Test Plan > Thread Group > Add > Pre-Processor > HTTP URL Re-writing Modifier।
- এই কম্পোনেন্টে কনফিগার করার জন্য প্রধান কিছু সেটিংস:
- Parameter Name: সেশন আইডি বা যে প্যারামিটারটি আপনি URL তে রি-রাইট করতে চান তার নাম।
- Parameter Value: সেশন বা প্যারামিটারটির নতুন মান যা URL তে যুক্ত হবে।
- Add Parameters to URL: প্যারামিটারগুলোর মান URL তে যুক্ত হবে কিনা তা নির্বাচন করা।
ব্যবহার
HTTP URL Re-writing Modifier ব্যবহার করা হয় যখন একটি URL তে ডাইনামিক প্যারামিটার (যেমন সেশন আইডি) যোগ করতে হয়। এটি সাধারণত ব্যবহৃত হয় যখন ওয়েব অ্যাপ্লিকেশন রিকোয়েস্টে সেশন ট্র্যাকিং বা অন্যান্য ডাইনামিক ভ্যালু প্রেরণ করে।
উদাহরণ: আপনি যদি একটি সেশন আইডি (SID) URL তে যুক্ত করতে চান, তবে এটি হবে:
- Parameter Name:
SID - Parameter Value:
abc123
এটি সেশন আইডি abc123 কে URL তে SID=abc123 হিসেবে যোগ করবে।
BeanShell Pre-Processor
BeanShell Pre-Processor হল জেমিটার-এর একটি শক্তিশালী কাস্টম স্ক্রিপ্টিং টুল যা আপনাকে জাভা কোড লিখে আপনার টেস্ট স্ক্রিপ্টে প্রিপ্রসেসিং করতে সাহায্য করে। Pre-Processor এর কাজ হল, টেস্ট চালানোর পূর্বে কিছু কোড এক্সিকিউট করা, যেমন ডেটা জেনারেশন, ভেরিয়েবল সেট করা, বা অন্যান্য কাস্টম অপারেশন যা টেস্টের আগে সম্পাদন করা প্রয়োজন। BeanShell Pre-Processor ব্যবহার করে আপনি জাভা কোডের মতো স্ক্রিপ্ট লিখতে পারেন যা পরে বিভিন্ন স্যাম্পলারে প্রয়োগ হবে।
BeanShell Pre-Processor কনফিগারেশন
- Test Plan > Thread Group > Add > Pre-Processor > BeanShell Pre-Processor।
- এখানে আপনি BeanShell স্ক্রিপ্ট লিখতে পারবেন যা রিকোয়েস্ট এক্সিকিউট হওয়ার আগে চালিত হবে। এই স্ক্রিপ্টটি বিভিন্ন অপারেশন সম্পাদন করতে পারে, যেমন:
- ভেরিয়েবল সেট করা।
- প্যারামিটার জেনারেট করা।
- কাস্টম লজিক প্রয়োগ করা।
- রিকোয়েস্টের জন্য কাস্টম হেডার বা কনটেন্ট টাইপ যোগ করা।
ব্যবহার
BeanShell Pre-Processor প্রধানত যখন আপনি ডাইনামিক ডেটা জেনারেট করতে চান বা বিভিন্ন অপারেশন করতে চান যেগুলি রিকোয়েস্টের আগে সম্পাদিত হবে, তখন ব্যবহৃত হয়।
উদাহরণ: ডাইনামিক ডেটা তৈরি করা
ধরা যাক, আপনি একটি কাস্টম ভেরিয়েবল তৈরি করতে চান যা রিকোয়েস্টের আগে ব্যবহার হবে। আপনি BeanShell Pre-Processor এর মাধ্যমে এই কাজটি করতে পারেন:
// Generate a random session ID
String sessionId = "session_" + Math.random();
vars.put("sessionId", sessionId); // Save sessionId to a JMeter variable
এটি একটি র্যান্ডম সেশন আইডি তৈরি করবে এবং তা জেমিটার ভেরিয়েবল হিসাবে সেভ করবে যাতে পরবর্তী রিকোয়েস্টে ব্যবহার করা যেতে পারে।
অন্যান্য উদাহরণ
- Dynamic Headers: আপনি কাস্টম HTTP হেডার যোগ করতে পারেন যেমন
Authorizationহেডার। - Data Extraction: যদি আপনার ওয়েব সার্ভিস থেকে কোনো ডাটা এক্সট্র্যাক্ট করতে হয়, তবে আপনি প্রিপ্রসেসরের মাধ্যমে সেই ডাটা প্রসেস করে পরে রিকোয়েস্টে ব্যবহার করতে পারেন।
সারাংশ
জেমিটার (JMeter) এর HTTP URL Re-writing Modifier এবং BeanShell Pre-Processor হল দুটি অত্যন্ত কার্যকরী উপাদান যা লোড টেস্টিংয়ের কার্যকারিতা বাড়াতে সাহায্য করে। HTTP URL Re-writing Modifier ব্যবহার করে আপনি URL তে ডাইনামিক প্যারামিটার যুক্ত বা পরিবর্তন করতে পারেন, যা সেশন ট্র্যাকিং এবং অন্যান্য ডাইনামিক ভ্যালু ব্যবস্থাপনায় সহায়ক। অন্যদিকে, BeanShell Pre-Processor হল একটি কাস্টম স্ক্রিপ্টিং টুল যা জাভা কোড ব্যবহার করে টেস্টে প্রিপ্রসেসিং করার জন্য বিভিন্ন অপারেশন, ভেরিয়েবল সেটিং এবং ডেটা জেনারেশন করতে সাহায্য করে। এই দুটি উপাদান একসাথে ব্যবহার করে আপনি আরো বেশি কাস্টমাইজড, ফ্লেক্সিবল, এবং সঠিক লোড টেস্টিং করতে পারবেন।
Read more