diff --git a/API/Activities/CalculatorSOAP.xml b/API/Activities/CalculatorSOAP.xml
new file mode 100644
index 0000000000..3bd3c2b84a
--- /dev/null
+++ b/API/Activities/CalculatorSOAP.xml
@@ -0,0 +1,559 @@
+
+
+
+
+
+
+
+ http://www.dneonline.com/calculator.asmx?WSDL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds two integers. This is a test WebService. ©DNE Online
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+ http://schemas.xmlsoap.org/wsdl/
+
+
+
+ http://www.dneonline.com/calculator.asmx
+
+
+
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ ?\r
+ ?\r
+ \r
+ \r
+]]>
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ ?\r
+ ?\r
+ \r
+ \r
+]]>
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ ?\r
+ ?\r
+ \r
+ \r
+]]>
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ ?\r
+ ?\r
+ \r
+ \r
+]]>
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+ SEQUENTIAL
+
+
+
+
+
+ CalculatorSoap12
+ Add
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ 10\r
+ 20\r
+ \r
+ \r
+]]>
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ declare namespace ns1='http://tempuri.org/';
+//ns1:AddResult
+ 30
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ CalculatorSoap12
+ Divide
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ 30\r
+ 20\r
+ \r
+ \r
+]]>
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ declare namespace ns1='http://tempuri.org/';
+//ns1:DivideResult
+ 2
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ CalculatorSoap12
+ Multiply
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ 10\r
+ 2\r
+ \r
+ \r
+]]>
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ declare namespace ns1='http://tempuri.org/';
+//ns1:MultiplyResult
+ 20
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ CalculatorSoap12
+ Subtract
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ 30\r
+ 5\r
+ \r
+ \r
+]]>
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ declare namespace ns1='http://tempuri.org/';
+//ns1:SubtractResult
+ 25
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // Sample event script to add custom HTTP header to all outgoing REST, SOAP and HTTP(S) calls
+// This code is often used for adding custom authentication to ReadyAPI functional tests
+
+// If hardcoding the token, uncomment and change line 5
+// token = '4567'
+
+// If your token is parameterized in Project level custom property, uncomment line 8
+// token = request.parent.testCase.testSuite.project.getProperty('auth_token').getValue()
+
+// To modify all outgoing calls, remove comments from lines 11 to 16
+// headers = request.requestHeaders
+// if (headers.containsKey('auth_token2') == false) {
+// headers.put('auth_token2', token)
+// request.requestHeaders = headers
+// }
+
+
+ // Save all test step results into files
+// Change the directory path in line 5 to a location where you want to store details
+// then uncomment lines 5 to 10
+
+// filePath = 'C:\\tempOutputDirectory\\'
+// fos = new java.io.FileOutputStream(filePath + testStepResult.testStep.label + '.txt', true)
+// pw = new java.io.PrintWriter(fos)
+// testStepResult.writeTo(pw)
+// pw.close()
+// fos.close()
+
+
+
+
\ No newline at end of file
diff --git a/API/Activities/PetstoreREST-readyapi-project.xml b/API/Activities/PetstoreREST-readyapi-project.xml
new file mode 100644
index 0000000000..1e80951dae
--- /dev/null
+++ b/API/Activities/PetstoreREST-readyapi-project.xml
@@ -0,0 +1,332 @@
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+
+
+
+
+
+
+
+
+ application/json
+
+
+
+ application/json
+ 200
+
+ pet:Response
+
+
+
+ https://petstore.swagger.io
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+
+
+ status
+ sold
+ QUERY
+ sold
+
+
+
+
+
+ application/json
+ 200
+
+ Response
+
+
+
+ https://petstore.swagger.io
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+ status
+
+
+
+
+
+
+
+
+
+
+
+ petId
+ petId
+ TEMPLATE
+ petId
+
+
+
+
+
+ application/json
+
+
+
+ application/json
+ 200
+
+ ns:Response
+
+
+
+ https://petstore.swagger.io
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+ petId
+
+
+
+
+
+
+
+ SEQUENTIAL
+
+
+
+
+
+
+
+ truetruetrue]]>
+ 1021rockyalive]]>
+ 1022rexieealive]]>
+ 1023scoopyalive]]>
+ true
+
+
+ true
+ true
+ petid
+ petname
+ petstatus
+ true
+ false
+
+
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+ {
+ "id" : ${DataSource#petid},
+ "name" : "${DataSource#petname}",
+ "status" : "${DataSource#petstatus}"
+}
+
+ https://petstore.swagger.io/v2/pet
+
+
+
+ 200
+
+
+
+
+ $['name']
+ ${DataSource#petname}
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ IdTransfer
+ Response
+ POST Request
+ $['id']
+ petId
+ Delete Request
+
+ JSONPATH
+ true
+
+
+ StatusTransfer
+ Response
+ POST Request
+ $['status']
+ status
+ Get Request
+ JSONPATH
+ true
+
+
+
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+
+ https://petstore.swagger.io/v2/pet/findByStatus
+
+
+
+ 200
+
+
+
+
+ $[*]['name']
+ true
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+ status
+
+
+
+
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+
+ https://petstore.swagger.io/v2/pet/10292
+
+
+
+ 200
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+ petId
+
+
+
+
+
+
+
+ Data Source
+ POST Request
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // Sample event script to add custom HTTP header to all outgoing REST, SOAP and HTTP(S) calls
+// This code is often used for adding custom authentication to ReadyAPI functional tests
+
+// If hardcoding the token, uncomment and change line 5
+// token = '4567'
+
+// If your token is parameterized in Project level custom property, uncomment line 8
+// token = request.parent.testCase.testSuite.project.getProperty('auth_token').getValue()
+
+// To modify all outgoing calls, remove comments from lines 11 to 16
+// headers = request.requestHeaders
+// if (headers.containsKey('auth_token2') == false) {
+// headers.put('auth_token2', token)
+// request.requestHeaders = headers
+// }
+
+
+ // Save all test step results into files
+// Change the directory path in line 5 to a location where you want to store details
+// then uncomment lines 5 to 10
+
+// filePath = 'C:\\tempOutputDirectory\\'
+// fos = new java.io.FileOutputStream(filePath + testStepResult.testStep.label + '.txt', true)
+// pw = new java.io.PrintWriter(fos)
+// testStepResult.writeTo(pw)
+// pw.close()
+// fos.close()
+
+
+
+
\ No newline at end of file
diff --git a/API/Activities/Project-1-readyapi-project.xml b/API/Activities/Project-1-readyapi-project.xml
new file mode 100644
index 0000000000..e198985568
--- /dev/null
+++ b/API/Activities/Project-1-readyapi-project.xml
@@ -0,0 +1,559 @@
+
+
+
+
+
+
+
+ http://www.dneonline.com/calculator.asmx?WSDL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds two integers. This is a test WebService. ©DNE Online
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+ http://schemas.xmlsoap.org/wsdl/
+
+
+
+ http://www.dneonline.com/calculator.asmx
+
+
+
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ ?\r
+ ?\r
+ \r
+ \r
+]]>
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ ?\r
+ ?\r
+ \r
+ \r
+]]>
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ ?\r
+ ?\r
+ \r
+ \r
+]]>
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ ?\r
+ ?\r
+ \r
+ \r
+]]>
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+ SEQUENTIAL
+
+
+
+
+
+ CalculatorSoap12
+ Add
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ 10\r
+ 20\r
+ \r
+ \r
+]]>
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ declare namespace ns1='http://tempuri.org/';
+//ns1:AddResult
+ 30
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ CalculatorSoap12
+ Divide
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ 30\r
+ 20\r
+ \r
+ \r
+]]>
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ declare namespace ns1='http://tempuri.org/';
+//ns1:DivideResult
+ 2
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ CalculatorSoap12
+ Multiply
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ 10\r
+ 2\r
+ \r
+ \r
+]]>
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ declare namespace ns1='http://tempuri.org/';
+//ns1:MultiplyResult
+ 20
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ CalculatorSoap12
+ Subtract
+
+
+
+
+ UTF-8
+ http://www.dneonline.com/calculator.asmx
+ \r
+ \r
+ \r
+ \r
+ 30\r
+ 5\r
+ \r
+ \r
+]]>
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ declare namespace ns1='http://tempuri.org/';
+//ns1:SubtractResult
+ 25
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // Sample event script to add custom HTTP header to all outgoing REST, SOAP and HTTP(S) calls
+// This code is often used for adding custom authentication to ReadyAPI functional tests
+
+// If hardcoding the token, uncomment and change line 5
+// token = '4567'
+
+// If your token is parameterized in Project level custom property, uncomment line 8
+// token = request.parent.testCase.testSuite.project.getProperty('auth_token').getValue()
+
+// To modify all outgoing calls, remove comments from lines 11 to 16
+// headers = request.requestHeaders
+// if (headers.containsKey('auth_token2') == false) {
+// headers.put('auth_token2', token)
+// request.requestHeaders = headers
+// }
+
+
+ // Save all test step results into files
+// Change the directory path in line 5 to a location where you want to store details
+// then uncomment lines 5 to 10
+
+// filePath = 'C:\\tempOutputDirectory\\'
+// fos = new java.io.FileOutputStream(filePath + testStepResult.testStep.label + '.txt', true)
+// pw = new java.io.PrintWriter(fos)
+// testStepResult.writeTo(pw)
+// pw.close()
+// fos.close()
+
+
+
+
diff --git a/API/Activities/REST-Activity1-readyapi-project.xml b/API/Activities/REST-Activity1-readyapi-project.xml
new file mode 100644
index 0000000000..85cb716ee3
--- /dev/null
+++ b/API/Activities/REST-Activity1-readyapi-project.xml
@@ -0,0 +1,473 @@
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+
+
+
+
+
+
+
+
+ application/json
+ 400
+
+ user:Fault
+
+
+ application/json
+
+
+
+ application/json
+ 200
+
+ user:Response
+
+
+
+ https://petstore.swagger.io
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+
+
+ username
+ {username}
+ QUERY
+ {username}
+
+
+
+
+ password
+ {password}
+ QUERY
+ {password}
+
+
+
+
+
+ application/json
+ 200
+
+ log:Response
+
+
+
+ https://petstore.swagger.io
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+ username
+ password
+
+
+
+
+
+
+
+
+
+
+
+ username
+ username
+ TEMPLATE
+ username
+
+
+
+
+
+ application/json
+ 404
+
+ tes:Fault
+
+
+ application/xml
+ 405
+
+ apiResponse
+
+
+ application/json
+ 200
+
+ tes:Response
+
+
+
+ https://petstore.swagger.io
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+ username
+
+
+
+
+
+
+
+ username
+ username
+ TEMPLATE
+ username
+
+
+
+
+
+ application/json
+
+
+
+ application/json
+ 200
+
+ tes:Response
+
+
+
+ 404
+
+ data
+
+
+ application/xml
+ 405
+
+ apiResponse
+
+
+
+ https://petstore.swagger.io
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+ username
+
+
+
+
+
+
+
+
+
+
+
+ application/json
+ 200
+
+ log:Response
+
+
+
+ https://petstore.swagger.io
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+ SEQUENTIAL
+
+
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+ {
+ "id": 3,
+ "username": "john29",
+ "firstName": "John",
+ "lastName": "Doe",
+ "email": "john@doe.com",
+ "password": "testuser",
+ "phone": "234567890",
+ "userStatus": 0
+}
+ https://petstore.swagger.io/v2/user
+
+
+
+ 200
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ UserName
+ Response
+ To create a user
+ $['username']
+ Username
+ To login
+
+ JSONPATH
+ true
+
+
+ Password
+ Response
+ To create a user
+ $['password']
+ password
+ To login
+ JSONPATH
+ true
+
+
+
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+
+ https://petstore.swagger.io/v2/user/login
+
+
+
+ 200
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+ username
+ password
+
+
+
+
+
+
+
+
+ Username
+ Response
+ To create a user
+ $['username']
+ Username
+ To get user information
+
+ JSONPATH
+ true
+
+
+
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+
+ https://petstore.swagger.io/v2/user/testuser29
+
+
+
+ 200
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+ username
+
+
+
+
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+
+ https://petstore.swagger.io/v2/user/logout
+
+
+
+ 200
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+
+
+
+
+ Username
+ Response
+ To create a user
+ $['username']
+ Username
+ To delete a user
+
+ JSONPATH
+ true
+
+
+
+
+
+
+
+
+
+
+ https://petstore.swagger.io
+
+ https://petstore.swagger.io/v2/user/testuser29
+
+
+
+ 200
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+ username
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // Sample event script to add custom HTTP header to all outgoing REST, SOAP and HTTP(S) calls
+// This code is often used for adding custom authentication to ReadyAPI functional tests
+
+// If hardcoding the token, uncomment and change line 5
+// token = '4567'
+
+// If your token is parameterized in Project level custom property, uncomment line 8
+// token = request.parent.testCase.testSuite.project.getProperty('auth_token').getValue()
+
+// To modify all outgoing calls, remove comments from lines 11 to 16
+// headers = request.requestHeaders
+// if (headers.containsKey('auth_token2') == false) {
+// headers.put('auth_token2', token)
+// request.requestHeaders = headers
+// }
+
+
+ // Save all test step results into files
+// Change the directory path in line 5 to a location where you want to store details
+// then uncomment lines 5 to 10
+
+// filePath = 'C:\\tempOutputDirectory\\'
+// fos = new java.io.FileOutputStream(filePath + testStepResult.testStep.label + '.txt', true)
+// pw = new java.io.PrintWriter(fos)
+// testStepResult.writeTo(pw)
+// pw.close()
+// fos.close()
+
+
+
+
\ No newline at end of file
diff --git a/API/Activities/REST-Activity4-readyapi-project.xml b/API/Activities/REST-Activity4-readyapi-project.xml
new file mode 100644
index 0000000000..acc532492b
--- /dev/null
+++ b/API/Activities/REST-Activity4-readyapi-project.xml
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+ http://ipwhois.app
+
+
+
+
+
+
+
+
+ IP
+ IP
+ TEMPLATE
+ IP
+
+
+
+
+
+ application/json; charset=utf-8
+ 200
+
+ json:Response
+
+
+
+ 0
+
+ data
+
+
+
+ http://ipwhois.app
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+ IP
+
+
+
+
+
+
+
+ SEQUENTIAL
+
+
+
+
+
+
+
+ C:/Users/004PA4744/Desktop/FST/FST_API/Activity4.txt
+ ,
+ true
+ Cp1252
+ false
+
+
+ true
+ true
+ IP
+ Address
+ true
+ false
+
+
+
+
+
+
+
+
+
+ http://ipwhois.app
+
+ http://ipwhois.app/json/
+
+
+
+ 200
+
+
+
+
+ $['country']
+ "India"
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+ IP
+
+
+
+
+
+
+
+ Data Source
+ Request 1
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // Sample event script to add custom HTTP header to all outgoing REST, SOAP and HTTP(S) calls
+// This code is often used for adding custom authentication to ReadyAPI functional tests
+
+// If hardcoding the token, uncomment and change line 5
+// token = '4567'
+
+// If your token is parameterized in Project level custom property, uncomment line 8
+// token = request.parent.testCase.testSuite.project.getProperty('auth_token').getValue()
+
+// To modify all outgoing calls, remove comments from lines 11 to 16
+// headers = request.requestHeaders
+// if (headers.containsKey('auth_token2') == false) {
+// headers.put('auth_token2', token)
+// request.requestHeaders = headers
+// }
+
+
+ // Save all test step results into files
+// Change the directory path in line 5 to a location where you want to store details
+// then uncomment lines 5 to 10
+
+// filePath = 'C:\\tempOutputDirectory\\'
+// fos = new java.io.FileOutputStream(filePath + testStepResult.testStep.label + '.txt', true)
+// pw = new java.io.PrintWriter(fos)
+// testStepResult.writeTo(pw)
+// pw.close()
+// fos.close()
+
+
+
+
\ No newline at end of file
diff --git a/API/Activities/REST-Activity5-readyapi-project.xml b/API/Activities/REST-Activity5-readyapi-project.xml
new file mode 100644
index 0000000000..4d2922f276
--- /dev/null
+++ b/API/Activities/REST-Activity5-readyapi-project.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+ http://ipwhois.app
+
+
+
+
+
+
+
+
+ IP
+ IP
+ TEMPLATE
+ IP
+
+
+
+
+
+ application/json; charset=utf-8
+ 200
+
+ ns:Response
+
+
+
+ http://ipwhois.app
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+ IP
+
+
+
+
+
+
+
+ SEQUENTIAL
+
+
+
+
+
+
+
+ C:/Users/004PA4744/Desktop/FST/FST_API/Activity5.xlsx
+
+ A2 |
+ false
+ false
+
+
+ false
+ false
+ IP Address
+ true
+ false
+
+
+
+
+
+
+
+
+
+ http://ipwhois.app
+
+ http://ipwhois.app/json/164.172.55.44
+
+
+
+ 200
+
+
+
+
+ $['country']
+ "Norway"
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+ IP
+
+
+
+
+
+
+
+ DataSource
+ Request 1
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // Sample event script to add custom HTTP header to all outgoing REST, SOAP and HTTP(S) calls
+// This code is often used for adding custom authentication to ReadyAPI functional tests
+
+// If hardcoding the token, uncomment and change line 5
+// token = '4567'
+
+// If your token is parameterized in Project level custom property, uncomment line 8
+// token = request.parent.testCase.testSuite.project.getProperty('auth_token').getValue()
+
+// To modify all outgoing calls, remove comments from lines 11 to 16
+// headers = request.requestHeaders
+// if (headers.containsKey('auth_token2') == false) {
+// headers.put('auth_token2', token)
+// request.requestHeaders = headers
+// }
+
+
+ // Save all test step results into files
+// Change the directory path in line 5 to a location where you want to store details
+// then uncomment lines 5 to 10
+
+// filePath = 'C:\\tempOutputDirectory\\'
+// fos = new java.io.FileOutputStream(filePath + testStepResult.testStep.label + '.txt', true)
+// pw = new java.io.PrintWriter(fos)
+// testStepResult.writeTo(pw)
+// pw.close()
+// fos.close()
+
+
+
+
\ No newline at end of file
diff --git a/API/Activities/REST-Activity6-readyapi-project.xml b/API/Activities/REST-Activity6-readyapi-project.xml
new file mode 100644
index 0000000000..6791dc1af9
--- /dev/null
+++ b/API/Activities/REST-Activity6-readyapi-project.xml
@@ -0,0 +1,263 @@
+
+
+
+
+
+
+
+ http://ipwhois.app
+
+
+
+
+
+
+
+
+ IP
+ IP
+ TEMPLATE
+ IP
+
+
+
+
+
+ application/json; charset=utf-8
+ 200
+
+ ns:Response
+
+
+
+ http://ipwhois.app
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+ IP
+
+
+
+
+
+
+
+ SEQUENTIAL
+
+
+
+
+
+
+
+ 10
+ 1
+ -1
+ COMP
+ IP
+ 0
+ false
+ IPv4
+
+
+
+ false
+ false
+ IP
+ true
+ false
+
+
+
+
+
+
+
+
+
+ http://ipwhois.app
+
+ http://ipwhois.app/json/90.205.25.236
+
+
+
+ 200
+
+
+
+
+ $['city']
+ true
+ false
+ false
+ false
+
+
+
+ No Authorization
+ No Authorization
+
+
+
+
+
+
+ IP
+
+
+
+
+
+
+
+
+ city
+ Response
+ Request 1
+ $['city']
+ city_name
+ DataSink
+
+ JSONPATH
+ true
+
+
+ latitude
+ Response
+ Request 1
+ $['latitude']
+ latitude
+ DataSink
+
+ JSONPATH
+ true
+
+
+ longitude
+ Response
+ Request 1
+ $['longitude']
+ longitude
+ DataSink
+
+ JSONPATH
+ true
+
+
+
+
+
+
+
+
+ com.mysql.jdbc.Driver
+ jdbc:mysql://db4free.net:3306/fstm1db?user=fstm1db&password=PASS_VALUE
+ 6Y6NowPybq
+ <None>
+ insert into coordinates(city_name,latitude,longitude) values (?,?,?);
+ false
+
+
+
+
+ city_name
+ Kidlington
+
+
+ latitude
+ 51.823398
+
+
+ longitude
+ -1.290459
+
+
+
+
+
+
+
+ DataSource
+ Request 1
+ true
+
+
+
+
+
+ b4af5b45-902e-4b19-95af-a2b5110ab708
+ NONE
+
+
+
+ 3d88d1ea-8e51-462d-b6d6-17176548d7ae
+ NONE
+
+
+
+ b53906d7-dd93-4763-a503-df1a7206b84a
+ NONE
+
+
+
+ 730fbb22-77b4-44f3-91ee-d1791a65990d
+ NONE
+
+
+
+ 8c2ff09e-9dec-48a2-a70e-ff8f1c0cd2e6
+ NONE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // Sample event script to add custom HTTP header to all outgoing REST, SOAP and HTTP(S) calls
+// This code is often used for adding custom authentication to ReadyAPI functional tests
+
+// If hardcoding the token, uncomment and change line 5
+// token = '4567'
+
+// If your token is parameterized in Project level custom property, uncomment line 8
+// token = request.parent.testCase.testSuite.project.getProperty('auth_token').getValue()
+
+// To modify all outgoing calls, remove comments from lines 11 to 16
+// headers = request.requestHeaders
+// if (headers.containsKey('auth_token2') == false) {
+// headers.put('auth_token2', token)
+// request.requestHeaders = headers
+// }
+
+
+ // Save all test step results into files
+// Change the directory path in line 5 to a location where you want to store details
+// then uncomment lines 5 to 10
+
+// filePath = 'C:\\tempOutputDirectory\\'
+// fos = new java.io.FileOutputStream(filePath + testStepResult.testStep.label + '.txt', true)
+// pw = new java.io.PrintWriter(fos)
+// testStepResult.writeTo(pw)
+// pw.close()
+// fos.close()
+
+
+
+
\ No newline at end of file
diff --git a/API/Project/REST-Project-2-soapui-project.xml b/API/Project/REST-Project-2-soapui-project.xml
new file mode 100644
index 0000000000..f1c805298f
--- /dev/null
+++ b/API/Project/REST-Project-2-soapui-project.xml
@@ -0,0 +1,8 @@
+
+https://api.github.comkeyIdkeyIdTEMPLATEkeyIdapplication/json; charset=utf-8200api:Responsehttps://api.github.comNo AuthorizationididTEMPLATEid204dataapplication/jsonapplication/json; charset=utf-8404ns:Fault204data204data204data204data204data204data204datahttps://api.github.comNo Authorizationidapplication/json; charset=utf-8401keys:Faultapplication/jsonapplication/json; charset=utf-8201keys:Responsehttps://api.github.comNo AuthorizationTestSuite generated for REST Service [https://api.github.com]SEQUENTIALhttps://api.github.com
+{
+ "title": "TestKey",
+ "key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIB59q+e1or+zD83hVJotk6DUnZt9lXbWkjnYQyyI8bW"
+}
+
+https://api.github.com/user/keys201No AuthorizationNo AuthorizationidResponsePOST Request$['id']idDelete RequestJSONPATHJSONPATHtruekeyResponsePOST Request$['key']keyIdGET RequestJSONPATHJSONPATHtruehttps://api.github.comhttps://api.github.com/200No Authorizationhttps://api.github.comhttps://api.github.com/user/keys/133432776204No AuthorizationNo AuthorizationidGitHub Token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HEADERAUTHORIZATION_CODE_GRANTAUTOMATICENTERED_MANUALLYENTERED_MANUALLY
\ No newline at end of file
diff --git a/API/Project/RestAssuredProject.java b/API/Project/RestAssuredProject.java
new file mode 100644
index 0000000000..c062e31474
--- /dev/null
+++ b/API/Project/RestAssuredProject.java
@@ -0,0 +1,80 @@
+package Project;
+
+import static io.restassured.RestAssured.given;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.lessThanOrEqualTo;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.hamcrest.Matchers;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.builder.ResponseSpecBuilder;
+import io.restassured.response.Response;
+import io.restassured.specification.RequestSpecification;
+import io.restassured.specification.ResponseSpecification;
+
+public class RestAssuredProject {
+ // Declare Request and Response specifications objects
+
+ RequestSpecification RequestSpec;
+ ResponseSpecification ResponseSpec;
+ int keyId;
+ String sshKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIB59q+e1or+zD83hVJotk6DUnZt9lXbWkjnYQyyI8bW";
+
+ @BeforeClass
+ public void setUp() {
+ // Create request specification
+ RequestSpec = new RequestSpecBuilder().
+ setBaseUri("https://api.github.com/user/keys").
+ addHeader("Content-Type","application/json").
+ addHeader("Authorization", "Bearer ....").
+ addHeader("X-GitHub-Api-Version", "2022-11-28").
+ build();
+
+ // Create a response Specification
+ ResponseSpec = new ResponseSpecBuilder().
+ expectBody("title",Matchers.equalTo("TestAPIKey")).
+ expectBody("key", Matchers.equalTo(sshKey)).
+ expectResponseTime(lessThanOrEqualTo(5000L)).
+ build();
+ }
+
+ @Test(priority = 1)
+ //POST
+ public void postRequestTest() {
+ Map reqBody = new HashMap<>();
+ reqBody.put("title", "TestAPIKey");
+ reqBody.put("key", sshKey);
+ // Send request and save the response
+ Response response = given().spec(RequestSpec).body(reqBody).
+ when().post();
+ // Extract PetId from the response
+ this.keyId = response.then().extract().path("id");
+ // Assertions
+ response.then().spec(ResponseSpec);
+
+ }
+ //GET
+ @Test(priority = 2)
+ public void getRequestTest() {
+ // Send request, get request, Assert
+ given().spec(RequestSpec).pathParam("keyId",this.keyId).
+ when().get("/{keyId}").
+ then().spec(ResponseSpec).body("title",equalTo("TestAPIKey"));
+
+ }
+ //DELETE
+ @Test(priority = 3)
+ public void deleteRequestTest() {
+ // Send request, get request, Assert
+ given().spec(RequestSpec).pathParam("KeyId",this.keyId).
+ // log().all(). --> this prints all the values
+ when().delete("/{KeyId}").
+ then().statusCode(204);
+
+ }
+}
diff --git a/Cucumber/Activities/Activity1.feature b/Cucumber/Activities/Activity1.feature
new file mode 100644
index 0000000000..a021f3fc8e
--- /dev/null
+++ b/Cucumber/Activities/Activity1.feature
@@ -0,0 +1,8 @@
+@Activity1
+Feature: Basic Syntax
+
+Scenario: test the TSO home page
+ Given the user is on TS homepage
+ When they click on the about us link
+ Then they are redirected to the about us page
+
\ No newline at end of file
diff --git a/Cucumber/Activities/Activity2.feature b/Cucumber/Activities/Activity2.feature
new file mode 100644
index 0000000000..f70490d686
--- /dev/null
+++ b/Cucumber/Activities/Activity2.feature
@@ -0,0 +1,8 @@
+@Activity2
+Feature: Activity to test the login feature
+
+Scenario: Successful login
+ Given the user is on the login page
+ When the user enters username and password
+ And clicks the submit button
+ Then get the confirmation message and verify it
\ No newline at end of file
diff --git a/Cucumber/Activities/Activity3.feature b/Cucumber/Activities/Activity3.feature
new file mode 100644
index 0000000000..704cc54fc5
--- /dev/null
+++ b/Cucumber/Activities/Activity3.feature
@@ -0,0 +1,30 @@
+@Activity3
+Feature: Testing with Tags
+
+ @SimpleAlert @SmokeTest
+ Scenario: Test for Simple Alert
+ Given User is on the page
+ When User clicks the Simple Alert button
+ Then Alert opens
+ And Read the text from it and print it
+ And Close the alert
+ And Read the result text
+
+ @ConfirmAlert
+ Scenario: Test for Confirm Alert
+ Given User is on the page
+ When User clicks the Confirmation Alert button
+ Then Alert opens
+ And Read the text from it and print it
+ And Close the alert with Cancel
+ And Read the result text
+
+ @PromptAlert
+ Scenario: Test for Prompt Alert
+ Given User is on the page
+ When User clicks the Prompt Alert button
+ Then Alert opens
+ And Read the text from it and print it
+ And Write a custom message in it
+ And Close the alert
+ And Read the result text
\ No newline at end of file
diff --git a/Cucumber/Activities/Activity4.feature b/Cucumber/Activities/Activity4.feature
new file mode 100644
index 0000000000..e724f90588
--- /dev/null
+++ b/Cucumber/Activities/Activity4.feature
@@ -0,0 +1,8 @@
+@Activity4
+Feature: Data driven test without Examples
+
+ Scenario: Testing with correct data from inputs
+ Given the user is on the login page
+ When the user enters "admin" and "password"
+ And clicks the submit button
+ Then get the confirmation text and verify message as "Welcome Back, Admin!"
\ No newline at end of file
diff --git a/Cucumber/Activities/Activity5.feature b/Cucumber/Activities/Activity5.feature
new file mode 100644
index 0000000000..22f75d5e6c
--- /dev/null
+++ b/Cucumber/Activities/Activity5.feature
@@ -0,0 +1,14 @@
+@Activity5
+Feature: Data driven test with Examples
+
+ Scenario Outline: Testing with Data from Scenario
+ Given the user is on the login page
+ When the user enters "" and ""
+ And clicks the submit button
+ Then get the confirmation text and verify message as "Invalid credentials"
+
+ Examples:
+ | Usernames | Passwords |
+ | admin | password123 |
+ | admin | wrongPassword |
+ | admin | password |
\ No newline at end of file
diff --git a/Cucumber/Activities/Activity6.feature b/Cucumber/Activities/Activity6.feature
new file mode 100644
index 0000000000..bde39784d3
--- /dev/null
+++ b/Cucumber/Activities/Activity6.feature
@@ -0,0 +1,10 @@
+@Activity6
+Feature: To test input with Datatables
+
+Scenario: Adding items to a to-do list
+ Given user is on the To-Do list page
+ When user adds the following tasks
+ | task1 |
+ | task2 |
+ | task3 |
+ Then they can see the task added to the list
\ No newline at end of file
diff --git a/Cucumber/Activities/AlertSteps.java b/Cucumber/Activities/AlertSteps.java
new file mode 100644
index 0000000000..c0a13a6ddb
--- /dev/null
+++ b/Cucumber/Activities/AlertSteps.java
@@ -0,0 +1,64 @@
+package StepDefination;
+
+import org.openqa.selenium.Alert;
+import org.openqa.selenium.By;
+
+import io.cucumber.java.en.And;
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+
+public class AlertSteps extends BaseClass {
+ Alert alert;
+ @Given("User is on the page")
+ public void openPage() {
+ // Open browser
+ driver.get("https://training-support.net/webelements/alerts");
+ }
+ @When("User clicks the Simple Alert button")
+ public void openSimpleAlert() {
+ driver.findElement(By.id("simple")).click();
+ }
+
+ @When("User clicks the Confirmation Alert button")
+ public void openConfirmAlert() {
+ driver.findElement(By.id("confirmation")).click();
+ }
+
+ @When("User clicks the Prompt Alert button")
+ public void openPromptAlert() {
+ driver.findElement(By.id("prompt")).click();
+ }
+
+ @Then("Alert opens")
+ public void switchFocus() {
+ alert = driver.switchTo().alert();
+ }
+
+ @And("Read the text from it and print it")
+ public void readAlert() {
+ System.out.println("Alert says: " + alert.getText());
+ }
+
+ @And("Write a custom message in it")
+ public void writeToPrompt() {
+ alert.sendKeys("Custom Message");
+ }
+
+ @And("Close the alert")
+ public void closeAlert() {
+ alert.accept();
+ }
+
+ @And("Close the alert with Cancel")
+ public void closeAlertWithCAncel() {
+ alert.dismiss();
+ }
+
+ @And("Read the result text")
+ public void readResultText() {
+ String message = driver.findElement(By.id("result")).getText();
+ System.out.println("Action performed: " + message);
+ }
+
+}
diff --git a/Cucumber/Activities/BaseClass.java b/Cucumber/Activities/BaseClass.java
new file mode 100644
index 0000000000..6f9c07d0b2
--- /dev/null
+++ b/Cucumber/Activities/BaseClass.java
@@ -0,0 +1,10 @@
+package StepDefination;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+public class BaseClass {
+
+ static WebDriver driver;
+ static WebDriverWait wait;
+}
diff --git a/Cucumber/Activities/DataTableExample.java b/Cucumber/Activities/DataTableExample.java
new file mode 100644
index 0000000000..d553c485ba
--- /dev/null
+++ b/Cucumber/Activities/DataTableExample.java
@@ -0,0 +1,35 @@
+package StepDefination;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import java.util.List;
+import io.cucumber.datatable.DataTable;
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+import org.openqa.selenium.By;
+
+public class DataTableExample extends BaseClass {
+
+ @Given("user is on the To-Do list page")
+ public void openPage() {
+ driver.get("https://training-support.net/webelements/todo-list");
+ assertEquals(driver.getTitle(), "Selenium: To-Do List");
+ }
+
+ @When("user adds the following tasks")
+ public void inputTasks(DataTable inputTasks) throws InterruptedException {
+ List tasks = inputTasks.asList();
+ System.out.println(tasks);
+
+ for(String task : tasks) {
+ driver.findElement(By.id("todo-input")).sendKeys(task);
+ driver.findElement(By.id("todo-add")).click();
+ Thread.sleep(2000);
+ }
+ }
+
+ @Then("they can see the task added to the list")
+ public void verifyResults() {
+ System.out.println("All tasks present");
+ }
+}
diff --git a/Cucumber/Activities/Fixtures.java b/Cucumber/Activities/Fixtures.java
new file mode 100644
index 0000000000..c97be23b36
--- /dev/null
+++ b/Cucumber/Activities/Fixtures.java
@@ -0,0 +1,24 @@
+package StepDefination;
+
+import java.time.Duration;
+
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import io.cucumber.java.AfterAll;
+import io.cucumber.java.BeforeAll;
+
+public class Fixtures extends BaseClass {
+ @BeforeAll
+ public static void setUp() {
+ // Initialize Firefox Driver
+ driver = new FirefoxDriver();
+ wait = new WebDriverWait(driver, Duration.ofSeconds(10));
+ }
+
+ @AfterAll
+ public static void tearDown() {
+ // Close the browser
+ driver.quit();
+ }
+}
\ No newline at end of file
diff --git a/Cucumber/Activities/LoginSteps.java b/Cucumber/Activities/LoginSteps.java
new file mode 100644
index 0000000000..4106c20e72
--- /dev/null
+++ b/Cucumber/Activities/LoginSteps.java
@@ -0,0 +1,71 @@
+package StepDefination;
+
+import org.junit.jupiter.api.Assertions;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+
+import io.cucumber.java.en.And;
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+
+public class LoginSteps extends BaseClass {
+ @Given("the user is on the login page")
+ public void openPage() {
+ // Open the login page
+ driver.get("https://training-support.net/webelements/login-form");
+ // Assert page title
+ Assertions.assertEquals("Selenium: Login Form", driver.getTitle());
+ }
+
+ @When("the user enters username and password")
+ public void enterCredentials() {
+ // Find username field and enter username
+ driver.findElement(By.id("username")).sendKeys("admin");
+ // Find password field and enter password
+ driver.findElement(By.id("password")).sendKeys("password");
+ }
+
+ @When("the user enters {string} and {string}")
+ public void enterCredentialsFromInputs(String username, String password) {
+ // Find the input fields
+ WebElement usernameField = driver.findElement(By.id("username"));
+ WebElement passwordField = driver.findElement(By.id("password"));
+ // Clear the fields
+ usernameField.clear();
+ passwordField.clear();
+ // Find username field and enter username
+ usernameField.sendKeys(username);
+ // Find password field and enter password
+ passwordField.sendKeys(password);
+ }
+
+ @And("clicks the submit button")
+ public void clickSubmit() {
+ // Find the submit button and click it
+ driver.findElement(By.xpath("//button[text()='Submit']")).click();
+ }
+
+ @Then("get the confirmation message and verify it")
+ public void confirmMessage() {
+ // Find the confirmation message
+ wait.until(ExpectedConditions.textToBePresentInElementLocated(By.cssSelector("h2.mt-5"), "Welcome"));
+ String message = driver.findElement(By.cssSelector("h2.mt-5")).getText();
+ // Assert message
+ Assertions.assertEquals("Welcome Back, Admin!", message);
+ }
+
+ @Then("get the confirmation text and verify message as {string}")
+ public void confirmMessageAsInput(String expectedMessage) {
+ // Find the message
+ String message = "NOT FOUND";
+ if (expectedMessage.contains("Invalid")) {
+ message = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("h2#subheading"))).getText();
+ } else {
+ message = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("h2.mt-5"))).getText();
+ }
+ // Assert message
+ Assertions.assertEquals(expectedMessage, message);
+ }
+}
\ No newline at end of file
diff --git a/Cucumber/Activities/TSHomePageSteps.java b/Cucumber/Activities/TSHomePageSteps.java
new file mode 100644
index 0000000000..09a6fca5e1
--- /dev/null
+++ b/Cucumber/Activities/TSHomePageSteps.java
@@ -0,0 +1,33 @@
+package StepDefination;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.openqa.selenium.By;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+
+public class TSHomePageSteps extends BaseClass {
+ @Given("the user is on TS homepage")
+ public void openTSHomepage() throws Throwable{
+ // Open the browser
+ driver.get("https://training-support.net");
+ assertEquals(driver.getTitle(), "Training Support");
+ }
+
+ @When("they click on the about us link")
+ public void clickButton() throws Throwable {
+ driver.findElement(By.linkText("About Us")).click();
+ }
+
+ @Then("they are redirected to the about us page")
+ public void aboutUsPage() throws Throwable {
+ wait.until(ExpectedConditions.titleIs("About Training Support"));
+ String pageHeading = driver.findElement(By.cssSelector("h1.text-center")).getText();
+
+ System.out.println("New page title is: " + pageHeading);
+ assertEquals(pageHeading, "About Us");
+ }
+}
\ No newline at end of file
diff --git a/Cucumber/Activities/TestRunner.java b/Cucumber/Activities/TestRunner.java
new file mode 100644
index 0000000000..906aa2c25f
--- /dev/null
+++ b/Cucumber/Activities/TestRunner.java
@@ -0,0 +1,28 @@
+package TestRunner;
+import org.junit.platform.suite.api.Suite;
+import org.junit.platform.suite.api.IncludeEngines;
+import org.junit.platform.suite.api.ConfigurationParameter;
+import org.junit.platform.suite.api.SelectClasspathResource;
+
+import io.cucumber.junit.platform.engine.Constants;
+
+@Suite
+@IncludeEngines("cucumber")
+@SelectClasspathResource("Features")
+@ConfigurationParameter(
+ key = Constants.GLUE_PROPERTY_NAME,
+ value = "StepDefination")
+@ConfigurationParameter(
+ key = Constants.FILTER_TAGS_PROPERTY_NAME,
+ value = "@Activity3")
+@ConfigurationParameter(
+ key = Constants.PLUGIN_PROPERTY_NAME,
+ value = "pretty, html:Reports/HTML_Report.html, junit:Reports/XML_Report.xml, json:Reports/JSON_Report.json"
+ )
+@ConfigurationParameter(
+ key = Constants.PLUGIN_PUBLISH_ENABLED_PROPERTY_NAME,
+ value = "true"
+ )
+public class TestRunner {
+
+}
diff --git a/Java/Activities/Activity1.java b/Java/Activities/Activity1.java
new file mode 100644
index 0000000000..b103304155
--- /dev/null
+++ b/Java/Activities/Activity1.java
@@ -0,0 +1,18 @@
+package activities;
+
+public class Activity1 {
+ public static void main(String[] args) {
+
+ Car carName = new Car();
+ carName.make = 2014;
+ carName.color = "Black";
+ carName.transmission = "Manual";
+
+ carName.displayCharacteristics();
+ carName.accelarate();
+ carName.brake();
+
+
+ }
+
+}
diff --git a/Java/Activities/Activity10.java b/Java/Activities/Activity10.java
new file mode 100644
index 0000000000..0e34b7a0fa
--- /dev/null
+++ b/Java/Activities/Activity10.java
@@ -0,0 +1,50 @@
+package activities;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class Activity10 {
+ public static void main(String[] args)
+ {
+ Set