Java Technologies Custom Report তৈরি করা গাইড ও নোট

343

TestNG টেস্ট রানের সময় স্বয়ংক্রিয়ভাবে HTML ও XML রিপোর্ট তৈরি করে। তবে, প্রয়োজন অনুসারে কাস্টম রিপোর্ট তৈরি করা সম্ভব। কাস্টম রিপোর্ট তৈরি করার মাধ্যমে আপনি টেস্টের নির্দিষ্ট তথ্য, লোগিং এবং ফলাফল বিশ্লেষণ আরও সহজ করতে পারেন।


TestNG Custom Report তৈরির জন্য ধাপসমূহ

১. IReporter ইন্টারফেস ব্যবহার করে কাস্টম রিপোর্ট তৈরি

TestNG-র IReporter ইন্টারফেসটি কাস্টম রিপোর্ট তৈরি করতে ব্যবহার করা হয়। এই ইন্টারফেসটি আপনাকে টেস্ট রান শেষ হওয়ার পরে সম্পূর্ণ তথ্য সংগ্রহের সুযোগ দেয়।


উদাহরণ: কাস্টম HTML রিপোর্ট তৈরি

ধাপ ১: IReporter ইন্টারফেস ইমপ্লিমেন্ট করা

import org.testng.IReporter;
import org.testng.ISuite;
import org.testng.xml.XmlSuite;

import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

public class CustomReport implements IReporter {

    @Override
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
        try {
            // কাস্টম রিপোর্টের জন্য একটি HTML ফাইল তৈরি
            FileWriter writer = new FileWriter(outputDirectory + "/custom-report.html");
            writer.write("<html><head><title>Custom TestNG Report</title></head><body>");
            writer.write("<h1>Test Execution Report</h1>");

            // প্রতিটি Suite এর টেস্টের তথ্য সংগ্রহ
            for (ISuite suite : suites) {
                writer.write("<h2>Suite: " + suite.getName() + "</h2>");

                suite.getResults().forEach((key, result) -> {
                    try {
                        writer.write("<h3>Test: " + result.getTestContext().getName() + "</h3>");
                        writer.write("<p>Passed Tests: " + result.getTestContext().getPassedTests().getAllResults().size() + "</p>");
                        writer.write("<p>Failed Tests: " + result.getTestContext().getFailedTests().getAllResults().size() + "</p>");
                        writer.write("<p>Skipped Tests: " + result.getTestContext().getSkippedTests().getAllResults().size() + "</p>");
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                });
            }

            writer.write("</body></html>");
            writer.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ধাপ ২: testng.xml ফাইলে Listener যুক্ত করা

TestNG কাস্টম রিপোর্টার চালানোর জন্য testng.xml ফাইল ব্যবহার করতে হয়।

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="CustomReportSuite">
    <listeners>
        <listener class-name="CustomReport"/>
    </listeners>
    <test name="SampleTest">
        <classes>
            <class name="SampleTest"/>
        </classes>
    </test>
</suite>

ধাপ ৩: একটি সাধারণ টেস্ট ক্লাস তৈরি করা

import org.testng.annotations.Test;

public class SampleTest {

    @Test
    public void testPass() {
        System.out.println("This test will pass.");
    }

    @Test
    public void testFail() {
        System.out.println("This test will fail.");
        assert false : "Failing the test!";
    }
}

ধাপ ৪: রিপোর্ট জেনারেট করা

TestNG রান করার পর, আউটপুট ডিরেক্টরিতে (সাধারণত test-output) একটি custom-report.html ফাইল তৈরি হবে। এই ফাইলটি ব্রাউজারে ওপেন করলে কাস্টম HTML রিপোর্ট দেখতে পারবেন।


উদাহরণ: কনসোলে কাস্টম রিপোর্ট প্রদর্শন

ITestListener ইন্টারফেস ব্যবহার করে কনসোলে কাস্টম রিপোর্ট লোগিং করা যায়।

ITestListener ইন্টারফেস ব্যবহার

import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;

public class CustomConsoleReport implements ITestListener {

    @Override
    public void onTestStart(ITestResult result) {
        System.out.println("Starting Test: " + result.getName());
    }

    @Override
    public void onTestSuccess(ITestResult result) {
        System.out.println("Test Passed: " + result.getName());
    }

    @Override
    public void onTestFailure(ITestResult result) {
        System.out.println("Test Failed: " + result.getName());
    }

    @Override
    public void onStart(ITestContext context) {
        System.out.println("Starting Test Suite: " + context.getName());
    }

    @Override
    public void onFinish(ITestContext context) {
        System.out.println("Finished Test Suite: " + context.getName());
    }
}

testng.xml ফাইল

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="ConsoleReportSuite">
    <listeners>
        <listener class-name="CustomConsoleReport"/>
    </listeners>
    <test name="SampleTest">
        <classes>
            <class name="SampleTest"/>
        </classes>
    </test>
</suite>

Custom Report এর সুবিধা

১. রিপোর্ট কাস্টমাইজেশন: নিজের প্রয়োজন অনুযায়ী টেস্ট রিপোর্ট তৈরি করা যায়।
২. সহজ বিশ্লেষণ: নির্দিষ্ট ফলাফল যেমন পাস, ফেল বা স্কিপড টেস্ট সরাসরি ফাইল বা কনসোলে দেখা যায়।
৩. বহুমুখী ব্যবহার: HTML, XML বা JSON ফর্ম্যাটে রিপোর্ট তৈরি করা সম্ভব।
৪. রিয়েল-টাইম তথ্য: কনসোলে রিয়েল-টাইম রিপোর্ট জেনারেট করার সুবিধা।


সারসংক্ষেপ

TestNG-র IReporter এবং ITestListener ইন্টারফেস ব্যবহার করে কাস্টম রিপোর্ট তৈরি করা যায়। এটি টেস্টের ফলাফলকে আরও বিস্তারিত এবং সহজভাবে উপস্থাপন করতে সাহায্য করে। কাস্টম রিপোর্ট বড় মাপের টেস্টিং স্যুটের বিশ্লেষণে কার্যকর ভূমিকা রাখে।

Content added By
Promotion

Are you sure to start over?

Loading...