Commit 2ca20994 authored by Rajat Ranjan Tripathy's avatar Rajat Ranjan Tripathy

My First Commit

parents
# Default ignored files
/shelf/
/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/API_POC.iml" filepath="$PROJECT_DIR$/API_POC.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="test" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>API_Framework</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>cucumber.eclipse.builder.stepdefinition</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>cucumber.eclipse.builder.gherkin</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>cucumber.eclipse.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
Request method: POST
Request URI: https://rahulshettyacademy.com/maps/api/place/add/json?key=qaclick123
Proxy: <none>
Request params: <none>
Query params: key=qaclick123
Form params: <none>
Path params: <none>
Headers: Accept=*/*
Content-Type=application/json
Cookies: <none>
Multiparts: <none>
Body:
{
"accuracy": 50,
"name": "Varshini",
"phone_number": "(+91) 983 893 3937",
"address": "abc cde center",
"website": "https://rahulshettyacademy.com",
"language": "English",
"location": {
"lat": -38.383494,
"lng": 33.427362
},
"types": [
"shoe park",
"shop"
]
}
HTTP/1.1 200 OK
Date: Fri, 04 Apr 2025 14:04:40 GMT
Server: Apache/2.4.52 (Ubuntu)
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With
Content-Length: 194
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json;charset=UTF-8
{
"status": "OK",
"place_id": "6bf1a08866e555aefd9c7aa91022e863",
"scope": "APP",
"reference": "36e9d4958226052e967b78de802beac436e9d4958226052e967b78de802beac4",
"id": "36e9d4958226052e967b78de802beac4"
}
Request method: GET
Request URI: https://rahulshettyacademy.com/maps/api/place/get/json?key=qaclick123&place_id=6bf1a08866e555aefd9c7aa91022e863
Proxy: <none>
Request params: <none>
Query params: key=qaclick123
place_id=6bf1a08866e555aefd9c7aa91022e863
Form params: <none>
Path params: <none>
Headers: Accept=*/*
Content-Type=application/json
Cookies: <none>
Multiparts: <none>
Body: <none>
HTTP/1.1 200 OK
Date: Fri, 04 Apr 2025 14:04:41 GMT
Server: Apache/2.4.52 (Ubuntu)
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With
Content-Length: 250
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json;charset=UTF-8
{
"location": {
"latitude": "-38.383494",
"longitude": "33.427362"
},
"accuracy": "50",
"name": "Varshini",
"phone_number": "(+91) 983 893 3937",
"address": "abc cde center",
"types": "shoe park,shop",
"website": "https://rahulshettyacademy.com",
"language": "English"
}
Request method: POST
Request URI: https://rahulshettyacademy.com/maps/api/place/add/json?key=qaclick123
Proxy: <none>
Request params: <none>
Query params: key=qaclick123
Form params: <none>
Path params: <none>
Headers: Accept=*/*
Content-Type=application/json
Cookies: <none>
Multiparts: <none>
Body:
{
"accuracy": 50,
"name": "Genelia",
"phone_number": "(+91) 983 893 3937",
"address": "hello hi center",
"website": "https://rahulshettyacademy.com",
"language": "Tamil",
"location": {
"lat": -38.383494,
"lng": 33.427362
},
"types": [
"shoe park",
"shop"
]
}
HTTP/1.1 200 OK
Date: Fri, 04 Apr 2025 14:04:43 GMT
Server: Apache/2.4.52 (Ubuntu)
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With
Content-Length: 194
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json;charset=UTF-8
{
"status": "OK",
"place_id": "e04928a70d3c60de7793c28bfa5558b2",
"scope": "APP",
"reference": "ae1de5a42b444c4daffac2b2c0e90bd6ae1de5a42b444c4daffac2b2c0e90bd6",
"id": "ae1de5a42b444c4daffac2b2c0e90bd6"
}
Request method: GET
Request URI: https://rahulshettyacademy.com/maps/api/place/get/json?key=qaclick123&place_id=e04928a70d3c60de7793c28bfa5558b2
Proxy: <none>
Request params: <none>
Query params: key=qaclick123
place_id=e04928a70d3c60de7793c28bfa5558b2
Form params: <none>
Path params: <none>
Headers: Accept=*/*
Content-Type=application/json
Cookies: <none>
Multiparts: <none>
Body: <none>
HTTP/1.1 200 OK
Date: Fri, 04 Apr 2025 14:04:43 GMT
Server: Apache/2.4.52 (Ubuntu)
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With
Content-Length: 248
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json;charset=UTF-8
{
"location": {
"latitude": "-38.383494",
"longitude": "33.427362"
},
"accuracy": "50",
"name": "Genelia",
"phone_number": "(+91) 983 893 3937",
"address": "hello hi center",
"types": "shoe park,shop",
"website": "https://rahulshettyacademy.com",
"language": "Tamil"
}
Request method: POST
Request URI: https://rahulshettyacademy.com/maps/api/place/delete/json?key=qaclick123
Proxy: <none>
Request params: <none>
Query params: key=qaclick123
Form params: <none>
Path params: <none>
Headers: Accept=*/*
Content-Type=application/json
Cookies: <none>
Multiparts: <none>
Body:
{
"place_id": "e04928a70d3c60de7793c28bfa5558b2"
}
HTTP/1.1 200 OK
Date: Fri, 04 Apr 2025 14:04:45 GMT
Server: Apache/2.4.52 (Ubuntu)
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With
Content-Length: 15
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json;charset=UTF-8
{
"status": "OK"
}
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>bdd</groupId>
<artifactId>APIFramework</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- ✅ Rest Assured -->
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>5.4.0</version>
</dependency>
<!-- ✅ Cucumber Dependencies -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>7.17.0</version> <!-- Updated -->
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>7.17.0</version> <!-- Updated -->
<scope>test</scope>
</dependency>
<!-- ✅ Log4j Dependencies (Latest) -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.22.1</version> <!-- Latest stable -->
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.22.1</version> <!-- Latest stable -->
</dependency>
<!-- ✅ Jackson Databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.0</version>
</dependency>
<!-- ✅ Groovy (For Rest-Assured) -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>3.0.21</version>
</dependency>
<!-- ✅ Extent Reports -->
<dependency>
<groupId>tech.grasshopper</groupId>
<artifactId>extentreports-cucumber7-adapter</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>5.1.2</version>
</dependency>
</dependencies>
</project>
package com.pojoclass;
import java.util.List;
public class AddPlace {
private int accuracy;
private String name;
private String phone_number;
private String address;
private String website;
private String language;
private Location location;
private List<String> types;
public int getAccuracy() {
return accuracy;
}
public void setAccuracy(int accuracy) {
this.accuracy = accuracy;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone_number() {
return phone_number;
}
public void setPhone_number(String phone_number) {
this.phone_number = phone_number;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getWebsite() {
return website;
}
public void setWebsite(String website) {
this.website = website;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public Location getLocation() {
return location;
}
public void setLocation(Location location) {
this.location = location;
}
public List<String> getTypes() {
return types;
}
public void setTypes(List<String> types) {
this.types = types;
}
}
\ No newline at end of file
package com.pojoclass;
public class Location {
private double lat;
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
public double getLng() {
return lng;
}
public void setLng(double lng) {
this.lng = lng;
}
private double lng;
}
Feature: Validating Place API's
@AddPlace
Scenario Outline: Verify if Place is being Succesfully added using AddPlaceAPI
Given Add Place Payload with "<name>" "<language>" "<address>"
When user calls "AddPlaceAPI" with "POST" http request
Then the API call got success with status code 200
And "status" in response body is "OK"
And "scope" in response body is "APP"
And verify place_Id created maps to "<name>" using "getPlaceAPI"
Examples:
|name | language |address |
|Varshini| English |abc cde center |
|Genelia | Tamil |hello hi center |
@DeletePlace
Scenario: Verify if Delete Place functionality is working
Given DeletePlace Payload
When user calls "deletePlaceAPI" with "POST" http request
Then the API call got success with status code 200
And "status" in response body is "OK"
\ No newline at end of file
package com.resource;
public enum APIResources {
AddPlaceAPI("/maps/api/place/add/json"), getPlaceAPI("/maps/api/place/get/json"),
deletePlaceAPI("/maps/api/place/delete/json");
private String resource;
APIResources(String resource) {
this.resource = resource;
}
public String getResource() {
return resource;
}
}
package com.resource;
public class Payload {
private String fname;
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getLname() {
return lname;
}
public void setLname(String lname) {
this.lname = lname;
}
private String lname;
}
package com.resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Map.Entry;
public class Practice {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("Apple", 3);
map.put("Banana", 2);
map.put("Cherry", 5);
// Access by key
System.out.println(map.get("Banana")); // Output: 2
// Check if key exists
System.out.println(map.containsKey("Apple")); // Output: true
// Remove a key-value pair
// Iterate over entries
for (Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
ArrayList<Integer> al = new ArrayList<>();
LinkedList<Integer> ll = new LinkedList<>();
HashSet<Integer> hs = new HashSet<>();
}
}
package com.resource;
import java.util.ArrayList;
import java.util.List;
import com.pojoclass.AddPlace;
import com.pojoclass.Location;
public class TestBuilder {
public AddPlace addPlacePayLoad(String name, String language, String address) {
AddPlace p = new AddPlace();
p.setAccuracy(50);
p.setAddress(address);
p.setLanguage(language);
p.setPhone_number("(+91) 983 893 3937");
p.setWebsite("https://rahulshettyacademy.com");
p.setName(name);
List<String> myList = new ArrayList<String>();
myList.add("shoe park");
myList.add("shop");
p.setTypes(myList);
Location l = new Location();
l.setLat(-38.383494);
l.setLng(33.427362);
p.setLocation(l);
return p;
}
public String deletePlacePayload(String placeId) {
return "{\r\n \"place_id\":\"" + placeId + "\"\r\n}";
}
}
package com.resource;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Properties;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.filter.log.RequestLoggingFilter;
import io.restassured.filter.log.ResponseLoggingFilter;
import io.restassured.http.ContentType;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import io.restassured.specification.RequestSpecification;
public class Utilis {
public static RequestSpecification req;
public RequestSpecification requestSpecification() throws IOException {
if (req == null) {
PrintStream log = new PrintStream(new FileOutputStream("logging.txt"));
req = new RequestSpecBuilder().setBaseUri(getGlobalValue("baseUrl")).addQueryParam("key", "qaclick123")
.addFilter(RequestLoggingFilter.logRequestTo(log))
.addFilter(ResponseLoggingFilter.logResponseTo(log)).setContentType(ContentType.JSON).build();
return req;
}
return req;
}
public static String getGlobalValue(String key) throws IOException {
Properties prop = new Properties();
FileInputStream fis = new FileInputStream(
"C:\\Users\\rrtripathy\\Downloads\\API_POC\\API_Framework\\src\\test\\resources\\global.properties");
prop.load(fis);
return prop.getProperty(key);
}
public String getJsonPath(Response response, String key) {
String resp = response.asString();
JsonPath js = new JsonPath(resp);
return js.get(key).toString();
}
}
package com.runner;
import org.junit.runner.RunWith;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
@RunWith(Cucumber.class)
@CucumberOptions(features = "C:\\Users\\rrtripathy\\Downloads\\API_POC\\API_Framework\\src\\test\\java\\com\\feature\\placeValidations.feature", glue = {
"com.stepDef" }, plugin = { "com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:" })
public class TestRunner {
}
package com.stepDef;
import java.io.IOException;
import io.cucumber.java.Before;
public class Hooks {
@Before("@DeletePlace")
public void beforeScenario() throws IOException {
StepDef sd = new StepDef();
if (StepDef.place_id == null) {
sd.add_Place_Payload_with("frankysv", "Latin", "Europe");
sd.user_calls_with_http_request("addPlaceAPI", "POST");
sd.verify_place_Id_created_maps_to_using("frankysv", "getPlaceAPI");
}
}
}
package com.stepDef;
import static io.restassured.RestAssured.given;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import com.resource.APIResources;
import com.resource.TestBuilder;
import com.resource.Utilis;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import io.restassured.builder.ResponseSpecBuilder;
import io.restassured.http.ContentType;
import io.restassured.response.Response;
import io.restassured.specification.RequestSpecification;
import io.restassured.specification.ResponseSpecification;
public class StepDef extends Utilis {
RequestSpecification res;
ResponseSpecification resspec;
Response response;
TestBuilder data = new TestBuilder();
static String place_id;
@Given("Add Place Payload with {string} {string} {string}")
public void add_Place_Payload_with(String name, String language, String address) throws IOException {
// Write code here that turns the phrase above into concrete actions
res = given().spec(requestSpecification()).body(data.addPlacePayLoad(name, language, address));
}
@When("user calls {string} with {string} http request")
public void user_calls_with_http_request(String resource, String method) {
// Write code here that turns the phrase above into concrete actions
//constructor will be called with value of resource which you pass
APIResources resourceAPI = APIResources.valueOf(resource);
System.out.println(resourceAPI.getResource());
resspec = new ResponseSpecBuilder().expectStatusCode(200).expectContentType(ContentType.JSON).build();
if (method.equalsIgnoreCase("POST"))
response = res.when().post(resourceAPI.getResource());
else if (method.equalsIgnoreCase("GET"))
response = res.when().get(resourceAPI.getResource());
}
@Then("the API call got success with status code {int}")
public void the_API_call_got_success_with_status_code(Integer int1) {
// Write code here that turns the phrase above into concrete actions
assertEquals(response.getStatusCode(), 200);
}
@Then("{string} in response body is {string}")
public void in_response_body_is(String keyValue, String Expectedvalue) {
// Write code here that turns the phrase above into concrete actions
assertEquals(getJsonPath(response, keyValue), Expectedvalue);
}
@Then("verify place_Id created maps to {string} using {string}")
public void verify_place_Id_created_maps_to_using(String expectedName, String resource) throws IOException {
// requestSpec
place_id = getJsonPath(response, "place_id");
res = given().spec(requestSpecification()).queryParam("place_id", place_id);
user_calls_with_http_request(resource, "GET");
String actualName = getJsonPath(response, "name");
assertEquals(actualName, expectedName);
}
@Given("DeletePlace Payload")
public void deleteplace_Payload() throws IOException {
// Write code here that turns the phrase above into concrete actions
res = given().spec(requestSpecification()).body(data.deletePlacePayload(place_id));
}
}
<?xml version="1.0" encoding="UTF-8"?>
<extentreports>
<configuration>
<!-- report theme -->
<!-- standard, dark -->
<theme>dark</theme>
<!-- document encoding -->
<!-- defaults to UTF-8 -->
<encoding>UTF-8</encoding>
<!-- protocol for script and stylesheets -->
<!-- defaults to https -->
<protocol>http</protocol>
<!-- title of the document -->
<documentTitle>API Report HTML</documentTitle>
<!-- report name - displayed at top-nav -->
<reportName>API Automation Suite Report</reportName>
<!-- location of charts in the test view -->
<!-- top, bottom -->
<testViewChartLocation>bottom</testViewChartLocation>
<!-- custom javascript -->
<scripts>
<![CDATA[
$(document).ready(function() {
});
]]>
</scripts>
<!-- custom styles -->
<styles>
<![CDATA[
]]>
</styles>
</configuration>
</extentreports>
\ No newline at end of file
extent.reporter.spark.start=true
extent.reporter.json.start=true
extent.reporter.pdf.start=true
extent.reporter.html.start=true
extent.reporter.excel.start=true
extent.reporter.spark.out=test-output/Spark/ExtentSpark.html
extent.reporter.json.out=test-output/Json/ExtentJson.json
extent.reporter.pdf.out=test-output/Pdf/ExtentPdf.pdf
extent.reporter.html.out=test-output/Html/ExtentHtml.html
extent.reporter.excel.out=test-output/Excel/ExtentExcel.xlsx
#test,dashboard,category,exception,author,device,log
extent.reporter.spark.vieworder=dashboard,test,category,exception,author,device,log
systeminfo.os=windows
systeminfo.version=10
\ No newline at end of file
baseUrl=https://rahulshettyacademy.com
passColor: 05a167
failColor: ff00ff
skipColor: a89132
displayFeature: true
displayScenario: true
displayDetailed: true
displayAttached: true
displayExpanded: false
dashboardConfig:
title: Grasshopper PDF Report
dataBackgroundColor: 4F0CC8
titleColor: FF0000
dateColor: 969696
timeColor: 000000
dial:
featureRanges: 60 95
scenarioRanges: 70 90
stepRanges: 75 85
badColor: f768a1
averageColor: 93ffff
goodColor: 32ecab
summaryConfig:
totalColor: FF0000
durationColor: FF0000
tagConfig:
totalColor: FF0000
featureConfig:
totalColor: FF0000
durationColor: FF0000
scenarioConfig:
totalColor: FF0000
durationColor: FF0000
detailedFeatureConfig:
featureNameColor: FF0000
startEndTimeColor: 000000
tagColor: 404040
dataHeaderColor: FFFFFF
dataBackgroundColor: 404040
totalColor: 0000FF
durationColor: FFFFFF
durationBackgroundColor: 404040
detailedScenarioConfig:
featureNameColor: 404040
scenarioNameColor: FF0000
startEndTimeColor: 000000
tagColor: 404040
dataHeaderColor: FFFFFF
dataBackgroundColor: 404040
totalColor: 0000FF
durationColor: FFFFFF
durationBackgroundColor: 404040
stepChartBarColor: 7f32a8
detailedStepHookConfig:
stepTextColor: 0000FF
stepBackgroundColor: FFFFFF
hookTextColor: 00FF00
hookBackgroundColor: FFFFFF
durationColor: FF0000
errorMsgColor: 000000
logMsgColor: 000000
#skipHooks: true
#skipScenarioHooks: false
#skipStepHooks: false
#skipScenarioBeforeHooks: false
#skipScenarioAfterHooks: false
#skipStepBeforeHooks: false
#skipStepAfterHooks: false
\ No newline at end of file
Manifest-Version: 1.0
Build-Jdk-Spec: 21
Created-By: Maven Integration for Eclipse
#Generated by Maven Integration for Eclipse
#Wed Apr 30 11:19:41 IST 2025
artifactId=APIFramework
groupId=bdd
m2e.projectLocation=C\:\\Users\\rrtripathy\\Downloads\\API_POC\\API_Framework
m2e.projectName=APIFramework
version=0.0.1-SNAPSHOT
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>bdd</groupId>
<artifactId>APIFramework</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- ✅ Rest Assured -->
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>5.4.0</version>
</dependency>
<!-- ✅ Cucumber Dependencies -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>7.17.0</version> <!-- Updated -->
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>7.17.0</version> <!-- Updated -->
<scope>test</scope>
</dependency>
<!-- ✅ Log4j Dependencies (Latest) -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.22.1</version> <!-- Latest stable -->
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.22.1</version> <!-- Latest stable -->
</dependency>
<!-- ✅ Jackson Databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.0</version>
</dependency>
<!-- ✅ Groovy (For Rest-Assured) -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>3.0.21</version>
</dependency>
<!-- ✅ Extent Reports -->
<dependency>
<groupId>tech.grasshopper</groupId>
<artifactId>extentreports-cucumber7-adapter</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>5.1.2</version>
</dependency>
</dependencies>
</project>
Feature: Validating Place API's
@AddPlace
Scenario Outline: Verify if Place is being Succesfully added using AddPlaceAPI
Given Add Place Payload with "<name>" "<language>" "<address>"
When user calls "AddPlaceAPI" with "POST" http request
Then the API call got success with status code 200
And "status" in response body is "OK"
And "scope" in response body is "APP"
And verify place_Id created maps to "<name>" using "getPlaceAPI"
Examples:
|name | language |address |
|Varshini| English |abc cde center |
|Genelia | Tamil |hello hi center |
@DeletePlace
Scenario: Verify if Delete Place functionality is working
Given DeletePlace Payload
When user calls "deletePlaceAPI" with "POST" http request
Then the API call got success with status code 200
And "status" in response body is "OK"
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<extentreports>
<configuration>
<!-- report theme -->
<!-- standard, dark -->
<theme>dark</theme>
<!-- document encoding -->
<!-- defaults to UTF-8 -->
<encoding>UTF-8</encoding>
<!-- protocol for script and stylesheets -->
<!-- defaults to https -->
<protocol>http</protocol>
<!-- title of the document -->
<documentTitle>API Report HTML</documentTitle>
<!-- report name - displayed at top-nav -->
<reportName>API Automation Suite Report</reportName>
<!-- location of charts in the test view -->
<!-- top, bottom -->
<testViewChartLocation>bottom</testViewChartLocation>
<!-- custom javascript -->
<scripts>
<![CDATA[
$(document).ready(function() {
});
]]>
</scripts>
<!-- custom styles -->
<styles>
<![CDATA[
]]>
</styles>
</configuration>
</extentreports>
\ No newline at end of file
extent.reporter.spark.start=true
extent.reporter.json.start=true
extent.reporter.pdf.start=true
extent.reporter.html.start=true
extent.reporter.excel.start=true
extent.reporter.spark.out=test-output/Spark/ExtentSpark.html
extent.reporter.json.out=test-output/Json/ExtentJson.json
extent.reporter.pdf.out=test-output/Pdf/ExtentPdf.pdf
extent.reporter.html.out=test-output/Html/ExtentHtml.html
extent.reporter.excel.out=test-output/Excel/ExtentExcel.xlsx
#test,dashboard,category,exception,author,device,log
extent.reporter.spark.vieworder=dashboard,test,category,exception,author,device,log
systeminfo.os=windows
systeminfo.version=10
\ No newline at end of file
baseUrl=https://rahulshettyacademy.com
passColor: 05a167
failColor: ff00ff
skipColor: a89132
displayFeature: true
displayScenario: true
displayDetailed: true
displayAttached: true
displayExpanded: false
dashboardConfig:
title: Grasshopper PDF Report
dataBackgroundColor: 4F0CC8
titleColor: FF0000
dateColor: 969696
timeColor: 000000
dial:
featureRanges: 60 95
scenarioRanges: 70 90
stepRanges: 75 85
badColor: f768a1
averageColor: 93ffff
goodColor: 32ecab
summaryConfig:
totalColor: FF0000
durationColor: FF0000
tagConfig:
totalColor: FF0000
featureConfig:
totalColor: FF0000
durationColor: FF0000
scenarioConfig:
totalColor: FF0000
durationColor: FF0000
detailedFeatureConfig:
featureNameColor: FF0000
startEndTimeColor: 000000
tagColor: 404040
dataHeaderColor: FFFFFF
dataBackgroundColor: 404040
totalColor: 0000FF
durationColor: FFFFFF
durationBackgroundColor: 404040
detailedScenarioConfig:
featureNameColor: 404040
scenarioNameColor: FF0000
startEndTimeColor: 000000
tagColor: 404040
dataHeaderColor: FFFFFF
dataBackgroundColor: 404040
totalColor: 0000FF
durationColor: FFFFFF
durationBackgroundColor: 404040
stepChartBarColor: 7f32a8
detailedStepHookConfig:
stepTextColor: 0000FF
stepBackgroundColor: FFFFFF
hookTextColor: 00FF00
hookBackgroundColor: FFFFFF
durationColor: FF0000
errorMsgColor: 000000
logMsgColor: 000000
#skipHooks: true
#skipScenarioHooks: false
#skipStepHooks: false
#skipScenarioBeforeHooks: false
#skipScenarioAfterHooks: false
#skipStepBeforeHooks: false
#skipStepAfterHooks: false
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8' />
<meta name='description' content='' />
<meta name='robots' content='noodp, noydir' />
<meta name='viewport' content='width=device-width, initial-scale=1' />
<meta id="timeStampFormat" name="timeStampFormat" content='MMM d, yyyy hh:mm:ss a'/>
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600' rel='stylesheet' type='text/css' />
<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
<link href='http://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@ff53917fbbdb5ef820abbbe4d199a6942dc771ff/v3html/css/extent.css' type='text/css' rel='stylesheet' />
<title></title>
<style type='text/css'>
/* json-tree */
.jstBracket,.jstComma,.jstValue{white-space:pre-wrap}.jstValue{font-size:10px;font-weight:400;font-family:"Lucida Console",Monaco,monospace}.jstProperty{color:#666;word-wrap:break-word}.jstBool{color:#2525CC}.jstNum{color:#D036D0}.jstNull{color:gray}.jstStr{color:#2DB669}.jstFold:after{content:' -';cursor:pointer}.jstExpand{white-space:normal}.jstExpand:after{content:' +';cursor:pointer}.jstFolded{white-space:normal!important}.jstHiddenBlock{display:none}
</style>
<script type="text/javascript">
/*! json-tree - v0.2.2 - 2017-09-25, MIT LICENSE */
var JSONTree=function(){var n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"},t=0,r=0;this.create=function(n,t){return r+=1,N(u(n,0,!1),{class:"jstValue"})};var e=function(t){return t.replace(/[&<>'"]/g,function(t){return n[t]})},s=function(){return r+"_"+t++},u=function(n,t,r){if(null===n)return f(r?t:0);switch(typeof n){case"boolean":return l(n,r?t:0);case"number":return i(n,r?t:0);case"string":return o(n,r?t:0);default:return n instanceof Array?a(n,t,r):c(n,t,r)}},c=function(n,t,r){var e=s(),u=Object.keys(n).map(function(r){return j(r,n[r],t+1,!0)}).join(m()),c=[g("{",r?t:0,e),N(u,{id:e}),p("}",t)].join("\n");return N(c,{})},a=function(n,t,r){var e=s(),c=n.map(function(n){return u(n,t+1,!0)}).join(m());return[g("[",r?t:0,e),N(c,{id:e}),p("]",t)].join("\n")},o=function(n,t){var r=e(JSON.stringify(n));return N(v(r,t),{class:"jstStr"})},i=function(n,t){return N(v(n,t),{class:"jstNum"})},l=function(n,t){return N(v(n,t),{class:"jstBool"})},f=function(n){return N(v("null",n),{class:"jstNull"})},j=function(n,t,r){var s=v(e(JSON.stringify(n))+": ",r),c=N(u(t,r,!1),{});return N(s+c,{class:"jstProperty"})},m=function(){return N(",\n",{class:"jstComma"})},N=function(n,t){return d("span",t,n)},d=function(n,t,r){return"<"+n+Object.keys(t).map(function(n){return" "+n+'="'+t[n]+'"'}).join("")+">"+r+"</"+n+">"},g=function(n,t,r){return N(v(n,t),{class:"jstBracket"})+N("",{class:"jstFold",onclick:"JSONTree.toggle('"+r+"')"})};this.toggle=function(n){var t=document.getElementById(n),r=t.parentNode,e=t.previousElementSibling;""===t.className?(t.className="jstHiddenBlock",r.className="jstFolded",e.className="jstExpand"):(t.className="",r.className="",e.className="jstFold")};var p=function(n,t){return N(v(n,t),{})},v=function(n,t){return Array(2*t+1).join(" ")+n};return this}();
</script>
</head>
<body class='extent standard default hide-overflow bdd-report'>
<div id='theme-selector' alt='Click to toggle theme. To enable by default, use theme configuration.' title='Click to toggle theme. To enable by default, use theme configuration.'>
<span><i class='material-icons'>desktop_windows</i></span>
</div>
<nav>
<div class="nav-wrapper">
<a href="#!" class="brand-logo black"><img src="http://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@ff53917fbbdb5ef820abbbe4d199a6942dc771ff/commons/img/logo.png"></a>
<!-- slideout menu -->
<ul id='slide-out' class='side-nav fixed hide-on-med-and-down'>
<li class='waves-effect active'><a href='#!' view='test-view' onclick="configureView(0);chartsView('test');"><i class='material-icons'>dashboard</i></a></li>
<li class='waves-effect'><a href='#!' view='category-view' onclick="configureView(1)"><i class='material-icons'>label_outline</i></a></li>
<li class='waves-effect'><a href='#!' onclick="configureView(-1);chartsView('dashboard');" view='dashboard-view'><i class='material-icons'>track_changes</i></a></li>
</ul>
<!-- report name -->
<span class='report-name'></span>
<!-- report headline -->
<span class='report-headline'></span>
<!-- nav-right -->
<ul id='nav-mobile' class='right hide-on-med-and-down nav-right'>
<a href='#!'>
<span class='label blue darken-3 suite-start-time'>Apr 4, 2025 07:34:24 pm</span>
</a>
</ul>
</div>
</nav> <!-- container -->
<div class='container'>
<div id='test-view' class='view'>
<section id='controls'>
<div class='controls grey lighten-4'>
<!-- test toggle -->
<div class='chip transparent'>
<a class='dropdown-button tests-toggle' data-activates='tests-toggle' data-constrainwidth='true' data-beloworigin='true' data-hover='true' href='#'>
<i class='material-icons'>warning</i> Status
</a>
<ul id='tests-toggle' class='dropdown-content'>
<li status='pass'><a href='#!'>Pass <i class='material-icons green-text'>check_circle</i></a></li>
<li class='divider'></li>
<li status='clear' clear='true'><a href='#!'>Clear Filters <i class='material-icons'>clear</i></a></li>
</ul>
</div>
<!-- test toggle -->
<!-- category toggle -->
<div class='chip transparent'>
<a class='dropdown-button category-toggle' data-activates='category-toggle' data-constrainwidth='false' data-beloworigin='true' data-hover='true' href='#'>
<i class='material-icons'>local_offer</i> Category
</a>
<ul id='category-toggle' class='dropdown-content'>
<li><a href='#'>@DeletePlace</a></li>
<li><a href='#'>@AddPlace</a></li>
<li class='divider'></li>
<li class='clear'><a href='#!' clear='true'>Clear Filters</a></li>
</ul>
</div>
<!-- category toggle -->
<!-- clear filters -->
<div class='chip transparent hide'>
<a class='' id='clear-filters' alt='Clear Filters' title='Clear Filters'>
<i class='material-icons'>close</i> Clear
</a>
</div>
<!-- clear filters -->
<!-- enable dashboard -->
<div id='toggle-test-view-charts' class='chip transparent'>
<a class='pink-text' id='enable-dashboard' alt='Enable Dashboard' title='Enable Dashboard'>
<i class='material-icons'>track_changes</i> Dashboard
</a>
</div>
<!-- enable dashboard -->
<!-- search -->
<div class='chip transparent' alt='Search Tests' title='Search Tests'>
<a href="#" class='search-div'>
<i class='material-icons'>search</i> Search
</a>
<div class='input-field left hide'>
<input id='search-tests' type='text' class='validate browser-default' placeholder='Search Tests...'>
</div>
</div>
<!-- search -->
</div>
</section>
<div id='test-view-charts' class='subview-full'>
<div id='charts-row' class='row nm-v nm-h'>
<div class='col s12 m4 l4 np-h'>
<div class='card-panel nm-v'>
<div class='left panel-name'>Features</div>
<div class='chart-box' style="max-height:94px;">
<canvas id='parent-analysis' width='90' height='70'></canvas>
</div>
<div class='block text-small'>
<span class='tooltipped' data-position='top' data-tooltip='$100%'>
<span class='strong'>1</span> features passed</span>
</div>
<div class='block text-small'>
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>
0</span> features failed,
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>
0</span> skipped
</div>
</div>
</div>
<div class='col s12 m4 l4 np-h'>
<div class='card-panel nm-v'>
<div class='left panel-name'>Scenarios</div>
<div class='chart-box' style="max-height:94px;">
<canvas id='child-analysis' width='90' height='70'></canvas>
</div>
<div class='block text-small'>
<span class='tooltipped' data-position='top' data-tooltip='100%'>
<span class='strong'>3</span> scenarios passed</span>
</div>
<div class='block text-small'>
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>
0</span> scenarios failed,
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>
0</span> skipped,
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>
0</span> others
</div>
</div>
</div>
<div class='col s12 m4 l4 np-h'>
<div class='card-panel nm-v'>
<div class='left panel-name'>Steps</div>
<div class='chart-box' style="max-height:94px;">
<canvas id='grandchild-analysis' width='90' height='70'></canvas>
</div>
<div class='block text-small'>
<span class='tooltipped' data-position='top' data-tooltip='100%'>
<span class='strong'>16</span> steps passed</span>
</div>
<div class='block text-small'>
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>
0</span> steps failed,
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>
0</span> skipped,
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>
0</span> others
</div>
</div>
</div>
</div>
<div id="timeline-chart" class="row nm-v nm-h">
<div class="col s12 m12 l12 np-h">
<div class="card-panel">
<div class='left panel-name'>Timeline (seconds)</div>
<div class="chart-box" style="width:98%;max-height:145px;">
<canvas id="timeline" height="120"></canvas>
</div>
</div>
</div>
</div>
</div>
<div class='subview-left left'>
<div class='view-summary'>
<ul id='test-collection' class='test-collection'>
<li class='test displayed active has-leaf pass' status='pass' bdd='true' test-id='1'>
<div class='test-heading'>
<span class='test-name'>Validating Place API's</span>
<span class='test-time'>Apr 4, 2025 07:34:25 pm</span>
<span class='test-status right pass'>Pass</span>
</div>
<div class='test-content hide'>
<div class="sr-filters bdd-filters">
<a class="btn-floating waves-effect waves-light pass green" title="pass"><i class='material-icons'>check_circle</i></a>
<a class="btn-floating waves-effect waves-light fail red" title="fail"><i class='material-icons'>cancel</i></a>
<a class="btn-floating waves-effect waves-light skip blue" title="skip"><i class='material-icons'>redo</i></a>
<a class="btn-floating waves-effect waves-light clear grey" title="clear"><i class='material-icons'>clear</i></a>
</div>
<div class='scenario outline node' test-id='2' status='pass'>
<span class='duration right label'>00 00 07.879</span>
<div class="bdd-test">
<div class="scenario-name"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span> Scenario Outline: Verify if Place is being Succesfully added using AddPlaceAPI</div>
</div>
<div class='node-desc'><br><br><table class='markup-table table '><tr><td>name</td><td>language</td><td>address</td></tr><tr><td>Varshini</td><td>English</td><td>abc cde center</td></tr><tr><td>Genelia</td><td>Tamil</td><td>hello hi center</td></tr></table></div>
<ul class='steps'>
<li test-id='3' class='node scenario Pass' status='Pass'>
<div class="step-name" title="()"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>Verify if Place is being Succesfully added using AddPlaceAPI</div>
<div class='category-list'>
<span class='category label'>@AddPlace</span>
</div>
<ul class='gc steps'>
<li test-id='4' class='gc given Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.add_Place_Payload_with(java.lang.String,java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>Given Add Place Payload with "Varshini" "English" "abc cde center"</h6>
</li>
<li test-id='5' class='gc when Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.user_calls_with_http_request(java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>When user calls "AddPlaceAPI" with "POST" http request</h6>
</li>
<li test-id='6' class='gc then Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.the_API_call_got_success_with_status_code(java.lang.Integer)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>Then the API call got success with status code 200</h6>
</li>
<li test-id='7' class='gc and Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>And "status" in response body is "OK"</h6>
</li>
<li test-id='8' class='gc and Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>And "scope" in response body is "APP"</h6>
</li>
<li test-id='9' class='gc and Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.verify_place_Id_created_maps_to_using(java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>And verify place_Id created maps to "Varshini" using "getPlaceAPI"</h6>
</li>
</ul>
</li>
<li test-id='10' class='node scenario Pass' status='Pass'>
<div class="step-name" title="()"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>Verify if Place is being Succesfully added using AddPlaceAPI</div>
<div class='category-list'>
<span class='category label'>@AddPlace</span>
</div>
<ul class='gc steps'>
<li test-id='11' class='gc given Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.add_Place_Payload_with(java.lang.String,java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>Given Add Place Payload with "Genelia" "Tamil" "hello hi center"</h6>
</li>
<li test-id='12' class='gc when Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.user_calls_with_http_request(java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>When user calls "AddPlaceAPI" with "POST" http request</h6>
</li>
<li test-id='13' class='gc then Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.the_API_call_got_success_with_status_code(java.lang.Integer)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>Then the API call got success with status code 200</h6>
</li>
<li test-id='14' class='gc and Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>And "status" in response body is "OK"</h6>
</li>
<li test-id='15' class='gc and Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>And "scope" in response body is "APP"</h6>
</li>
<li test-id='16' class='gc and Pass' status='Pass'>
<h6 class="step-name" title="com.stepDef.StepDef.verify_place_Id_created_maps_to_using(java.lang.String,java.lang.String)"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>And verify place_Id created maps to "Genelia" using "getPlaceAPI"</h6>
</li>
</ul>
</li>
</ul>
</div>
<div class='scenario node' test-id='17' status='pass'>
<span class='duration right label'>00 00 02.422</span>
<div class="bdd-test">
<div class="scenario-name"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span> Scenario: Verify if Delete Place functionality is working</div>
</div>
<div class='category-list'>
<span class='category label'>@DeletePlace</span>
</div>
<ul class='steps'>
<li test-id='19' class='node given Pass' status='Pass'>
<div class="step-name" title="(com.stepDef.StepDef.deleteplace_Payload())"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>Given DeletePlace Payload</div>
</li>
<li test-id='20' class='node when Pass' status='Pass'>
<div class="step-name" title="(com.stepDef.StepDef.user_calls_with_http_request(java.lang.String,java.lang.String))"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>When user calls "deletePlaceAPI" with "POST" http request</div>
</li>
<li test-id='21' class='node then Pass' status='Pass'>
<div class="step-name" title="(com.stepDef.StepDef.the_API_call_got_success_with_status_code(java.lang.Integer))"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>Then the API call got success with status code 200</div>
</li>
<li test-id='22' class='node and Pass' status='Pass'>
<div class="step-name" title="(com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String))"><span class='status pass' title='Pass'><i class='material-icons'>check_circle</i></span>And "status" in response body is "OK"</div>
</li>
</ul>
</div>
</div>
</li>
</ul>
</div>
</div>
<!-- subview left -->
<div class='subview-right left'>
<div class='view-summary'>
<div id='step-filters' class="right sr-filters">
<a class="btn-floating waves-effect waves-light green" status="pass" alt="pass" title="pass"><i class="material-icons">check_circle</i></a>
<a class="btn-floating waves-effect waves-light red" status="fail" alt="fail" title="fail"><i class="material-icons">cancel</i></a>
<a class="btn-floating waves-effect waves-light red darken-4" status="fatal" alt="fatal" title="fatal"><i class="material-icons">cancel</i></a>
<a class="btn-floating waves-effect waves-light pink text-lighten-1" status="error" alt="error" title="error"><i class="material-icons">error</i></a>
<a class="btn-floating waves-effect waves-light orange" alt="warning" status="warning" title="warning"><i class="material-icons">warning</i></a>
<a class="btn-floating waves-effect waves-light teal" status="skip" alt="skip" title="skip"><i class="material-icons">redo</i></a>
<a class="btn-floating waves-effect waves-light grey" status="clear" alt="Clear filters" title="Clear filters"><i class="material-icons">clear</i></a>
</div>
<h5 class='test-name'></h5>
</div>
</div>
<!-- subview right -->
</div>
<!-- test view --><div id='category-view' class='view hide'>
<section id='controls'>
<div class='controls grey lighten-4'>
<!-- search -->
<div class='chip transparent' alt='Search Tests' title='Search Tests'>
<a href="#" class='search-div'>
<i class='material-icons'>search</i> Search
</a>
<div class='input-field left hide'>
<input id='search-tests' type='text' class='validate browser-default' placeholder='Search Tests...'>
</div>
</div>
<!-- search -->
</div>
</section>
<div class='subview-left left'>
<div class='view-summary'>
<ul id='category-collection' class='category-collection'>
<li class='category displayed active'>
<div class='category-heading'>
<span class='category-name'>@DeletePlace</span>
<span class='category-status right'>
<span class='label pass'>1</span>
</span>
</div>
<div class='category-content hide'>
<div class='category-status-counts'>
<span status="pass" class='label green accent-4 white-text'>Passed: 1</span>
</div>
<div class='category-tests'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Timestamp</th>
<th>TestName</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td>Apr 4, 2025 07:34:33 pm</td>
<td class='linked' test-id='17'>Verify if Delete Place functionality is working</td>
<td><span class='test-status Pass'>Pass</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
<li class='category displayed active'>
<div class='category-heading'>
<span class='category-name'>@AddPlace</span>
<span class='category-status right'>
<span class='label pass'>2</span>
</span>
</div>
<div class='category-content hide'>
<div class='category-status-counts'>
<span status="pass" class='label green accent-4 white-text'>Passed: 2</span>
</div>
<div class='category-tests'>
<table class='bordered table-results'>
<thead>
<tr>
<th>Timestamp</th>
<th>TestName</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td>Apr 4, 2025 07:34:25 pm</td>
<td class='linked' test-id='3'>Verify if Place is being Succesfully added using AddPlaceAPI</td>
<td><span class='test-status Pass'>Pass</span></td>
</tr>
<tr>
<td>Apr 4, 2025 07:34:30 pm</td>
<td class='linked' test-id='10'>Verify if Place is being Succesfully added using AddPlaceAPI</td>
<td><span class='test-status Pass'>Pass</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class='subview-right left'>
<div class='view-summary'>
<h5 class='category-name'></h5>
</div>
</div>
</div>
<!-- category view --><div id='dashboard-view' class='view hide'>
<div class='card-panel transparent np-v'>
<h5>Dashboard</h5>
<div class='row'>
<div class='col s2'>
<div class='card-panel r'>
Features
<div class='panel-lead'>1</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Scenarios
<div class='panel-lead'>3</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Steps
<div class='panel-lead'>16</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Start
<div class='panel-lead'>Apr 4, 2025 07:34:24 pm</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
End
<div class='panel-lead'>Apr 4, 2025 07:34:35 pm</div>
</div>
</div>
<div class='col s2'>
<div class='card-panel r'>
Time Taken
<div class='panel-lead'>00 00 11.197</div>
</div>
</div>
<div class='col s4'>
<div class='card-panel dashboard-environment'>
<span class='right label cyan white-text'>Environment</span><p>&nbsp;</p>
<table>
<tr>
<th>Name</th>
<th>Value</th>
</tr>
<tr>
<td>version</td>
<td>10</td>
</tr>
<tr>
<td>os</td>
<td>windows</td>
</tr>
</table>
</div>
</div>
<div class='col s6'>
<div class='card-panel dashboard-categories'>
<span class='right label cyan white-text'>Categories</span><p>&nbsp;</p>
<table>
<tr>
<th>Name</th>
<th>Passed</th>
<th>Failed</th>
<th>Skipped</th>
<th>Passed %</th>
</tr>
<tr>
<td>@DeletePlace</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>
100%
</td>
</tr>
<tr>
<td>@AddPlace</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td>
100%
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- dashboard view -->
</div>
<!-- container -->
<script>
var statusGroup = {
parentCount: 1,
passParent: 1,
failParent: 0,
fatalParent: 0,
errorParent: 0,
warningParent: 0,
skipParent: 0,
childCount: 3,
passChild: 3,
failChild: 0,
fatalChild: 0,
errorChild: 0,
warningChild: 0,
skipChild: 0,
infoChild: 0,
grandChildCount: 16,
passGrandChild: 16,
failGrandChild: 0,
fatalGrandChild: 0,
errorGrandChild: 0,
warningGrandChild: 0,
skipGrandChild: 0,
infoGrandChild: 0,
};
</script>
<script>
var timeline = {
"Validating Place API's":10.328
};
</script>
<script src='http://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@ff53917fbbdb5ef820abbbe4d199a6942dc771ff/v3html/js/extent.js' type='text/javascript'></script>
<script type='text/javascript'>
</script>
</body>
</html>
\ No newline at end of file
[{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:25 PM","endTime":"Apr 4, 2025, 7:34:35 PM","status":"PASS","level":0,"isLeaf":false,"name":"Validating Place API\u0027s","description":"","bddType":"com.aventstack.extentreports.gherkin.model.Feature","infoMap":{},"children":[{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:25 PM","endTime":"Apr 4, 2025, 7:34:33 PM","status":"PASS","level":1,"isLeaf":false,"name":"Verify if Place is being Succesfully added using AddPlaceAPI","description":"\u003cbr\u003e\u003cbr\u003e\u003ctable class\u003d\u0027markup-table table \u0027\u003e\u003ctr\u003e\u003ctd\u003ename\u003c/td\u003e\u003ctd\u003elanguage\u003c/td\u003e\u003ctd\u003eaddress\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eVarshini\u003c/td\u003e\u003ctd\u003eEnglish\u003c/td\u003e\u003ctd\u003eabc cde center\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eGenelia\u003c/td\u003e\u003ctd\u003eTamil\u003c/td\u003e\u003ctd\u003ehello hi center\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e","bddType":"com.aventstack.extentreports.gherkin.model.ScenarioOutline","infoMap":{},"children":[{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:25 PM","endTime":"Apr 4, 2025, 7:34:30 PM","status":"PASS","level":2,"isLeaf":false,"name":"Verify if Place is being Succesfully added using AddPlaceAPI","description":"","bddType":"com.aventstack.extentreports.gherkin.model.Scenario","infoMap":{},"children":[{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:25 PM","endTime":"Apr 4, 2025, 7:34:26 PM","status":"PASS","level":3,"isLeaf":true,"name":"Given Add Place Payload with \"Varshini\" \"English\" \"abc cde center\"","description":"com.stepDef.StepDef.add_Place_Payload_with(java.lang.String,java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.Given","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:26 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:26 PM","endTime":"Apr 4, 2025, 7:34:28 PM","status":"PASS","level":3,"isLeaf":true,"name":"When user calls \"AddPlaceAPI\" with \"POST\" http request","description":"com.stepDef.StepDef.user_calls_with_http_request(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.When","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:28 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:28 PM","endTime":"Apr 4, 2025, 7:34:28 PM","status":"PASS","level":3,"isLeaf":true,"name":"Then the API call got success with status code 200","description":"com.stepDef.StepDef.the_API_call_got_success_with_status_code(java.lang.Integer)","bddType":"com.aventstack.extentreports.gherkin.model.Then","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:28 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:28 PM","endTime":"Apr 4, 2025, 7:34:29 PM","status":"PASS","level":3,"isLeaf":true,"name":"And \"status\" in response body is \"OK\"","description":"com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.And","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:29 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:29 PM","endTime":"Apr 4, 2025, 7:34:29 PM","status":"PASS","level":3,"isLeaf":true,"name":"And \"scope\" in response body is \"APP\"","description":"com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.And","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:29 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:29 PM","endTime":"Apr 4, 2025, 7:34:30 PM","status":"PASS","level":3,"isLeaf":true,"name":"And verify place_Id created maps to \"Varshini\" using \"getPlaceAPI\"","description":"com.stepDef.StepDef.verify_place_Id_created_maps_to_using(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.And","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:30 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]}],"logs":[],"media":[],"exceptions":[],"authorSet":[],"categorySet":[{"name":"@AddPlace"}],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:30 PM","endTime":"Apr 4, 2025, 7:34:33 PM","status":"PASS","level":2,"isLeaf":false,"name":"Verify if Place is being Succesfully added using AddPlaceAPI","description":"","bddType":"com.aventstack.extentreports.gherkin.model.Scenario","infoMap":{},"children":[{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:30 PM","endTime":"Apr 4, 2025, 7:34:30 PM","status":"PASS","level":3,"isLeaf":true,"name":"Given Add Place Payload with \"Genelia\" \"Tamil\" \"hello hi center\"","description":"com.stepDef.StepDef.add_Place_Payload_with(java.lang.String,java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.Given","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:30 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:30 PM","endTime":"Apr 4, 2025, 7:34:31 PM","status":"PASS","level":3,"isLeaf":true,"name":"When user calls \"AddPlaceAPI\" with \"POST\" http request","description":"com.stepDef.StepDef.user_calls_with_http_request(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.When","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:31 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:31 PM","endTime":"Apr 4, 2025, 7:34:31 PM","status":"PASS","level":3,"isLeaf":true,"name":"Then the API call got success with status code 200","description":"com.stepDef.StepDef.the_API_call_got_success_with_status_code(java.lang.Integer)","bddType":"com.aventstack.extentreports.gherkin.model.Then","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:31 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:31 PM","endTime":"Apr 4, 2025, 7:34:31 PM","status":"PASS","level":3,"isLeaf":true,"name":"And \"status\" in response body is \"OK\"","description":"com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.And","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:31 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:31 PM","endTime":"Apr 4, 2025, 7:34:31 PM","status":"PASS","level":3,"isLeaf":true,"name":"And \"scope\" in response body is \"APP\"","description":"com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.And","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:31 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:31 PM","endTime":"Apr 4, 2025, 7:34:33 PM","status":"PASS","level":3,"isLeaf":true,"name":"And verify place_Id created maps to \"Genelia\" using \"getPlaceAPI\"","description":"com.stepDef.StepDef.verify_place_Id_created_maps_to_using(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.And","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:33 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]}],"logs":[],"media":[],"exceptions":[],"authorSet":[],"categorySet":[{"name":"@AddPlace"}],"deviceSet":[],"generatedLog":[]}],"logs":[],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:33 PM","endTime":"Apr 4, 2025, 7:34:35 PM","status":"PASS","level":1,"isLeaf":false,"name":"Verify if Delete Place functionality is working","description":"","bddType":"com.aventstack.extentreports.gherkin.model.Scenario","infoMap":{},"children":[{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:33 PM","endTime":"Apr 4, 2025, 7:34:33 PM","status":"PASS","level":2,"isLeaf":true,"name":"Given DeletePlace Payload","description":"com.stepDef.StepDef.deleteplace_Payload()","bddType":"com.aventstack.extentreports.gherkin.model.Given","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:33 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:33 PM","endTime":"Apr 4, 2025, 7:34:35 PM","status":"PASS","level":2,"isLeaf":true,"name":"When user calls \"deletePlaceAPI\" with \"POST\" http request","description":"com.stepDef.StepDef.user_calls_with_http_request(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.When","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:35 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:35 PM","endTime":"Apr 4, 2025, 7:34:35 PM","status":"PASS","level":2,"isLeaf":true,"name":"Then the API call got success with status code 200","description":"com.stepDef.StepDef.the_API_call_got_success_with_status_code(java.lang.Integer)","bddType":"com.aventstack.extentreports.gherkin.model.Then","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:35 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]},{"useNaturalConf":true,"startTime":"Apr 4, 2025, 7:34:35 PM","endTime":"Apr 4, 2025, 7:34:35 PM","status":"PASS","level":2,"isLeaf":true,"name":"And \"status\" in response body is \"OK\"","description":"com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)","bddType":"com.aventstack.extentreports.gherkin.model.And","infoMap":{},"children":[],"logs":[{"timestamp":"Apr 4, 2025, 7:34:35 PM","status":"PASS","details":"","seq":0,"infoMap":{}}],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]}],"logs":[],"media":[],"exceptions":[],"authorSet":[],"categorySet":[{"name":"@DeletePlace"}],"deviceSet":[],"generatedLog":[]}],"logs":[],"media":[],"exceptions":[],"authorSet":[],"categorySet":[],"deviceSet":[],"generatedLog":[]}]
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title></title>
<link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@b00a2d0486596e73dd7326beacf352c639623a0e/commons/img/logo.png">
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@b00a2d0486596e73dd7326beacf352c639623a0e/commons/img/logo.png">
<link href="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@ce8b10435bcbae260c334c0d0c6b61d2c19b6168/spark/css/spark-style.css" rel="stylesheet" />
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@7cc78ce/spark/js/jsontree.js"></script>
<style type="text/css"></style></head><body class="spa bdd-report standard">
<div class="app">
<div class="layout">
<div class="header navbar">
<div class="vheader">
<div class="nav-logo">
<a href="#">
<div class="logo" style="background-image: url('https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@b00a2d0486596e73dd7326beacf352c639623a0e/commons/img/logo.png')"></div>
</a>
</div>
<ul class="nav-left">
<li class="search-box">
<a class="search-toggle" href="#">
<i class="search-icon fa fa-search"></i>
<i class="search-icon-close fa fa-close"></i>
</a>
</li>
<li class="search-input"><input id="search-tests" class="form-control" type="text" placeholder="Search..."></li>
</ul>
<ul class="nav-right">
<li class="m-r-10">
<a href="#"><span class="badge badge-primary"></span></a>
</li>
<li class="m-r-10">
<a href="#"><span class="badge badge-primary">Apr 4, 2025 07:34:24 pm</span></a>
</li>
</ul>
</div>
</div><div class="side-nav">
<div class="side-nav-inner">
<ul class="side-nav-menu">
<li class="nav-item dropdown" onclick="toggleView('dashboard-view')">
<a id="nav-dashboard" class="dropdown-toggle" href="#">
<span class="ico"><i class="fa fa-bar-chart"></i></span>
</a>
</li>
<li class="nav-item dropdown" onclick="toggleView('test-view')">
<a id="nav-test" class="dropdown-toggle" href="#">
<span class="ico"><i class="fa fa-list"></i></span>
</a>
</li>
<li class="nav-item dropdown" onclick="toggleView('category-view')">
<a id="nav-category" class="dropdown-toggle" href="#">
<span class="ico"><i class="fa fa-tag"></i></span>
</a>
</li>
</ul>
</div>
</div> <div class="vcontainer">
<div class="main-content">
<div class="container-fluid p-4 view dashboard-view">
<div class="row">
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Started</p>
<h3>Apr 4, 2025 07:34:24 pm</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Ended</p>
<h3>Apr 4, 2025 07:34:35 pm</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0 text-pass">Features Passed</p>
<h3>1</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0 text-fail">Features Failed</p>
<h3>0</h3>
</div></div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="card">
<div class="card-header">
<h6 class="card-title">Features</h6>
</div>
<div class="card-body">
<div class="">
<canvas id='parent-analysis' width='115' height='90'></canvas>
</div>
</div>
<div class="card-footer">
<div><small data-tooltip='100%'>
<b>1</b> features passed
</small>
</div>
<div>
<small data-tooltip='0%'><b>0</b> features failed,
<b>0</b> skipped, <b data-tooltip='0%'>0</b> others
</small>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-header">
<h6 class="card-title">Scenarios</h6>
</div>
<div class="card-body">
<div class="">
<canvas id='child-analysis' width='115' height='90'></canvas>
</div>
</div>
<div class="card-footer">
<div><small data-tooltip='100%'><b>3</b> scenarios passed</small></div>
<div>
<small data-tooltip='0%'><b>0</b> scenarios failed,
<b>0</b> skipped, <b data-tooltip='%'>0</b> others
</small>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-header">
<h6 class="card-title">Steps</h6>
</div>
<div class="card-body">
<div class="">
<canvas id='grandchild-analysis' width='115' height='90'></canvas>
</div>
</div>
<div class="card-footer">
<div><small data-tooltip='100%'><b>16</b> steps passed</small></div>
<div>
<small data-tooltip='0%'><b>0</b> steps failed,
<b>0</b> skipped, <b data-tooltip='%'>0</b> others
</small>
</div>
</div>
</div>
</div>
</div>
<div class="row"><div class="col-md-12">
<div class="card"><div class="card-header"><p>Timeline</p></div>
<div class="card-body pt-0"><div>
<canvas id="timeline" height="120"></canvas>
</div></div>
</div>
</div></div>
<script>
var timeline = {
"Validating Place API's":10.328
};
</script>
<div class="row">
<div class="col-lg-6 col-md-12 category-container">
<div class="card">
<div class="card-header"><p>Tags</p></div>
<div class="card-body pb-0 pt-0"><table class="table table-sm table-bordered">
<thead><tr class="bg-gray"><th>Name</th><th>Passed</th><th>Failed</th><th>Skipped</th><th>Others</th><th>Passed %</th></tr></thead><tbody>
<tr>
<td>@DeletePlace</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>100%</td>
</tr>
<tr>
<td>@AddPlace</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>100%</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="col-lg-6 col-md-12 sysenv-container">
<div class="card">
<div class="card-header"><p>System/Environment</p></div>
<div class="card-body pb-0 pt-0"><table class="table table-sm table-bordered">
<thead><tr class="bg-gray"><th>Name</th><th>Value</th></tr></thead>
<tbody>
<tr>
<td>version</td>
<td>10</td>
</tr>
<tr>
<td>os</td>
<td>windows</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
<script>
var statusGroup = {
parentCount: 5,
passParent: 1,
failParent: 0,
warningParent: 0,
skipParent: 0,
childCount: 5,
passChild: 3,
failChild: 0,
warningChild: 0,
skipChild: 0,
infoChild: 0,
grandChildCount: 5,
passGrandChild: 16,
failGrandChild: 0,
warningGrandChild: 0,
skipGrandChild: 0,
infoGrandChild: 0,
eventsCount: 5,
};
</script><div class="test-wrapper row view test-view">
<div class="test-list">
<div class="test-list-tools">
<ul class="tools pull-left">
<li><a href="#"><span class="font-size-14">Tests</span></a></li>
</ul>
<ul class="tools text-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-exclamation-circle"></i></a>
<ul id="status-toggle" class="dropdown-menu dropdown-md p-v-0">
<a class="dropdown-item" status="pass" href="#"><span>Pass</span><span class="status success"></span></a>
<div class="dropdown-divider"></div>
<a status="clear" class="dropdown-item" href="#"><span>Clear</span><span class="pull-right"><i class="fa fa-close"></i></span></a>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-tag"></i></a>
<ul id="tag-toggle" class="dropdown-menu dropdown-md p-v-0">
<a class="dropdown-item" href="#">@DeletePlace</a><a class="dropdown-item" href="#">@AddPlace</a>
</ul>
</li>
</ul>
</div> <div class="test-list-wrapper scrollable">
<ul class="test-list-item">
<li class="test-item" status="pass" test-id="1"
author=""
tag=""
device="">
<div class="test-detail">
<p class="name">Validating Place API's</p>
<p class="text-sm">
<span>7:34:25 pm</span> / <span>00:00:10:328</span>
<span class="badge pass-bg log float-right">Pass</span>
</p>
</div>
<div class="test-contents d-none">
<div class="detail-head">
<div class="p-v-10">
<div class="info">
<h5 class="test-status text-pass">Validating Place API's</h5>
<span class='badge badge-success'>04.04.2025 7:34:25 pm</span>
<span class='badge badge-danger'>04.04.2025 7:34:35 pm</span>
<span class='badge badge-default'>00:00:10:328</span>
&middot; <span class='uri-anchor badge badge-default'>#test-id=1</span>
<span title='Skip to the next failed step' class='badge badge-danger pointer float-right ne ml-1'><i class="fa fa-fast-forward"></i></span>
<span title='Collapse all nodes' class='badge badge-default pointer float-right ct ml-1'><i class="fa fa-compress"></i></span>
<span title='Expand all nodes' class='badge badge-default pointer float-right et'><i class="fa fa-expand"></i></span>
</div>
<div class="m-t-10 m-l-5"></div>
</div>
</div>
<div class="accordion mt-4">
<div class="card">
<div class="card-header" role="tab">
<div class="card-title">
<div class="node" id="2"><span class="badge log pass-bg mr-2">Pass</span>Verify if Place is being Succesfully added using AddPlaceAPI</div>
</div>
</div>
<div class="scenario_outline collapse">
<div class="card-body l1">
<div class="card-header">
<div class="card-title outline-child">
<div class="node" id="3"><span class="badge log pass-bg mr-2">Pass</span>Verify if Place is being Succesfully added using AddPlaceAPI</div>
</div>
</div>
<div class="card-body mt-3 collapse">
<div class="step pass-bg">
<span>Given Add Place Payload with "Varshini" "English" "abc cde center"</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>When user calls "AddPlaceAPI" with "POST" http request</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>Then the API call got success with status code 200</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>And "status" in response body is "OK"</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>And "scope" in response body is "APP"</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>And verify place_Id created maps to "Varshini" using "getPlaceAPI"</span>
<div>
</div>
</div>
</div>
</div>
<div class="card-body l1">
<div class="card-header">
<div class="card-title outline-child">
<div class="node" id="10"><span class="badge log pass-bg mr-2">Pass</span>Verify if Place is being Succesfully added using AddPlaceAPI</div>
</div>
</div>
<div class="card-body mt-3 collapse">
<div class="step pass-bg">
<span>Given Add Place Payload with "Genelia" "Tamil" "hello hi center"</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>When user calls "AddPlaceAPI" with "POST" http request</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>Then the API call got success with status code 200</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>And "status" in response body is "OK"</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>And "scope" in response body is "APP"</span>
<div>
</div>
</div>
<div class="step pass-bg">
<span>And verify place_Id created maps to "Genelia" using "getPlaceAPI"</span>
<div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header" role="tab">
<div class="card-title">
<div class="node" id="17"><span class="badge log pass-bg mr-2">Pass</span>Verify if Delete Place functionality is working</div>
</div>
</div>
<div class="collapse">
<div class="card-body">
<div class="step pass-bg" title="com.stepDef.StepDef.deleteplace_Payload()">
<span>Given DeletePlace Payload</span>
<div>
</div>
</div>
<div class="step pass-bg" title="com.stepDef.StepDef.user_calls_with_http_request(java.lang.String,java.lang.String)">
<span>When user calls "deletePlaceAPI" with "POST" http request</span>
<div>
</div>
</div>
<div class="step pass-bg" title="com.stepDef.StepDef.the_API_call_got_success_with_status_code(java.lang.Integer)">
<span>Then the API call got success with status code 200</span>
<div>
</div>
</div>
<div class="step pass-bg" title="com.stepDef.StepDef.in_response_body_is(java.lang.String,java.lang.String)">
<span>And "status" in response body is "OK"</span>
<div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="test-content scrollable">
<div class="test-content-tools">
<ul><li><a class="back-to-test" href="#"><i class="fa fa-arrow-left"></i></a></li></ul>
</div>
<div class="test-content-detail"><div class="detail-body"></div></div>
</div></div>
<div class="test-wrapper row view category-view attributes-view">
<div class="test-list">
<div class="test-list-tools">
<ul class="tools pull-left"><li><a href=""><span class="font-size-14">Category</span></a></li></ul>
<ul class="tools text-right"><li><a href="#"><span class="badge badge-primary">2</span></a></li></ul>
</div>
<div class="test-list-wrapper scrollable">
<ul class="test-list-item">
<li class="test-item">
<div class="test-detail">
<span class="meta">
<span class='badge log pass-bg'>1</span>
</span>
<p class="name">@DeletePlace</p>
<p class="duration text-sm">1 tests</p>
</div>
<div class="test-contents d-none">
<div class="info">
<h4>@DeletePlace</h4>
<span status="pass" class='badge log pass-bg'>1 passed</span>
</div>
<table class='table table-sm mt-4'>
<thead>
<tr>
<th class="status-col">Status</th>
<th class="timestamp-col">Timestamp</th>
<th>TestName</th>
</tr>
</thead>
<tbody>
<tr class="tag-test-status" status="pass">
<td><span class="badge log pass-bg">Pass</span></td>
<td>19:34:33 pm</td>
<td>
<a href="#" class="linked" test-id='1' id='17'>Verify if Delete Place functionality is working</a>
<div class="">
<span class="badge badge-default">Validating Place API's.Verify if Delete Place functionality is working</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</li>
<li class="test-item">
<div class="test-detail">
<span class="meta">
<span class='badge log pass-bg'>2</span>
</span>
<p class="name">@AddPlace</p>
<p class="duration text-sm">2 tests</p>
</div>
<div class="test-contents d-none">
<div class="info">
<h4>@AddPlace</h4>
<span status="pass" class='badge log pass-bg'>2 passed</span>
</div>
<table class='table table-sm mt-4'>
<thead>
<tr>
<th class="status-col">Status</th>
<th class="timestamp-col">Timestamp</th>
<th>TestName</th>
</tr>
</thead>
<tbody>
<tr class="tag-test-status" status="pass">
<td><span class="badge log pass-bg">Pass</span></td>
<td>19:34:25 pm</td>
<td>
<a href="#" class="linked" test-id='1' id='3'>Verify if Place is being Succesfully added using AddPlaceAPI</a>
<div class="">
<span class="badge badge-default">Validating Place API's.Verify if Place is being Succesfully added using AddPlaceAPI</span>
</div>
</td>
</tr>
<tr class="tag-test-status" status="pass">
<td><span class="badge log pass-bg">Pass</span></td>
<td>19:34:30 pm</td>
<td>
<a href="#" class="linked" test-id='1' id='10'>Verify if Place is being Succesfully added using AddPlaceAPI</a>
<div class="">
<span class="badge badge-default">Validating Place API's.Verify if Place is being Succesfully added using AddPlaceAPI</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</li>
</ul>
</div>
</div>
<div class="test-content scrollable">
<div class="test-content-detail">
<div class="detail-body"></div>
</div>
</div>
</div> </div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@c05cd28cde1617b9d0c05a831daff6cb97fd9fd5/spark/js/spark-script.js"></script>
<script type="text/javascript"></script></body>
</html>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment