Test NG Cheat Sheet
Test NG Cheat Sheet
TestClasses;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@BeforeMethod
public void openBrowser()
{
System.out.println("Browser is opened and URL
is opened");
}
}
Verify Login Functionality
package com.sauceDemo.TestClasses;
import java.time.Duration;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.sauceDemo.POMClasses.LoginPageClass;
public class TC01VerifyLoginFunctioanlity
{
WebDriver driver;
@BeforeMethod
public void setUpMethod()
{
System.setProperty("webdriver.chrome.driver",
"D:\\Back-up Data\\Desktop-Backup\\Pavan Velo\\Automation
Batch Material\\Downloads\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(20));
driver.manage().window().maximize();
driver.get("https://www.saucedemo.com/");
LoginPageClass login = new LoginPageClass(driver);
login.sendUsername();
login.sendPassword();
login.clickLoginButton();
}
@Test
public void verityLogin()
{
String actalTitle = "Swag Labs";
String expectedTitle = driver.getTitle();
if(expectedTitle.equals(actalTitle))
{
System.out.println("Login test is passed");
}
else
{
System.out.println("Login test is failed");
}
}
@AfterMethod
public void tearDown()
{
driver.close();
}
}
@BeforeSuite
public void beforeSuiteMethod()
{
System.out.println("before suite");
}
@BeforeTest
public void beforeTestMethod()
{
System.out.println("before test");
}
@BeforeClass
public void beforeClassMethod()
{
System.out.println("before class");
}
@BeforeMethod
public void beforeMethod()
{
System.out.println("before method");
}
@Test
public void testMethod()
{
System.out.println("In a test case");
}
@Test
public void testMethod1()
{
System.out.println("In a test case");
}
@AfterMethod
public void afterMethod()
{
System.out.println("after method");
}
@AfterClass
public void afterClassMethod()
{
System.out.println("after class");
}
@AfterTest
public void afterTestMethod()
{
System.out.println("after test");
}
@AfterSuite
public void afterSuiteMethod()
{
System.out.println("after suite");
}
package testGPackage1Demo;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.asserts.Assertion;
@Test
@Test
Assert.assertTrue(true);
}
Program1
package testGPackage1Demo;
import org.testng.annotations.Test;
@Test(priority=1)
public void methodC()
{
System.out.println("methodC");
}
@Test(enabled = false)
public void methodD()
{
System.out.println("methodD");
}
@Test
public void methodE()
{
System.out.println("methodE");
}
}
Program2
package testGPackage1Demo;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.asserts.Assertion;
@Test(dependsOnMethods={"methodA"})
public void methodB()
{
System.out.println("methodB");
}
@Test(priority=0)
public void methodC()
{
System.out.println("methodC");
}
@Test
public void methodD()
{
System.out.println("methodD");
}
@Test
public void methodE()
{
System.out.println("methodE");
}
}
timeOut keyword
package testGPackage1Demo;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test
public void cMethod()
{
System.out.println("methodC");
}
@Test
public void dMethod()
{
System.out.println("methodD");
}
@Test
public void eMethod()
{
System.out.println("methodE");
}
}
TestNG-Suite
BaseClass-
package com.sauceDemo.TestClasses;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Parameters;
import com.sauceDemo.POMClasses.LoginPageClass;
@Parameters("browserName")
@BeforeMethod
public void setUp(String browserName)
{
if(browserName.equals("chrome"))
{
System.setProperty("webdriver.chrome.driver",
"D:\\Back-up Data\\Desktop-
Backup\\Pavan Velo\\Automation Batch
Material\\Downloads\\chromedriver_win32\\chromedriver
.exe");
System.setProperty("webdriver.gecko.driver",
"D:\\Back-up Data\\Desktop-
Backup\\Pavan Velo\\Automation Batch
Material\\Downloads\\chromedriver_win32\\geckodriver.
exe");
}
driver.manage().timeouts().implicitlyWait(30,Time
Unit.SECONDS);
driver.manage().window().maximize();
driver.get("https://www.saucedemo.com/");
@AfterMethod
public void tearDown()
{
driver.quit();
}
}
TC-01
package com.sauceDemo.TestClasses;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.sauceDemo.POMClasses.LoginPageClass;
TC02-
package com.sauceDemo.TestClasses;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import com.sauceDemo.POMClasses.HomePageClass;
import com.sauceDemo.POMClasses.LoginPageClass;
// System.setProperty("webdriver.chrome.driver",
// "D:\\Back-up Data\\Desktop-
Backup\\Pavan Velo\\Automation Batch
Material\\Downloads\\chromedriver_win32\\chromedriver.e
xe");
//
// WebDriver driver = new ChromeDriver();
//
driver.manage().timeouts().implicitlyWait(30,TimeUnit.S
ECONDS);
// driver.manage().window().maximize();
// driver.get("https://www.saucedemo.com/");
@Test
public void verifyLogout()
{
home = new HomePageClass(driver);
home.clickSettingButton();
home.clickLogoutButton();
String actualTitle = "Swag Labs";
String expectedTItle = driver.getTitle();
if(actualTitle.equals(expectedTItle))
{
System.out.println("logout test is
passed");
}
else
{System.out.println("logout test is failed");
}
}
}
TC03-
package com.sauceDemo.TestClasses;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import com.sauceDemo.POMClasses.HomePageClass;
import com.sauceDemo.POMClasses.LoginPageClass;
HomePageClass home;
// System.setProperty("webdriver.chrome.driver",
// "D:\\Back-up Data\\Desktop-
Backup\\Pavan Velo\\Automation Batch
Material\\Downloads\\chromedriver_win32\\chromedriver.e
xe");
//
// WebDriver driver = new ChromeDriver();
//
driver.manage().timeouts().implicitlyWait(30,TimeUnit.S
ECONDS);
// driver.manage().window().maximize();
// driver.get("https://www.saucedemo.com/");
@Test
public void verifyAddtoCart()
{
home = new HomePageClass(driver);
home.clickAddtoCart();
#Set level
log4j.rootCategory=debug, console, file
PropertyConfigurator.configure("log4j.properties");
7. And after adding above code in base class use “info” method of Logger
class as followsEx.
log.info(“username is entered”);
Use this info method whenever to each and every step of your program
script. And save the class file and run it.
10.With the help of this logs developers/testers can easily track the
application activity.
11.Use As a tester we need to send this file to developers as proof of
submission for the bug which we locked if some functionality fails
12. package com.sauceDemo.POMClasses;
13.
14. import java.util.List;
15.
16. import org.openqa.selenium.WebDriver;
17. import org.openqa.selenium.WebElement;
18. import org.openqa.selenium.support.FindBy;
19. import org.openqa.selenium.support.PageFactory;
20.
21. public class HomePageClass
22. {
23. private WebDriver driver;
24.
25.
26. @FindBy(xpath="//button[@id='react-burger-menu-btn']")
27. private WebElement settingButton;
28.
29. @FindBy(xpath="//a[@id='logout_sidebar_link']")
30. private WebElement logOutButton;
31.
32. //add to cart webelements
33. @FindBy(xpath="//div//button")
34. private List<WebElement> addToCart;
35.
36. public HomePageClass(WebDriver driver)
37. {
38. this.driver = driver;
39. PageFactory.initElements(driver, this);
40. }
41.
42. public void clickSettingButton()
43. {
44. settingButton.click();
45. }
46.
47. public void clickLogoutButton()
48. {
49. logOutButton.click();
50. }
51.
52. public void clickAddtoCart()
53. {
54. for(int i=2; i<8; i++)
55. {
56. addToCart.get(i).click();
57. }
58. }
59.
60. }
61. package com.sauceDemo.POMClasses;
62.
63. import java.util.List;
64.
65. import org.openqa.selenium.WebDriver;
66. import org.openqa.selenium.WebElement;
67. import org.openqa.selenium.interactions.Actions;
68. import org.openqa.selenium.support.FindBy;
69. import org.openqa.selenium.support.PageFactory;
70.
71. public class LoginPageClass
72. {
73. // 1. WebDriver driver global initialize
74. private WebDriver driver;
75. Actions act;
76.
77.
78. //2. Will find the webelement
79.
80. @FindBy(xpath="//input[@id='user-name']")
81. private WebElement username;
82.
83. @FindBy(xpath="//input[@id='password']")
84. private WebElement password;
85.
86. @FindBy(xpath="//input[@id='login-button']")
87. private WebElement loginButton;
88.
89.
90. //3.Create constructor
91. public LoginPageClass(WebDriver driver)
92. {
93. //4. Assign local var to global var
94. this.driver = driver;
95. //5. calling the method of pagefactory
96. PageFactory.initElements(driver, this);
97.
98. // act = new Actions(driver);
99. }
100.
101. // 6. Create methods to do the actions on elements
102.
103. public void sendUsername()
104. {
105. username.sendKeys("standard_user");
106. }
107.
108. public void sendPassword()
109. {
110. password.sendKeys("secret_sauce");
111. }
112.
113. public void clickLoginButton()
114. {
115. loginButton.click();
116. // act.click(loginButton).perform(); //mouse action method
117.
118. }
119. }
120. package com.sauceDemo.TestClasses;
121.
122. import java.util.concurrent.TimeUnit;
123.
124. import org.apache.log4j.Logger;
125. import org.apache.log4j.PropertyConfigurator;
126. import org.openqa.selenium.WebDriver;
127. import org.openqa.selenium.chrome.ChromeDriver;
128. import org.openqa.selenium.firefox.FirefoxDriver;
129. import org.testng.annotations.AfterMethod;
130. import org.testng.annotations.BeforeMethod;
131. import org.testng.annotations.Parameters;
132.
133. import com.sauceDemo.POMClasses.LoginPageClass;
134.
135. public class BaseClass1
136. {
137. WebDriver driver;
138. LoginPageClass login;
139.
140. Logger log;
141.
142. @Parameters("browserName")
143. @BeforeMethod
144. public void setUp(String browserName)
145. {
146. if(browserName.equals("chrome"))
147. {
148. System.setProperty("webdriver.chrome.driver",
149. "D:\\Back-up Data\\Desktop-
Backup\\Pavan Velo\\Automation Batch
Material\\Downloads\\chromedriver_win32\\chromedriver.exe");
150.
151. driver = new ChromeDriver();
152. }
153. else if(browserName.equals("firefox"))
154. {
155. System.setProperty("webdriver.gecko.driver",
156. "D:\\Back-up Data\\Desktop-
Backup\\Pavan Velo\\Automation Batch
Material\\Downloads\\chromedriver_win32\\geckodriver.exe");
157.
158. driver = new FirefoxDriver();
159. }
160. else
161. {
162. // System.setProperty("webdriver.chrome.driver",
163. // "D:\\Back-up Data\\Desktop-Backup\\Pavan
Velo\\Automation Batch
Material\\Downloads\\chromedriver_win32\\geckodriver.exe");
164.
165. // driver = new FirefoxDriver();
166.
167. }
168.
169. log = Logger.getLogger("MPP");
170. PropertyConfigurator.configure("log4j.properties");
171.
172. driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
173. driver.manage().window().maximize();
174. driver.get("https://www.saucedemo.com/");
175. log.info("URl is opened");
176.
177.
178. login = new LoginPageClass(driver);
179. login.sendUsername();
180. log.info("username entered");
181. login.sendPassword();
182. log.info("password entered");
183. login.clickLoginButton();
184. log.info("clicked on login button");
185.
186. }
187.
188. @AfterMethod
189. public void tearDown()
190. {
191. driver.quit();
192. }
193.
194. }
195. package com.sauceDemo.TestClasses;
196.
197. import java.time.Duration;
198. import java.util.concurrent.TimeUnit;
199.
200. import org.openqa.selenium.WebDriver;
201. import org.openqa.selenium.chrome.ChromeDriver;
202. import org.testng.Assert;
203. import org.testng.Reporter;
204. import org.testng.annotations.AfterMethod;
205. import org.testng.annotations.BeforeMethod;
206. import org.testng.annotations.Test;
207.
208. import com.sauceDemo.POMClasses.LoginPageClass;
209.
210. public class TC01VerifyLoginFunctioanlity extends BaseClass1
211. {
212.
213.
214.
215. @Test
216. public void verifyLogin()
217. {
218. String actalTitle = "Swag Labs";
219. String expectedTitle = "Swag Labs";
220.
221. Assert.assertEquals(actalTitle, expectedTitle);
222. Reporter.log("login test case is passed");
223.
224. //log
225. log.info("Login test executed");
226.
227. }
228. }
229. package com.sauceDemo.TestClasses;
230.
231. import java.time.Duration;
232. import java.util.concurrent.TimeUnit;
233.
234. import org.openqa.selenium.WebDriver;
235. import org.openqa.selenium.chrome.ChromeDriver;
236. import org.testng.Assert;
237. import org.testng.Reporter;
238. import org.testng.annotations.Test;
239.
240. import com.sauceDemo.POMClasses.HomePageClass;
241. import com.sauceDemo.POMClasses.LoginPageClass;
242.
243. public class TC02VerifyLogoutFunctionality extends BaseClass1
244. {
245.
246. HomePageClass home;
247.
248. // System.setProperty("webdriver.chrome.driver",
249. // "D:\\Back-up Data\\Desktop-Backup\\Pavan
Velo\\Automation Batch
Material\\Downloads\\chromedriver_win32\\chromedriver.exe");
250. //
251. // WebDriver driver = new ChromeDriver();
252. // driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
253. // driver.manage().window().maximize();
254. // driver.get("https://www.saucedemo.com/");
255.
256. @Test
257. public void verifyLogout()
258. {
259.
260. home = new HomePageClass(driver);
261. home.clickSettingButton();
262. home.clickLogoutButton();
263.
264. // String actualTitle = "Swag Labs";
265. // String expectedTItle = driver.getTitle();
266. //
267. String actalTitle = "Swag Labs";
268. String expectedTitle = "Swag Labs";
269.
270. Assert.assertEquals(actalTitle, expectedTitle);
271. Reporter.log("log out test case is passed");
272.
273. log.info("Logout test executed");
274. }
275.
276.
277.
278.
279. }
280. package com.sauceDemo.TestClasses;
281.
282. import java.time.Duration;
283. import java.util.concurrent.TimeUnit;
284.
285. import org.openqa.selenium.WebDriver;
286. import org.openqa.selenium.chrome.ChromeDriver;
287. import org.testng.Assert;
288. import org.testng.Reporter;
289. import org.testng.annotations.Test;
290.
291. import com.sauceDemo.POMClasses.HomePageClass;
292. import com.sauceDemo.POMClasses.LoginPageClass;
293.
294. public class TC03VerifyAddtoCartFunctionality extends BaseClass1
295. {
296.
297. HomePageClass home;
298.
299. // System.setProperty("webdriver.chrome.driver",
300. // "D:\\Back-up Data\\Desktop-Backup\\Pavan
Velo\\Automation Batch
Material\\Downloads\\chromedriver_win32\\chromedriver.exe");
301. //
302. // WebDriver driver = new ChromeDriver();
303. // driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
304. // driver.manage().window().maximize();
305. // driver.get("https://www.saucedemo.com/");
306.
307. @Test
308. public void verifyAddtoCart()
309. {
310. home = new HomePageClass(driver);
311. home.clickAddtoCart();
312.
313. Assert.assertTrue(false);
314.
315. Reporter.log("products are added to cart");
316.
317. log.info("add to cart test executed");
318.
319. }
320.
321. <project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema
-instance"
xsi:schemaLocation="http://maven.apache.org
/POM/4.0.0
https://maven.apache.org/xsd/maven-
4.0.0.xsd">
322. <modelVersion>4.0.0</modelVersion>
323. <groupId>MPP</groupId>
324. <artifactId>MPP</artifactId>
325. <version>0.0.1-SNAPSHOT</version>
326. <dependencies>
327. <!--
https://mvnrepository.com/artifact/org.sele
niumhq.selenium/selenium-java -->
328. <dependency>
329.
<groupId>org.seleniumhq.selenium</groupId>
330. <artifactId>selenium-
java</artifactId>
331. <version>3.14.0</version>
332. </dependency>
333. <!--
https://mvnrepository.com/artifact/org.test
ng/testng -->
334. <dependency>
335. <groupId>org.testng</groupId>
336. <artifactId>testng</artifactId>
337. <version>6.14.3</version>
338. <scope>test</scope>
339. </dependency>
340. <!--
https://mvnrepository.com/artifact/log4j/lo
g4j -->
341. <dependency>
342. <groupId>log4j</groupId>
343. <artifactId>log4j</artifactId>
344. <version>1.2.14</version>
345. </dependency>
346.
347. </dependencies>
348. </project>
349. <?xml version="1.0" encoding="UTF-8"?>
350. <!DOCTYPE suite SYSTEM
"https://testng.org/testng-1.0.dtd">
351. <suite name="Suite">
352. <test thread-count="3"
name="ChromeTest">
353. <parameter name ="browserName" value
="chrome"> </parameter>
354. <classes>
355. <class
name="com.sauceDemo.TestClasses.TC03VerifyA
ddtoCartFunctionality"/>
356. <class
name="com.sauceDemo.TestClasses.TC01VerifyL
oginFunctioanlity"/>
357. <class
name="com.sauceDemo.TestClasses.TC02VerifyL
ogoutFunctionality"/>
358. </classes>
359. </test> <!-- Test -->
360. </suite> <!-- Suite -->
361.
362.