জেমিটার (JMeter) একটি শক্তিশালী ওপেন সোর্স টুল, যা ওয়েব অ্যাপ্লিকেশন, ওয়েব সার্ভিস এবং অন্যান্য প্রটোকলের পারফরম্যান্স এবং ফাংশনাল টেস্টিংয়ের জন্য ব্যবহৃত হয়। টেস্ট প্ল্যানের মধ্যে জাভা বা স্ক্রিপ্টিং ভাষা ব্যবহার করে কাস্টম কার্য সম্পাদন করতে BeanShell এবং JMeter Scripting ব্যবহার করা হয়।
BeanShell
BeanShell একটি স্ক্রিপ্টিং ভাষা যা জাভা ভাষার উপর ভিত্তি করে তৈরি, এবং এটি জাভা কোডের মতোই কাজ করে তবে কোডের মধ্যে কমপ্লেক্সিটি কমায় এবং দ্রুত টেস্ট কনফিগারেশন পরিবর্তন করার সুযোগ দেয়। জেমিটার ব্যবহারকারীরা টেস্ট প্ল্যানের মধ্যে BeanShell স্ক্রিপ্ট ব্যবহার করে বিভিন্ন কার্য সম্পাদন করতে পারেন, যেমন ডেটা প্রিপারেশন, কাস্টম ফাংশন বা ক্যালকুলেশন, ভেরিয়েবল সেটিংস ইত্যাদি।
1. BeanShell কি?
BeanShell একটি সহজ এবং নমনীয় স্ক্রিপ্টিং ভাষা যা জাভা কোডের মতোই কাজ করে কিন্তু সহজ এবং কমপ্লেক্সিটি কমায়। এটি জাভা API ব্যবহার করতে পারে এবং অনেক ক্ষেত্রে এটি Java এর কাজকে হালকা করে তোলে। জেমিটার প্রজেক্টে BeanShell ব্যবহার করার মাধ্যমে আপনি বিভিন্ন কার্য সম্পাদন করতে পারেন, যেমন:
- ডেটা ম্যানিপুলেশন (যেমন, কাস্টম ভেরিয়েবল তৈরি করা)
- কাস্টম ক্যালকুলেশন (যেমন, সংখ্যা বা স্ট্রিং অপারেশন)
- ওয়েব সার্ভিস রিকোয়েস্টের আগে বা পরে কিছু কাস্টম কার্য সম্পাদন করা
BeanShell স্ক্রিপ্টিং কনফিগারেশন
JMeter তে BeanShell স্ক্রিপ্ট ব্যবহার করার জন্য আপনাকে BeanShell PreProcessor অথবা BeanShell PostProcessor এর মতো উপাদান যোগ করতে হবে।
2. BeanShell PreProcessor উদাহরণ
PreProcessor ব্যবহার করার মাধ্যমে আপনি Sampler বা HTTP রিকোয়েস্ট এক্সিকিউট হওয়ার আগে কিছু কাস্টম কার্য সম্পাদন করতে পারেন।
উদাহরণ:
ধরা যাক, আপনি একটি Random Number তৈরি করতে চান এবং সেই নম্বরটি একটি ভেরিয়েবলে সংরক্ষণ করতে চান।
স্টেপ 1: BeanShell PreProcessor যোগ করা
- Thread Group-এ রাইট ক্লিক করুন।
- Add -> PreProcessors -> BeanShell PreProcessor সিলেক্ট করুন।
স্টেপ 2: BeanShell স্ক্রিপ্ট কনফিগারেশন
BeanShell PreProcessor স্ক্রিপ্টে কোড লেখুন:
// Random Number Generation
int randomNum = (int)(Math.random() * 1000);
vars.put("randomNumber", String.valueOf(randomNum)); // Store in JMeter variable
এটি একটি র্যান্ডম নাম্বার তৈরি করবে এবং সেটিকে randomNumber নামক ভেরিয়েবলে সংরক্ষণ করবে।
3. BeanShell PostProcessor উদাহরণ
PostProcessor ব্যবহার করে আপনি রেসপন্স পাওয়ার পরে কিছু কাস্টম কার্য সম্পাদন করতে পারেন, যেমন রেসপন্স থেকে ডেটা এক্সট্র্যাক্ট করা বা রেসপন্স যাচাই করা।
উদাহরণ:
ধরা যাক, আপনি HTTP রিকোয়েস্টের রেসপন্স থেকে একটি ভ্যালু এক্সট্র্যাক্ট করতে চান এবং সেটি একটি ভেরিয়েবলে সংরক্ষণ করতে চান।
স্টেপ 1: BeanShell PostProcessor যোগ করা
- HTTP Request Sampler-এ রাইট ক্লিক করুন।
- Add -> PostProcessors -> BeanShell PostProcessor সিলেক্ট করুন।
স্টেপ 2: BeanShell স্ক্রিপ্ট কনফিগারেশন
// Extract specific part of response
String response = prev.getResponseDataAsString();
String extractedValue = response.split(":")[1]; // Example: Extract value after colon
vars.put("extractedValue", extractedValue); // Store in JMeter variable
এটি HTTP রেসপন্স থেকে একটি ভ্যালু এক্সট্র্যাক্ট করবে এবং সেটি extractedValue নামক ভেরিয়েবলে সংরক্ষণ করবে।
4. JMeter Scripting
JMeter স্ক্রিপ্টিং ভাষা ব্যবহার করে আপনি অনেক শক্তিশালী কার্য সম্পাদন করতে পারেন। জেমিটার বিভিন্ন ধরনের স্ক্রিপ্টিং ভাষা সাপোর্ট করে, যেমন:
- JMeter Functions: জেমিটার বিল্ট-ইন ফাংশন যা ভেরিয়েবল তৈরি, প্রক্রিয়াকরণ, এবং সিমুলেশন করা সম্ভব করে।
- Groovy: Groovy একটি শক্তিশালী স্ক্রিপ্টিং ভাষা যা জাভা ভিত্তিক এবং জেমিটারেও ব্যবহৃত হয়।
- JavaScript: আপনি JavaScript দিয়ে কাস্টম স্ক্রিপ্ট লেখার মাধ্যমে বিভিন্ন ক্যালকুলেশন বা টেস্ট কনফিগার করতে পারেন।
উদাহরণ: Groovy Script
JMeter তে Groovy স্ক্রিপ্ট ব্যবহার করে কাস্টম কার্য সম্পাদন করতে পারেন, যেমন আউটপুট হিসাবে কিছু ডেটা গণনা করা।
স্টেপ 1: JSR223 Sampler যোগ করা
- Thread Group-এ রাইট ক্লিক করুন।
- Add -> Sampler -> JSR223 Sampler সিলেক্ট করুন।
স্টেপ 2: Groovy স্ক্রিপ্ট কনফিগারেশন
Groovy স্ক্রিপ্ট কনফিগার করার জন্য:
// Groovy script for simple calculation
def sum = 10 + 20;
vars.put("sumResult", sum.toString()); // Store the result in JMeter variable
এটি একটি সাধারাণ গাণিতিক ক্যালকুলেশন করবে এবং সেই ফলাফলকে sumResult নামে একটি ভেরিয়েবলে সংরক্ষণ করবে।
5. JMeter Functions
জেমিটার ফাংশনগুলি টেস্টের মধ্যে ভেরিয়েবল তৈরি করতে, রেসপন্স ডেটা প্রক্রিয়াকরণে, এবং টেস্ট চলাকালীন ডাইনামিক ডেটা প্রযোজ্য করতে ব্যবহৃত হয়।
উদাহরণ: Random
একটি Random ফাংশন ব্যবহার করে আপনি র্যান্ডম ভ্যালু জেনারেট করতে পারেন।
উদাহরণ:
${__Random(1000,9999)}
এটি 1000 থেকে 9999 এর মধ্যে একটি র্যান্ডম সংখ্যা তৈরি করবে।
6. JMeter Scripting এর অন্যান্য উদাহরণ
উদাহরণ: CSV Data Set Config
জেমিটার CSV Data Set Config ব্যবহার করে আপনি CSV ফাইল থেকে ডেটা লোড করতে পারেন এবং সেই ডেটা প্রতি রিকোয়েস্টে ব্যবহার করতে পারেন।
কনফিগারেশন:
- File Name:
data.csv - Variable Names:
username, password
এটি data.csv ফাইল থেকে username এবং password এর মান এক্সট্র্যাক্ট করবে এবং প্রতিটি রিকোয়েস্টে ব্যবহার করবে।
সারাংশ
BeanShell এবং JMeter Scripting এর মাধ্যমে জেমিটার টেস্ট প্ল্যানে কাস্টম কার্য সম্পাদন করা যায়। BeanShell স্ক্রিপ্টের মাধ্যমে আপনি HTTP রিকোয়েস্টের আগে বা পরে কাস্টম কোড চালাতে পারেন, যেমন ডেটা ম্যানিপুলেশন বা রেসপন্স এক্সট্র্যাকশন। JMeter Functions এবং Groovy স্ক্রিপ্টগুলি আপনার টেস্টের মধ্যে আরও ডায়নামিক কার্য সম্পাদন করতে সহায়তা করে, যেমন র্যান্ডম ভ্যালু জেনারেট করা, গণনা করা বা ডেটা এক্সট্র্যাক্ট করা। JMeter এর এই স্ক্রিপ্টিং ক্ষমতা আপনার টেস্ট প্ল্যানকে আরো ফ্লেক্সিবল এবং শক্তিশালী করে তোলে।