Oct 10, 2016
TestNG framework and its benefits over JUnit framework.

TestNG removes most of the limitations of the older framework and gives the developer the facility to write more powerful and flexible tests with help of easy grouping, annotations, parameterizing and sequencing.
Benefits of TestNG: There are a large number of advantages but from Selenium perspective, the major advantages of TestNG are:
1. It gives the facility to produce HTML Reports of implementation.
2. Annotations have made testers’ life easier.
3. Test cases can be Prioritized and Grouped more easily.
4. It makes Parallel testing easier.
5. Logs can be generated.
6. It makes Data Parameterization possible.
TestNG Framework Features: TestNG contains many powerful features and it is quite easy to use. Let’s see what all new features are supported in the new testing framework:
# There is full support for parameters.
# It supports the testing of dependent methods.
# Test configuration is quite flexible.
# It also supports a powerful implementation model.
# TestNG embeds BeanShell for advanced flexibility.
# TestNG has a more clear way of supervising parameterized tests with the data provider concept.
# For the same test class TestNG supports multiple occurrences.
# Extendibility of using different plug-ins and Tools like Maven, Eclipse, IDEA etc.
# Default JDK functions for logging and runtime without any dependency.
# Supported different Annotations like @AfterSuite, @BeforeSuite, @AfterClass, @BeforeClass, @AfterTest, @BeforeTest, @AfterGroups, @BeforeGroups, @AfterMethod, @BeforeMethod, @Factory, @DataProvider, @Parameters, @Test, @Listeners.
Advantages of TestNG over JUnit:
1. In TestNG, Annotations are easy to understand but not in JUnit.
2. In TestNG, there is no constraint like you have to state @AfterClass and @BeforeClass, which is present in JUnit.
3. You can specify any test method names in TestNG as the method’s name constraint is not present in TestNG like in JUnit.
4. TestNG allows you to group the test cases effortlessly which is not possible in JUnit.
5. TestNG supports the following three 3 additional teardown/ setUp levels:
@Before/AfterTest, @Before/AfterGroup and @Before/AfterSuite.
6. TestNG does not require any class Extensions.
7. TestNG permits us to define that each test case is independent of the other test case.
8.TestNG lets us implement test cases based on groups. Let’s take a scenario where we have created “Sanity” and “Regression” groups. If we want to implement the test cases under the Sanity group then it is possible in the TestNG framework.
9. Parallel implementation of Selenium test cases is possible in TestNG.