What is TestNG.xml and How to use it?

16 Apr
4 Min
TestNG Tutorial

Table of content

    600 0

    Table of Contents

    1. What is TestNG.xml ?
    2. Advantages Of TestNG.xml
    3. Example Run Using TestNG.xml
    4. How to use TestNG
    5. FAQs

    Key Points:

    • TestNG.xml is a configuration file for organizing and executing tests in TestNG.
    • It allows customization of test execution, including test suites, methods, parameters, and groups.
    • It offers advantages like parallel execution, parameterization, customization, organization, and integration with tools.
    • To use TestNG.xml, create the file, specify classes/methods, configure parameters, run tests, and view results.
    • It's essential for structuring and managing test cases efficiently in TestNG.

    TestNG.xml is a configuration file used in TestNG, a popular testing framework for Java. It allows users to define and customize test execution settings, including which test classes and methods to run, test parameters, test groups, and various other options.

    In essence, TestNG.xml serves as a blueprint for executing tests in a structured and organized manner. By configuring TestNG.xml, testers can control various aspects of their test suites and tailor them to specific requirements or scenarios.

    What is TestNG.xml?

    In TestNG framework, we need to create Testng xml file to create and handle multiple test classes. We do configure our test run, set test dependency, include or exclude any test, method, class or package and set priority etc in the xml file. TestNG.xml file is an XML file which contains all the Test configuration and this XML file can be used to run and organize our test.

    TestNG eclipse plugin can be used to automatically generate testng.xml file so no need to write from scratch. In this article, we are going to learn about what is testng.xml and how to use testng.xml file to run our test.

    TestNG support two kinds of parameterization, using @Parameter+TestNG.xml and using@DataProvider. In @Parameter+TestNG.xml parameters can be placed in suite level and test level. If the Same parameter name is declared in both places; test level parameter will get preference over suit level parameter.

    You understand how vital a TestNG XML file is for running parallel tests in a Selenium Grid, it is time to learn how to create a TestNG XML file. There are two methods to create a TestNG XML file, feel free to use either of them-

    Method 1:

    • Right-click on the project folder & towards the bottom of the list, select TestNG and then “Convert to TestNG.”
    • Click on Next
    • The next window that pops up will have the refactored source code, which would be applicable after you click Finish.
    • A new addition to your project directory would be displayed named as testng.xml.
    • Double click on testng.xml to open the xml file

    Method 2:

    • Right-click on Project, then New, and finally select File.
    • Next, enter the following file name “testng.xml” and then click on Finish.
    • In this step, you will have to enter the XML code manually. That is how the two methods differ from each other. After entering the XML code, you can select a name for your liking suite and class. This is what a basic XML file looks like-
    Method 2

    Now you can copy the above code (with your choice of names) on the TestNG XML file we’ve created above.

    The testng.xml file has the numerous uses as listed below

    • Test cases are executed in groups.
    • Test methods can be included or excluded in the execution.
    • The execution of multiple test cases from multiple java class files can be triggered.
    • Comprises names of the folder, class, method.
    • Capable of triggering parallel execution.
    • Test methods belonging to groups can be included or excluded in the execution.

    Advantages Of TestNG.xml

    TestNG.xml offers several advantages in test automation:

    1. Customization: TestNG.xml allows you to customize test execution settings such as defining test suites, specifying test classes and methods to run, setting test parameters, and configuring test groups. This flexibility enables tailored test execution according to specific requirements.
    2. Organization: By structuring test cases into logical groups within TestNG.xml, you can organize tests efficiently, making it easier to manage and maintain test suites. This organization enhances clarity and ensures a systematic approach to testing.
    3. Parallel Execution: TestNG.xml supports parallel execution of tests, allowing you to run multiple tests concurrently. This capability significantly reduces test execution time, improving overall efficiency and productivity in test automation.
    4. Parameterization: TestNG.xml enables parameterization of test cases, allowing you to run the same test with different input data or configurations. This facilitates comprehensive testing and enhances test coverage by testing various scenarios.
    5. Integration: TestNG.xml seamlessly integrates with build tools like Maven and Continuous Integration (CI) servers such as Jenkins. This integration facilitates automated test execution as part of the build process, enabling continuous testing and rapid feedback loops.

    Example Run Using TestNG.xml

    To run tests using TestNG.xml, follow these simple steps:

    1. Create TestNG.xml: Begin by creating a TestNG.xml file where you define your test suite, test classes, methods, parameters, and other settings.
    2. Specify Test Classes and Methods: In TestNG.xml, specify the test classes and methods you want to include in your test execution. You can also define test groups if needed.
    3. Configure Test Parameters: Set any necessary test parameters or configurations in TestNG.xml, such as browser type, environment settings, or test data.
    4. Run Tests: Once TestNG.xml is configured, run your tests using TestNG. You can run tests from the command line, IDE (Integrated Development Environment) like IntelliJ IDEA or Eclipse, or through build tools like Maven.
    5. View Test Results: After test execution, view the test results generated by TestNG. You'll see detailed reports indicating the status of each test case, including pass/fail status, execution time, and any errors or exceptions encountered.

    How to use TestNG

    The hierarchy of an XML file is quite straightforward. It goes something like this- first < suite > tag, second < test > tag and lastly, < classes > tag. As mentioned above, you can give any name to the suite and test tag, but you have to be careful while naming classes since it is a combination of the Package name and Test name. Since suite is the topmost hierarchy,

    this is where multiple test classes can be placed. For example, we have three test classes, one for opening Google, another for searching on Google, and one to open Gmail. All these three classes can be defined under the same test tag for execution. The next step is to run the project using the XML file. Right-click on the testng.xml file and navigate to “Run As >> TestNG Suite.”

    You can see for yourself that the test classes mentioned in the XML ran successfully, and with it, you can now create your own test suite and run multiple tests all in one go and subsequently get the results. In our upcoming posts, we will learn about TestNG annotations along with the examples. Stay tuned and Happy TestNG! 😉

    Discover More About QA Services


    Delve deeper into the world of quality assurance (QA) services tailored to your industry needs. Have questions? We're here to listen and provide expert insights

    Schedule Meeting

    Written by Nishil Patel

    CEO & Founder

    Nishil is a successful serial entrepreneur. He has more than a decade of experience in the software industry. He advocates for a culture of excellence in every software product.


    What is the purpose of the TestNG XML file?

    The TestNG XML file is used to configure and control the execution of tests in TestNG, a testing framework for Java. It allows users to define test suites, specify which test classes and methods to run, set test parameters, configure test groups, and more. Essentially, it serves as a blueprint for organizing and executing tests in a structured manner.

    What is XML file in Selenium?

    In Selenium, an XML file is used to configure and control test execution settings, similar to the TestNG XML file. It allows users to define test suites, specify test classes and methods, set test parameters, and configure other testing options. XML files in Selenium are commonly used in conjunction with testing frameworks like TestNG or JUnit to manage and execute automated tests.

    What is TestNG and what is it used for?

    TestNG is a testing framework for Java that is widely used for automated testing of software applications. It is designed to simplify and streamline the testing process by providing features such as test annotation support, test parameterization, parallel execution, reporting, and more. TestNG is used for writing and executing automated tests, including unit tests, integration tests, and end-to-end tests, to ensure the quality and reliability of software applications.

    Latest Blogs

    View all blogs