TestNG এর মধ্যে টেস্ট প্যারামিটারাইজেশন এর ধারণা

TestNG Parameterization - টেস্টএনজি (TestNG) - Java Technologies

388

টেস্ট প্যারামিটারাইজেশন (Test Parameterization) একটি গুরুত্বপূর্ণ ধারণা যা টেস্টএনজি-তে টেস্ট কেসগুলোকে ডাইনামিক ডেটার সঙ্গে চালাতে ব্যবহার করা হয়। এটি মূলত একই টেস্ট কেসে ভিন্ন ভিন্ন ডেটা ইনপুট দিয়ে টেস্ট করার জন্য ব্যবহৃত হয়। প্যারামিটারাইজেশন আপনাকে কোড পুনঃব্যবহারযোগ্য করতে এবং ম্যানুয়াল ডেটা পরিবর্তনের ঝামেলা থেকে মুক্তি দেয়।


প্যারামিটারাইজেশন করার পদ্ধতি

টেস্টএনজিতে প্যারামিটারাইজড টেস্ট করার দুটি পদ্ধতি রয়েছে:

  • TestNG.xml এর মাধ্যমে প্যারামিটার পাস করা
  • @DataProvider অ্যানোটেশন ব্যবহার করে প্যারামিটার পাস করা

TestNG.xml এর মাধ্যমে প্যারামিটার পাস করা

আপনি TestNG.xml ফাইল ব্যবহার করে টেস্টে প্যারামিটার পাস করতে পারেন।

উদাহরণ

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

public class ParameterizationWithXML {

    @Test
    @Parameters({"username", "password"})
    public void loginTest(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="Suite">
    <test name="Parameter Test">
        <parameter name="username" value="testUser"/>
        <parameter name="password" value="testPass"/>
        <classes>
            <class name="ParameterizationWithXML"/>
        </classes>
    </test>
</suite>

আউটপুট

Username: testUser
Password: testPass

TestNG.xml এর মাধ্যমে ইনপুট প্যারামিটার সরবরাহ করা হয় এবং @Parameters অ্যানোটেশন ব্যবহার করে মেথডে তা রিসিভ করা হয়।


@DataProvider অ্যানোটেশন ব্যবহার করে প্যারামিটার পাস করা

@DataProvider একটি শক্তিশালী পদ্ধতি যা একাধিক ডেটা সেট সরবরাহ করতে পারে। এটি বড় আকারের ডেটা-চালিত টেস্টিং-এর জন্য আরও কার্যকর।

উদাহরণ

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

public class ParameterizationWithDataProvider {

    @DataProvider(name = "loginData")
    public Object[][] provideData() {
        return new Object[][]{
            {"user1", "pass1"},
            {"user2", "pass2"},
            {"user3", "pass3"}
        };
    }

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

আউটপুট

Username: user1, Password: pass1
Username: user2, Password: pass2
Username: user3, Password: pass3

এখানে @DataProvider একটি ডেটা সোর্স হিসেবে কাজ করে এবং loginTest মেথডে প্যারামিটার পাস করে।


TestNG.xml এবং @DataProvider এর মধ্যে পার্থক্য

বৈশিষ্ট্যTestNG.xml@DataProvider
ডেটা সোর্সস্ট্যাটিক ডেটাডায়নামিক এবং প্রোগ্রাম্যাটিক ডেটা
ডেটার নমনীয়তাসীমিত নমনীয়তাবড় ডেটাসেট সাপোর্ট করে
মাল্টিপল ইনপুটসীমিতএকাধিক ডেটা সেট সহজেই সাপোর্ট করে
ইনটিগ্রেশনসহজ, ম্যানুয়ালজাভা কোডের মাধ্যমে কাস্টমাইজেবল

প্যারামিটারাইজড টেস্টের সুবিধা

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

টেস্টএনজি-তে টেস্ট প্যারামিটারাইজেশন বড় প্রজেক্টের জন্য একটি অত্যন্ত কার্যকর পদ্ধতি। এটি একই টেস্ট কেসে ভিন্ন ভিন্ন ডেটার ওপর ভিত্তি করে পরীক্ষার মাধ্যমে কোডের কার্যকারিতা নিশ্চিত করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...