diff --git a/Engine/pom.xml b/Engine/pom.xml
index 5bb262dd..2a740dcf 100644
--- a/Engine/pom.xml
+++ b/Engine/pom.xml
@@ -15,7 +15,7 @@
../
-
+
com.ing
ingenious-testdata-csv
@@ -332,10 +332,10 @@
-
+
diff --git a/Engine/src/main/java/com/ing/engine/commands/browser/Command.java b/Engine/src/main/java/com/ing/engine/commands/browser/Command.java
index add3b97d..a5a2cdfe 100644
--- a/Engine/src/main/java/com/ing/engine/commands/browser/Command.java
+++ b/Engine/src/main/java/com/ing/engine/commands/browser/Command.java
@@ -35,6 +35,7 @@
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
+/** Kafka Imports
import org.apache.kafka.common.header.Header;
import org.apache.avro.Schema;
import org.apache.avro.generic.GenericRecord;
@@ -42,6 +43,7 @@
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
+*/
public class Command {
@@ -142,6 +144,7 @@ public class Command {
* *** Kafka Parameters ****
*/
+ /** Kafka Parameters
static public Map> kafkaHeaders = new HashMap<>();
static public Map kafkaProducerTopic = new HashMap<>();
static public Map kafkaConsumerTopic = new HashMap<>();
@@ -179,6 +182,7 @@ public class Command {
static public Map kafkaConsumerRecord = new HashMap<>();
static public Map kafkaProducer = new HashMap<>();
static public Map kafkaConsumer = new HashMap<>();
+ */
public Command(CommandControl cc) {
Commander = cc;
diff --git a/Engine/src/main/java/com/ing/engine/commands/kafka/KafkaOperations.java b/Engine/src/main/java/com/ing/engine/commands/kafka/KafkaOperations.java
index fa65ef59..b4924e8f 100644
--- a/Engine/src/main/java/com/ing/engine/commands/kafka/KafkaOperations.java
+++ b/Engine/src/main/java/com/ing/engine/commands/kafka/KafkaOperations.java
@@ -1,3 +1,5 @@
+/** Kafka Operations related commands
+
package com.ing.engine.commands.kafka;
import com.fasterxml.jackson.core.JsonParser;
@@ -1121,3 +1123,5 @@ private static boolean isCompatible(JsonNode value, Schema schema) {
}
}
}
+
+*/
\ No newline at end of file
diff --git a/Engine/src/main/java/com/ing/engine/commands/webservice/Webservice.java b/Engine/src/main/java/com/ing/engine/commands/webservice/Webservice.java
index 722c7d04..7da028b5 100644
--- a/Engine/src/main/java/com/ing/engine/commands/webservice/Webservice.java
+++ b/Engine/src/main/java/com/ing/engine/commands/webservice/Webservice.java
@@ -92,7 +92,13 @@ public void putRestRequest() {
}
}
- @Action(object = ObjectType.WEBSERVICE, desc = "POST Rest Request ", input = InputType.YES, condition = InputType.OPTIONAL)
+ /**
+ * Previously, the postRestRequest method mandated a payload for executing POST requests.
+ * Since POST requests do not always require a payload, I have modified the implementation to make the payload optional.
+ * This change improves flexibility and ensures the framework aligns more closely with standard API practices.
+ */
+
+ @Action(object = ObjectType.WEBSERVICE, desc = "POST Rest Request ", input = InputType.OPTIONAL, condition = InputType.OPTIONAL)
public void postRestRequest() {
try {
createhttpRequest(RequestMethod.POST);
@@ -371,6 +377,37 @@ public void storeResponseBodyInDataSheet() {
}
}
+ /**
+ * This method will store response headers in datasheet
+ */
+
+ @Action(object = ObjectType.WEBSERVICE, desc = "Store Response Headers In DataSheet ", input = InputType.YES)
+ public void storeResponseHeadersInDataSheet() {
+ try {
+ String strObj = Input;
+ if (strObj.matches(".*:.*")) {
+ try {
+ System.out.println("Updating value in SubIteration " + userData.getSubIteration());
+ String sheetName = strObj.split(":", 2)[0];
+ String columnName = strObj.split(":", 2)[1];
+ userData.putData(sheetName, columnName, response.get(key).headers().toString());
+ Report.updateTestLog(Action, "Response headers stored in " + strObj, Status.DONE);
+ } catch (Exception ex) {
+ Logger.getLogger(this.getClass().getName()).log(Level.OFF, ex.getMessage(), ex);
+ Report.updateTestLog(Action, "Error Storing text in datasheet :" + ex.getMessage(), Status.DEBUG);
+ }
+ } else {
+ Report.updateTestLog(Action,
+ "Given input [" + Input + "] format is invalid. It should be [sheetName:ColumnName]",
+ Status.DEBUG);
+ }
+ } catch (Exception ex) {
+ Logger.getLogger(this.getClass().getName()).log(Level.OFF, null, ex);
+ Report.updateTestLog(Action, "Error Storing response body in datasheet :" + "\n" + ex.getMessage(),
+ Status.DEBUG);
+ }
+ }
+
@Action(object = ObjectType.WEBSERVICE, desc = "Assert XML Element Equals ", input = InputType.YES, condition = InputType.YES)
public void assertXMLelementEquals() {
@@ -980,6 +1017,13 @@ private void createhttpRequest(RequestMethod requestmethod) throws InterruptedEx
}
}
+ /**
+ * The existing HTML reporting displayed only the response payload once a request was marked as Complete.
+ * This limitation made debugging challenging, particularly in cases where critical information-such as trace IDs was present exclusively in the response headers.
+ * I have enhanced the reporting to include response headers along with the response payload
+ * Provides greater visibility and significantly aiding effective debugging
+ */
+
private void savePayload(String reqOrRes, String data) {
String payloadFileName = "";
String path = "";
@@ -999,6 +1043,11 @@ private void savePayload(String reqOrRes, String data) {
if (location.createNewFile()) {
FileWriter writer = new FileWriter(location);
writer.write(data);
+ // Appending headers when saving response
+ if (reqOrRes.equals("response")) {
+ writer.write("\n\n--- Response Headers ---\n");
+ writer.write(response.get(key).headers().toString());
+ }
writer.close();
}
}
diff --git a/README.md b/README.md
index 78b96782..6f78432a 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# INGenious Playwright Studio - Test Automation for Everyone
[](https://github.com/ing-bank/INGenious/actions/workflows/maven.yml)
-
+
--------------------------------------------------------------------
diff --git a/Resources/Engine/pom.xml b/Resources/Engine/pom.xml
index bc14dfc4..180847ed 100644
--- a/Resources/Engine/pom.xml
+++ b/Resources/Engine/pom.xml
@@ -155,10 +155,10 @@
-
+
@@ -189,7 +189,7 @@
-
+
com.ing
ingenious-testdata-csv