উদাহরণ সহ Test Timeout কনফিগারেশন

TestNG এর মধ্যে টেস্ট টائمআউট কনফিগারেশন - টেস্টএনজি (TestNG) - Java Technologies

365

TestNG টেস্টিং ফ্রেমওয়ার্কে Test Timeout একটি গুরুত্বপূর্ণ ফিচার, যা নির্ধারণ করে কোনো টেস্ট মেথডের এক্সিকিউশন কতক্ষণ ধরে চলবে। নির্ধারিত সময় অতিক্রম করলে টেস্ট ব্যর্থ (fail) হিসেবে গণ্য হবে।


Test Timeout-এর ব্যবহার

Timeout সাধারণত টেস্ট মেথডে অপ্রত্যাশিত দীর্ঘ চলাকালীনতা এড়ানোর জন্য ব্যবহৃত হয়। এটি @Test অ্যানোটেশনের timeOut প্যারামিটারের মাধ্যমে কনফিগার করা যায়।


Test Timeout-এর উদাহরণ

নির্দিষ্ট টেস্ট মেথডে Timeout

import org.testng.annotations.Test;

public class TimeoutExample {

    @Test(timeOut = 2000) // সময় নির্ধারণ: ২ সেকেন্ড
    public void testWithTimeout() throws InterruptedException {
        Thread.sleep(1000); // ১ সেকেন্ড অপেক্ষা
        System.out.println("Test completed within the timeout.");
    }

    @Test(timeOut = 2000) // সময় নির্ধারণ: ২ সেকেন্ড
    public void testExceedingTimeout() throws InterruptedException {
        Thread.sleep(3000); // ৩ সেকেন্ড অপেক্ষা
        System.out.println("This test will fail due to exceeding timeout.");
    }
}

আউটপুট:

Test completed within the timeout.
FAILED: testExceedingTimeout
org.testng.internal.thread.ThreadTimeoutException: Method timed out after 2000 milliseconds

উপরের উদাহরণে:

  • testWithTimeout নির্ধারিত সময়ের মধ্যে শেষ হয়, তাই সফল।
  • testExceedingTimeout ২ সেকেন্ডের সময়সীমা অতিক্রম করে, তাই ব্যর্থ।

Test Timeout testng.xml-এ কনফিগার করা

testng.xml-এ টেস্ট সুইট বা টেস্ট স্তরে Timeout নির্ধারণ করা যায়।

<suite name="TimeoutSuite" time-out="2000">
    <test name="TimeoutTest">
        <classes>
            <class name="com.example.TimeoutExample" />
        </classes>
    </test>
</suite>

উপরের উদাহরণে, পুরো টেস্ট স্যুটে ২ সেকেন্ডের Timeout নির্ধারণ করা হয়েছে।


Timeout এবং Retry মেকানিজম

TestNG-এর Retry Analyzer ফিচার ব্যবহার করে ব্যর্থ হওয়া Timeout টেস্ট পুনরায় চালানো সম্ভব।

import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;

public class RetryAnalyzer implements IRetryAnalyzer {
    private int retryCount = 0;
    private static final int maxRetryCount = 1;

    @Override
    public boolean retry(ITestResult result) {
        if (retryCount < maxRetryCount) {
            retryCount++;
            return true;
        }
        return false;
    }
}

টেস্টে Retry অ্যাপ্লাই করতে:

import org.testng.annotations.Test;

public class TimeoutWithRetry {

    @Test(timeOut = 2000, retryAnalyzer = RetryAnalyzer.class)
    public void testWithRetry() throws InterruptedException {
        Thread.sleep(3000);
        System.out.println("Retry test executed.");
    }
}

গুরুত্বপূর্ণ দিকনির্দেশনা

  1. সময়ের মাপ: Timeout মি.লি.সেকেন্ডে (milliseconds) নির্ধারণ করতে হয়।
  2. বৃহৎ টেস্ট স্যুটে সতর্কতা: Timeout প্রয়োগ করার সময় বৃহৎ স্যুটে জটিলতা এড়াতে উপযুক্ত মান নির্ধারণ করুন।
  3. ডিবাগিং সহায়তা: Timeout প্রয়োগ করলে টেস্ট দ্রুত ব্যর্থ হবে, যা ডিবাগিং সহজ করে।

সারাংশ

TestNG-এর Test Timeout ফিচার টেস্ট স্যুটের কর্মক্ষমতা নিশ্চিত করে এবং দীর্ঘ মেয়াদি টেস্ট থেকে রক্ষা করে। এটি টেস্ট এক্সিকিউশনের নির্ধারিত সীমা বজায় রাখতে সহায়তা করে, ফলে টেস্টিং প্রক্রিয়া আরও কার্যকর এবং নির্ভরযোগ্য হয়।

Content added By
Promotion

Are you sure to start over?

Loading...