TestNG এর মাধ্যমে ডেটা ড্রিভেন টেস্টিং করা

TestNG এর মধ্যে টেস্ট ডেটা প্রোভাইডার - টেস্টএনজি (TestNG) - Java Technologies

397

ডেটা ড্রিভেন টেস্টিং হলো এমন একটি টেস্টিং পদ্ধতি যেখানে একই টেস্ট স্ক্রিপ্ট একাধিক ইনপুট ডেটা সেটের উপর ভিত্তি করে চালানো হয়। এটি টেস্টিং প্রক্রিয়াকে আরও দক্ষ করে তোলে কারণ একই টেস্ট কেস পুনরায় ব্যবহার করা যায় ভিন্ন ভিন্ন ডেটা দিয়ে। TestNG ডেটা ড্রিভেন টেস্টিং সহজ করতে DataProvider ফিচার সরবরাহ করে।


DataProvider কী?

DataProvider TestNG-এর একটি অ্যানোটেশন যা টেস্ট মেথডে একাধিক ইনপুট সরবরাহ করতে ব্যবহৃত হয়। এটি একটি মেথড, যা ডেটা রিটার্ন করে Object[][] ফরম্যাটে। এই ডেটা TestNG টেস্ট মেথডে ব্যবহার করা হয়।

DataProvider-এর গঠন:

@DataProvider(name = "dataProviderName")
public Object[][] dataProviderMethod() {
    return new Object[][] {
        {"data1", "data2"},
        {"data3", "data4"}
    };
}

DataProvider-এর মাধ্যমে ডেটা ড্রিভেন টেস্টিং উদাহরণ

উদাহরণ ১: সাধারণ ব্যবহার

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

public class DataDrivenTest {

    @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("Testing with Username: " + username + ", Password: " + password);
        // এখানে আপনি লজিক বা অ্যাসারশন যোগ করতে পারেন
    }
}

আউটপুট:
উপরের উদাহরণে, TestNG একাধিক ইনপুট দিয়ে একই টেস্ট মেথড চালায়। প্রতিবার loginTest মেথডে ভিন্ন username এবং password সরবরাহ করা হয়।


উদাহরণ ২: Excel থেকে ডেটা ব্যবহার করা

TestNG-এর DataProvider এর সাথে Apache POI লাইব্রেরি ব্যবহার করে Excel ফাইল থেকে ডেটা টেনে আনা সম্ভব।

import org.apache.poi.ss.usermodel.*;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class ExcelDataDrivenTest {

    @DataProvider(name = "excelData")
    public Object[][] readExcelData() throws IOException {
        File file = new File("testData.xlsx");
        FileInputStream fis = new FileInputStream(file);
        Workbook workbook = WorkbookFactory.create(fis);
        Sheet sheet = workbook.getSheetAt(0);

        int rowCount = sheet.getLastRowNum();
        int colCount = sheet.getRow(0).getLastCellNum();

        Object[][] data = new Object[rowCount][colCount];

        for (int i = 1; i <= rowCount; i++) {
            Row row = sheet.getRow(i);
            for (int j = 0; j < colCount; j++) {
                data[i - 1][j] = row.getCell(j).toString();
            }
        }
        workbook.close();
        fis.close();
        return data;
    }

    @Test(dataProvider = "excelData")
    public void excelTest(String col1, String col2) {
        System.out.println("Column 1: " + col1 + ", Column 2: " + col2);
        // এখানে অ্যাসারশন বা টেস্ট লজিক যোগ করুন
    }
}

ব্যাখ্যা:

  • এই উদাহরণে, Excel ফাইল থেকে ডেটা পড়ে Object[][] ফরম্যাটে সংরক্ষণ করা হয়।
  • TestNG-এর DataProvider এই ডেটা টেস্ট মেথডে ব্যবহার করে।

DataProvider-এর প্যারামিটারাইজেশন

একাধিক টেস্ট মেথডে একই DataProvider ব্যবহার

একটি DataProvider একাধিক টেস্ট মেথডে ব্যবহার করা যায়। এক্ষেত্রে DataProvider-এর নাম @Test অ্যানোটেশনের dataProvider প্যারামিটারে উল্লেখ করতে হয়।

@Test(dataProvider = "loginData", dataProviderClass = DataProviderClass.class)
public void testLogin(String username, String password) {
    // Test Logic
}

DataProvider-এর সুবিধা

  • পুনরায় ব্যবহারযোগ্য টেস্ট মেথড: একই টেস্ট মেথড বিভিন্ন ইনপুট ডেটার উপর ভিত্তি করে ব্যবহার করা যায়।
  • ডেটার মডুলারিটি: ডেটাকে টেস্ট মেথড থেকে আলাদা করে ডেটা সোর্স অনুযায়ী পরিবর্তন করা সহজ।
  • Excel বা ডেটাবেস ইন্টিগ্রেশন: বহিরাগত সোর্স থেকে ডেটা পড়ে টেস্ট চালানো সম্ভব।

সারাংশ

TestNG-এর DataProvider একটি শক্তিশালী ফিচার, যা ডেটা ড্রিভেন টেস্টিংয়ের জন্য অত্যন্ত কার্যকর। এটি টেস্ট মেথডকে আরও গতিশীল এবং পুনরায় ব্যবহারযোগ্য করে তোলে। সহজ ডেটা সেট থেকে শুরু করে Excel বা ডেটাবেসের মতো জটিল সোর্স থেকেও ডেটা ব্যবহার করা সম্ভব। TestNG-এর DataProvider টেস্টিং প্রক্রিয়াকে আরও সহজ, কার্যকর, এবং স্কেলেবল করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...