@Parameters অ্যানোটেশন এর ব্যবহার

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

369

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


@Parameters কীভাবে কাজ করে?

  1. XML ফাইলে প্যারামিটার ডিক্লেয়ার করুন:
    TestNG XML ফাইলের মধ্যে <parameter> ট্যাগ ব্যবহার করে প্যারামিটার ডিফাইন করতে হয়।
  2. টেস্ট মেথডে প্যারামিটার ইনজেকশন:
    @Parameters অ্যানোটেশন ব্যবহার করে টেস্ট মেথডে XML ফাইল থেকে প্যারামিটার রিড করা হয়।

উদাহরণ

ধরুন, আমরা একটি টেস্ট মেথড তৈরি করব যেখানে দুটি প্যারামিটার username এবং password পাস করা হবে।

১. টেস্ট ক্লাস

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

public class ParametersExample {

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

২. XML ফাইল

testng.xml ফাইল:

<suite name="SuiteExample">
    <test name="LoginTest">
        <parameter name="username" value="testuser"/>
        <parameter name="password" value="password123"/>
        <classes>
            <class name="ParametersExample"/>
        </classes>
    </test>
</suite>

৩. আউটপুট

Username: testuser
Password: password123

একাধিক প্যারামিটার পাস করা

TestNG-তে একাধিক প্যারামিটার পাস করা সহজ। টেস্ট মেথডে একাধিক প্যারামিটার যোগ করে এবং XML ফাইলে তাদের ডিফাইন করে এটি সম্পন্ন করা যায়।

উদাহরণ: তিনটি প্যারামিটার পাস করা

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

public class MultiParametersExample {

    @Test
    @Parameters({"url", "browser", "timeout"})
    public void configTest(String url, String browser, int timeout) {
        System.out.println("URL: " + url);
        System.out.println("Browser: " + browser);
        System.out.println("Timeout: " + timeout);
    }
}

testng.xml:

<suite name="SuiteExample">
    <test name="ConfigTest">
        <parameter name="url" value="http://example.com"/>
        <parameter name="browser" value="Chrome"/>
        <parameter name="timeout" value="30"/>
        <classes>
            <class name="MultiParametersExample"/>
        </classes>
    </test>
</suite>

আউটপুট:

URL: http://example.com
Browser: Chrome
Timeout: 30

ডিফল্ট ভ্যালু ব্যবহার করা

যদি XML ফাইলে কোনো প্যারামিটার উল্লেখ না করা হয়, তবে ডিফল্ট ভ্যালু সেট করা যায় কোডের মধ্যে।

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

public class DefaultParametersExample {

    @Test
    @Parameters({"username", "password"})
    public void loginTest(String username, String password) {
        // ডিফল্ট ভ্যালু
        if (username == null) username = "defaultUser";
        if (password == null) password = "defaultPass";

        System.out.println("Username: " + username);
        System.out.println("Password: " + password);
    }
}

বাস্তব জীবনে ব্যবহার

  1. কনফিগারেশন সেটআপ:
    ব্রাউজার টাইপ, URL, অথবা সার্ভার ইনফরমেশন পাস করতে ব্যবহার করা যায়।
  2. পরিবেশভিত্তিক টেস্টিং:
    ডেভেলপমেন্ট, টেস্টিং, অথবা প্রোডাকশন পরিবেশ অনুযায়ী টেস্টিং কনফিগারেশন সেট করা।
  3. ডেটা চালিত টেস্টিং:
    একাধিক ভিন্ন ইনপুট ডেটা ব্যবহার করে টেস্ট কেস চালানোর জন্য।

সীমাবদ্ধতা

  • শুধুমাত্র XML ফাইলের মাধ্যমে প্যারামিটার পাস করা যায়।
  • বড় এবং জটিল ডেটা সেটের জন্য DataProvider ব্যবহার করা বেশি কার্যকর।

সারাংশ

@Parameters অ্যানোটেশন TestNG-তে টেস্ট মেথডে সহজে প্যারামিটার পাস করার সুযোগ দেয়। এটি বিশেষ করে কনফিগারেশন সেটআপ এবং পরিবেশভিত্তিক টেস্টিংয়ের জন্য কার্যকর। TestNG XML ফাইলের সাথে একত্রে কাজ করে এটি টেস্ট স্ক্রিপ্টের গঠন আরও সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...