Parallel Execution টেস্টএনজি (TestNG)-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা একাধিক টেস্ট বা টেস্ট ক্লাস একই সময়ে (প্যারালালভাবে) চালাতে সাহায্য করে। এটি টেস্টিংয়ের সময় বাঁচায় এবং বড় প্রোজেক্টে কার্যকরী হয়, বিশেষ করে যখন একাধিক ব্রাউজার বা পরিবেশে টেস্ট করতে হয়।
Parallel Execution কীভাবে কাজ করে?
Parallel Execution সাধারণত TestNG.xml ফাইলের মাধ্যমে কনফিগার করা হয়। আপনি নির্ধারণ করতে পারেন যে টেস্টগুলো ক্লাস, মেথড বা টেস্ট স্যুট লেভেলে প্যারালালভাবে চলবে।
Parallel Execution সেটআপ করার ধাপ
TestNG.xml ফাইলের কনফিগারেশন
TestNG.xml ফাইলে parallel অ্যাট্রিবিউট এবং thread-count ব্যবহার করে প্যারালাল টেস্ট কনফিগার করা যায়।
উদাহরণ: ক্লাস ভিত্তিক Parallel Execution
টেস্ট ক্লাস ১ (BrowserTest1.java)
import org.testng.annotations.Test;
public class BrowserTest1 {
@Test
public void testMethod1() {
System.out.println("BrowserTest1 - Method1: " + Thread.currentThread().getId());
}
@Test
public void testMethod2() {
System.out.println("BrowserTest1 - Method2: " + Thread.currentThread().getId());
}
}
টেস্ট ক্লাস ২ (BrowserTest2.java)
import org.testng.annotations.Test;
public class BrowserTest2 {
@Test
public void testMethod1() {
System.out.println("BrowserTest2 - Method1: " + Thread.currentThread().getId());
}
@Test
public void testMethod2() {
System.out.println("BrowserTest2 - Method2: " + Thread.currentThread().getId());
}
}
TestNG.xml ফাইল
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Parallel Test Suite" parallel="classes" thread-count="2">
<test name="Test Suite 1">
<classes>
<class name="BrowserTest1"/>
<class name="BrowserTest2"/>
</classes>
</test>
</suite>
আউটপুট
BrowserTest1 - Method1: 12
BrowserTest1 - Method2: 12
BrowserTest2 - Method1: 13
BrowserTest2 - Method2: 13
এখানে, দুটি টেস্ট ক্লাস আলাদা থ্রেডে চালানো হয়েছে। thread-count="2" নির্দেশ করে যে একসাথে দুইটি থ্রেড ব্যবহার করা হবে।
উদাহরণ: মেথড ভিত্তিক Parallel Execution
TestNG.xml ফাইল (মেথড ভিত্তিক Parallel Execution)
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Parallel Test Suite" parallel="methods" thread-count="3">
<test name="Test Suite 2">
<classes>
<class name="BrowserTest1"/>
<class name="BrowserTest2"/>
</classes>
</test>
</suite>
আউটপুট
BrowserTest1 - Method1: 12
BrowserTest1 - Method2: 13
BrowserTest2 - Method1: 14
BrowserTest2 - Method2: 15
এক্ষেত্রে প্রতিটি টেস্ট মেথড আলাদা থ্রেডে চালানো হয়েছে।
প্যারালাল এক্সিকিউশনের মূল বিষয়সমূহ
- Thread Count:
thread-countনির্দেশ করে কতটি থ্রেডে টেস্ট চালানো হবে। ডিফল্ট মান ১। - Parallel Modes:
- methods: প্রতিটি টেস্ট মেথড আলাদা থ্রেডে চালানো হয়।
- classes: প্রতিটি ক্লাস আলাদা থ্রেডে চালানো হয়।
- tests: TestNG.xml-এ নির্দিষ্ট টেস্ট সেকশন আলাদা থ্রেডে চালানো হয়।
- সতর্কতা:
- প্যারালাল এক্সিকিউশনে শেয়ারড ডেটা ব্যবহারে সতর্ক হতে হবে, কারণ এটি ডেটা রেস বা ইনকনসিস্টেন্সি তৈরি করতে পারে।
- থ্রেড-সেফ কোড ব্যবহার করা গুরুত্বপূর্ণ।
প্যারালাল এক্সিকিউশনের সুবিধা
- সময় বাঁচায়: একাধিক টেস্ট একই সময়ে চালানো হয়।
- বড় প্রজেক্টে কার্যকর: দ্রুত বিভিন্ন টেস্ট কেস সম্পন্ন করা যায়।
- বিভিন্ন ব্রাউজারে টেস্ট: একই টেস্ট একাধিক ব্রাউজারে প্যারালাল চালানো সহজ।
TestNG-এর প্যারালাল এক্সিকিউশন বড় আকারের টেস্ট স্যুট পরিচালনার জন্য একটি অত্যন্ত কার্যকর পদ্ধতি। এটি সঠিকভাবে কনফিগার করে ব্যবহার করলে টেস্টিং-এর সময় এবং রিসোর্স ব্যবহারে অনেক সুবিধা পাওয়া যায়।
Read more