Skip to content

Make Selenium Easy

And Keep It That Way

  • Home
  • Share
  • Toggle search form

TestNG Tutorials 44: Constructor with @Parameter Annotation | Make Selenium Easy

Posted on 10/17/2018 By admin

Hello Folks,

We have seen previously that how can we parameterize methods in a TestNG class.

The approach of using @Parameters annotations with each methods is not so good. Some demerits of this approach are as below:

  1. You need to include @Parameters annotation with each parameterized method.
  2. You need to accept as many as attributes in method signature passed in @Parameters annotation.
  3. If same parameter is used by multiple methods, you need to explicitly write that parameter name with @Parameters annotation for all methods consuming same parameter and in method signature.
  4. If you need to remove or add new parameters from methods, you need to edit both @Parameters annotation for desired methods and their method signature.

Can’t we do something so that all parameters will be initialized at once with values provided at run time which will be used by methods instead of individual Parameter annotation for each method ? 

Yes, we can. We can achieve that using Constructor concept of Java. 

We needs to create a constructor in TestNG class and use @Parameter annotation on that. Initialize all parameters in constructor. See an example below:

package Parameters;

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



public class ParametersExampleAtClonstructor {
        
        // List of parameters
        String p1;
        String p2;
        String p3;
        String p4;
        
        // Accept all parameters in Constructor from testng.xml
        @Parameters({"confBeforeParameter","testParameters1","testParameters2","confAfterParameter"})
        public  ParametersExampleAtClonstructor(String s1, String s2, String s3, String s4)
        {
                // Initialize all parameters 
                System.out.println("in constructor");
                p1=s1;
                p2=s2;
                p3=s3;
                p4=s4;
        }

        // Use whatever parameters are needed in methods
        // Note here I am not using any parameter in method signature and Parameters annotation
        @BeforeMethod
        public void configurationBeforeMethod()
        {
                System.out.println("Paramters for before configuration method: "+p1);
        }
        
        
        @Test
        public void testMethod()
        {
                System.out.println("Paramters one for test method: "+p2);
                System.out.println("Paramters two for test method: "+p3);
        }
        
        
        @AfterMethod
        public void configurationAfterMethod()
        {
                System.out.println("Paramters for after configuration method: "+p4);
        }
}

TestNG xml:




        
                
                
                
                
                
                        
                
         
 

Output:

If you want to add or remove parameters, you can do easily by modification in constructor instead of multiple places. Hope this concept will be very much useful when you need to deal with multiple parameters.

More about TestNG in upcoming posts. Stay tuned.

If you have any doubt, feel free to comment below. If you like my posts, please like, comment, share and subscribe. #ThanksForReading

#HappySelenium

My name is Amod Mahajan and I am an IT employee with 4+ years of experience in Software testing and staying in Bengaluru. My area of interest is Automation testing. I started from basics and went throw so many selenium tutorials. Thanks to Mukesh Otwani as his tutorials are easy and cover basics to advance. I have habit of exploring concepts by deep diving. I used to make notes. I thought of sharing my knowledge through posts and now I am here. #KeepLearning #ShareLearning

Uncategorized

Post navigation

Previous Post: API Testing Tutorial Part 14 – Sending First GET Request in Postman – Make Selenium Easy
Next Post: Frequently Asked Java Program 22: Java Program to Trim Whitespace From String Without Using Trim Method | Make Selenium Easy

Related Posts

Postman Tutorial Part 7 – Difference Between ‘Accept’ and ‘Content-Type’ HTTP Headers Uncategorized
JSONAssert Uncategorized
Wildcard characters in XPath – Selenium WebDriver Uncategorized
PROTRACTOR TUTORIAL 2– Identify Angular and Non-angular Application Uncategorized
December 20, 2018 – Make Selenium Easy Uncategorized
FileUpload – Make Selenium Easy Uncategorized

Recent Posts

  • Getting Started with Selenium 4: What Is New and How to Upgrade from Selenium 3
  • Manual Testing
  • Baby Steps To Become Efficient Selenium-Java Automation Tester
  • Features of Selenium 4.0.0 Release – Java Binding
  • Part 1: Handling Drop-down Created Using SELECT Tag In Selenium

Recent Comments

No comments to show.

Archives

  • April 2026
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • April 2024
  • March 2024
  • February 2024
  • December 2023
  • October 2023
  • August 2023
  • November 2022
  • September 2022
  • August 2022
  • July 2022
  • May 2022
  • March 2022
  • October 2021
  • April 2021
  • March 2021
  • January 2021
  • December 2020
  • October 2020
  • September 2020
  • August 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • May 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • January 2018

Categories

  • Getting Started
  • Uncategorized

Copyright © 2026 Make Selenium Easy.

Powered by PressBook Masonry Dark