Groups in TestNG:-
It is used to logically subdivide the test case method, based on its usability. to create a group, tesng provides "groups" attribute, and "beforegroups" and "aftergroups" annotation will be called for each grouping method.
Example 1st:-
package scs;
import org.testng.annotations.*;
public class TestNGExampleNew {
@BeforeGroups("car")
public void bg1()
{
System.out.println("Car1");
}
@AfterGroups("car")
public void bg2()
{
System.out.println("Car2");
}
@Test(groups={"car"})
public void car1()
{
System.out.println("Car3");
}
@Test(groups={"car"})
public void car2()
{
System.out.println("Car4");
}
@Test(groups={"scooter"})
public void scooter1()
{
System.out.println("Scooter1");
}
@Test(groups={"scooter"})
public void scooter2()
{
System.out.println("Scooter2");
}
@Test(groups={"scooter","car"})
public void car_scooter()
{
System.out.println("Car, Scooter");
}
}
create testng.xml file and execute them<suite name="Suite">
<test name="Practice Grouping">
<groups>
<run>
<include name="Car" />
</run>
</groups>
<classes>
<class name="packagename.Classname" />
</classes>
</test>
</suite>
To run multiple groups
<suite name="Suite">
<test name="Practice Grouping">
<groups>
<define name="All">
<include name="Car"/>
<include name="Scooter"/>
</define>
<run>
<include name="All"/>
</run>
</groups>
<classes>
<class name="package.Grouping" />
</classes>
</test>
</suite>
Example of Groups
package scs;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeGroups;
public class NewTest {
@Test(groups={"A"})
public void testcase1() {
System.out.print("TEST CASE CODE 1");
}
@Test(groups={"A"})
public void testCase2() {
System.out.print("TEST CASE CODE 2");
}
@Test(groups={"B"})
public void testCase3() {
System.out.print("TEST CASE CODE 3");
}
@BeforeTest
public void beforeTest() {
System.out.print("BEFORE TEST CASE CODE");
}
@AfterTest
public void afterTest() {
System.out.print("AFTER TEST CASE CODE");
}
@BeforeGroups
public void beforeGroup() {
System.out.print("BEFORE GROUP CODE");
}
@AfterGroups
public void afterGroup() {
System.out.print("AFTER GROUP CODE");
}
}
testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite">
<test name="Practice Grouping">
<groups>
<run>
<include name="B" />
</run>
</groups>
<classes>
<class name="scs.NewTest" />
</classes>
</test>
</suite>
Another Example:-
package scs;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class EroomRentTestCase {
@BeforeTest
public void fun()
{
System.out.println("Before Test");
}
@BeforeGroups("guest")
public void beforeGuestGroup()
{
System.out.println("Before Guest Group");
}
@BeforeGroups("owner")
public void beforeOwnerGroup()
{
System.out.println("Before Owner Group");
}
@Test(groups={"guest"})
public void guestTestCaseMethod()
{
System.out.println("Guest Modules");
}
@Test(groups={"owner"})
public void OwnerTestCaseMethod()
{
System.out.println("Owner Modules");
}
@Test(groups={"guest","owner"})
public void TenantTestCaseMethod()
{
System.out.println("Tenant Modules");
}
@AfterGroups("guest")
public void AfterGuestGroup()
{
System.out.println("After Guest Group");
}
@AfterGroups("owner")
public void afterOwnerGroup()
{
System.out.println("After Owner Group");
}
}
create XML file to execute a single group:-
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite">
<test name="Practice Grouping">
<groups>
<run>
<include name="guest" />
</run>
</groups>
<classes>
<class name="scs.EroomRentTestCase" />
</classes>
</test>
</suite>
Create XML file to execute Multiple Group:-
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite">
<test name="Practice Grouping">
<groups>
<define name="All">
<include name="guest"/>
<include name="owner"/>
</define>
<run>
<include name="All"/>
</run>
</groups>
<classes>
<class name="scs.EroomRentTestCase" />
</classes>
</test>
</suite>
POST Answer of Questions and ASK to Doubt