Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 13 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,25 @@

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<playwright-version>1.47.0</playwright-version>
<playwright-version>1.49.0</playwright-version>
<testng-version>7.10.2</testng-version>
<hamcrest-all-version>1.3</hamcrest-all-version>
<json-simple-version>1.1.1</json-simple-version>
<lombok-version>1.18.34</lombok-version>
<datafaker-version>2.4.0</datafaker-version>
<lombok-version>1.18.36</lombok-version>
<datafaker-version>2.4.2</datafaker-version>
<gson-version>2.11.0</gson-version>
<org-json-verion>20240303</org-json-verion>
<jackson-databind-version>2.18.0</jackson-databind-version>
<jackson-databind-version>2.18.2</jackson-databind-version>
<log4j-core-version>2.24.1</log4j-core-version>
<log4j-api-version>2.24.1</log4j-api-version>
<commons-lang3-version>3.17.0</commons-lang3-version>
<maven-compiler-plugin-version>3.13.0</maven-compiler-plugin-version>
<maven-surefire-plugin-version>3.3.1</maven-surefire-plugin-version>
<java-release-version>17</java-release-version>
<maven-enforcer-version>3.5.0</maven-enforcer-version>
<maven-enforcer-version>3.5.2</maven-enforcer-version>
<suite-xml>test-suite/testng.xml</suite-xml>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.microsoft.playwright/playwright -->
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
Expand All @@ -46,7 +46,6 @@
<artifactId>json</artifactId>
<version>${org-json-verion}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
Expand Down Expand Up @@ -78,6 +77,12 @@
<artifactId>log4j-core</artifactId>
<version>${log4j-core-version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3-version}</version>
</dependency>

</dependencies>
<build>
<pluginManagement>
Expand Down Expand Up @@ -133,4 +138,4 @@
</plugins>
</pluginManagement>
</build>
</project>
</project>
43 changes: 43 additions & 0 deletions src/test/java/io/github/mfaisalkhatri/api/logger/Logger.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package io.github.mfaisalkhatri.api.logger;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.microsoft.playwright.APIResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;


public class Logger {

private final APIResponse response;
private final org.apache.logging.log4j.Logger log;

public Logger (final APIResponse response) {
this.response = response;
this.log = LogManager.getLogger (getClass ());
}

public void logResponseDetails () {
String responseBody = this.response.text ();
this.log.info ("Logging Response Details....\n responseHeaders: {}, \nstatusCode: {},",
this.response.headers (), this.response.status ());
this.log.info ("\n Response body: {}", prettyPrintJson (responseBody));
this.log.info ("End of Logs!");
}

private String prettyPrintJson (final String text) {
if (StringUtils.isNotBlank (text) && StringUtils.isNotEmpty (text)) {
try {
final ObjectMapper objectMapper = new ObjectMapper ();
final Object jsonObject = objectMapper.readValue (text, Object.class);
return objectMapper.writerWithDefaultPrettyPrinter ()
.writeValueAsString (jsonObject);
} catch (final JsonProcessingException e) {
this.log.error ("Failed to pretty print JSON: {}", e.getMessage (), e);
}
}
return "No response body found!";

}
}

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
import java.util.HashMap;
import java.util.Map;

import com.microsoft.playwright.APIResponse;
import io.github.mfaisalkhatri.api.manager.RequestManager;
import io.github.mfaisalkhatri.api.logger.Logger;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;

Expand Down Expand Up @@ -31,4 +33,9 @@ public void tearDown() {
this.manager.disposeAPIRequestContext();
this.manager.closePlaywright();
}

protected void logResponse (final APIResponse response) {
final Logger logger = new Logger (response);
logger.logResponseDetails ();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public void createBookingTest() {
final APIResponse response = this.manager.postRequest("/booking", RequestOptions.create()
.setData(this.bookingData));

logResponse (response);
assertEquals(response.status(), 200);

final JSONObject responseObject = new JSONObject(response.text());
Expand All @@ -51,6 +52,7 @@ public void createBookingTest() {
@Test
public void getBookingTest() {
final APIResponse response = this.manager.getRequest("/booking/" + this.bookingId);
logResponse (response);
assertEquals(response.status(), 200);

final JSONObject responseObject = new JSONObject(response.text());
Expand All @@ -67,6 +69,7 @@ public void updateBookingTest() {
final APIResponse response = this.manager.putRequest("/booking/" + this.bookingId, RequestOptions.create()
.setData(updateBookingData)
.setHeader("Cookie", "token=" + this.token));
logResponse (response);
assertEquals(response.status(), 200);

final JSONObject responseObject = new JSONObject(response.text());
Expand All @@ -82,6 +85,7 @@ public void generateTokenTest() {
final Tokencreds tokenData = getToken();
final APIResponse response = this.manager.postRequest("/auth", RequestOptions.create()
.setData(tokenData));
logResponse (response);
assertEquals(response.status(), 200);

final JSONObject responseObject = new JSONObject(response.text());
Expand All @@ -99,6 +103,7 @@ public void updatePartialBookingTest() {
.setData(partialBookingData)
.setHeader("Cookie", "token=" + this.token));

logResponse (response);
assertEquals(response.status(), 200);
final JSONObject responseObject = new JSONObject(response.text());

Expand All @@ -111,12 +116,14 @@ public void deleteBookingTest() {
final APIResponse response = this.manager.deleteRequest("/booking/" + this.bookingId, RequestOptions.create()
.setHeader("Cookie", "token=" + this.token));

logResponse (response);
assertEquals(response.status(), 201);
}

@Test
public void testBookingDeleted() {
final APIResponse response = this.manager.getRequest("/booking/" + this.bookingId);
logResponse (response);
assertEquals(response.status(), 404);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.microsoft.playwright.APIRequestContext;
import com.microsoft.playwright.APIResponse;
import com.microsoft.playwright.Playwright;
import io.github.mfaisalkhatri.api.logger.Logger;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;

Expand Down

This file was deleted.

2 changes: 1 addition & 1 deletion test-suite/testng.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="APi Test Automation with Playwright">
<suite name="API Test Automation with Playwright">
<suite-files>
<suite-file path="testng-reqres.xml"/>
<suite-file path="testng-restfulbooker.xml"/>
Expand Down
Loading