Java Technologies উদাহরণ সহ Parameterization গাইড ও নোট

342

Parameterization কী?

Parameterization টেস্টএনজি (TestNG) তে এমন একটি ফিচার যা টেস্ট মেথডে ডায়নামিক ডেটা প্রদান করতে ব্যবহার করা হয়। এটি কনফিগারেশন ফাইল (TestNG XML) বা @Parameters অ্যানোটেশনের মাধ্যমে ইনপুট সরবরাহ করে।

Parameterization এর প্রয়োজনীয়তা

  • ডেটা ড্রিভেন টেস্টিং: একই টেস্ট মেথডকে একাধিক ইনপুট দিয়ে চালানোর জন্য।
  • ডায়নামিক ইনপুট: টেস্ট রানের সময় ডেটা পরিবর্তনের সুবিধা দেয়।
  • কোড রিইউজেবিলিটি: একই টেস্ট মেথডে বিভিন্ন ইনপুট ব্যবহার করে কোডের পুনরাবৃত্তি কমায়।
  • কনফিগারেশন ফাইল ব্যবহার: টেস্টএনজি XML ফাইল থেকে ডেটা নেওয়ার সুবিধা।

Parameterization এর ধরন

১. TestNG XML ফাইলের মাধ্যমে Parameterization

TestNG XML ফাইল ব্যবহার করে টেস্ট মেথডে ডেটা সরবরাহ করা যায়।

উদাহরণ:

ধাপ ১: কোড তৈরি করুন
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class ParameterizationExample {

    @Test
    @Parameters({"username", "password"})
    public void testLogin(String username, String password) {
        System.out.println("Username: " + username);
        System.out.println("Password: " + password);
    }
}
ধাপ ২: TestNG XML ফাইল তৈরি করুন
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="ParameterizationSuite">
    <test name="LoginTest">
        <classes>
            <class name="ParameterizationExample">
                <parameter name="username" value="admin"/>
                <parameter name="password" value="admin123"/>
            </class>
        </classes>
    </test>
</suite>

আউটপুট:

Username: admin  
Password: admin123

২. @DataProvider ব্যবহার করে Parameterization

@DataProvider অ্যানোটেশন ব্যবহার করে একাধিক ইনপুট সরবরাহ করা যায়। এটি ডেটা-ড্রিভেন টেস্টিংয়ে বেশি ব্যবহৃত হয়।

উদাহরণ:

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class DataProviderExample {

    @DataProvider(name = "loginData")
    public Object[][] dataProviderMethod() {
        return new Object[][] {
            {"admin", "admin123"},
            {"user1", "password1"},
            {"user2", "password2"}
        };
    }

    @Test(dataProvider = "loginData")
    public void testLogin(String username, String password) {
        System.out.println("Username: " + username + ", Password: " + password);
    }
}

আউটপুট:

Username: admin, Password: admin123  
Username: user1, Password: password1  
Username: user2, Password: password2

Parameterization এর মাধ্যমে গণনা টেস্ট

উদাহরণ: দুই সংখ্যার যোগফল টেস্ট করার জন্য Parameterization ব্যবহার।

TestNG XML ফাইলের মাধ্যমে:

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class CalculatorTest {

    @Test
    @Parameters({"num1", "num2"})
    public void testAddition(int num1, int num2) {
        int result = num1 + num2;
        System.out.println("Addition of " + num1 + " and " + num2 + " is: " + result);
    }
}

TestNG XML:

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="CalculatorSuite">
    <test name="AdditionTest">
        <classes>
            <class name="CalculatorTest">
                <parameter name="num1" value="10"/>
                <parameter name="num2" value="20"/>
            </class>
        </classes>
    </test>
</suite>

আউটপুট:

Addition of 10 and 20 is: 30

@DataProvider ব্যবহার করে:

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class CalculatorDataProvider {

    @DataProvider(name = "additionData")
    public Object[][] dataProviderMethod() {
        return new Object[][] {
            {5, 3, 8},
            {10, 15, 25},
            {7, -2, 5}
        };
    }

    @Test(dataProvider = "additionData")
    public void testAddition(int num1, int num2, int expectedResult) {
        int actualResult = num1 + num2;
        System.out.println("Addition of " + num1 + " and " + num2 + " is: " + actualResult);
        assert actualResult == expectedResult : "Test Failed!";
    }
}

আউটপুট:

Addition of 5 and 3 is: 8  
Addition of 10 and 15 is: 25  
Addition of 7 and -2 is: 5

Parameterization এর সুবিধা

  • কোড রিইউজেবিলিটি: একই টেস্ট মেথড বারবার ব্যবহার করা যায়।
  • ডায়নামিক ইনপুট: XML বা @DataProvider থেকে সরাসরি ইনপুট ডেটা আসতে পারে।
  • সহজ রক্ষণাবেক্ষণ: ডেটা আলাদাভাবে সংজ্ঞায়িত থাকায় টেস্ট কোড পরিষ্কার থাকে।
  • টেস্ট কভারেজ বৃদ্ধি: একাধিক ডেটা সেট দিয়ে টেস্ট চালানোর মাধ্যমে কভারেজ বাড়ানো যায়।

সারাংশ

TestNG-র Parameterization বৈশিষ্ট্য ডেটা-ড্রিভেন টেস্টিংয়ের একটি অত্যন্ত কার্যকর উপায়। এটি কনফিগারেশন ফাইল বা @DataProvider ব্যবহার করে টেস্ট মেথডে ইনপুট প্রদান সহজ করে। এটি বড় মাপের টেস্টিং প্রজেক্টে সময় বাঁচায় এবং টেস্ট কভারেজ উন্নত করে।

Content added By
Promotion

Are you sure to start over?

Loading...