Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Initiate Post Refresh Request

Include Page
REST V1 Authentication
REST V1 Authentication

Table of Contents
maxLevel2

Testing Tools

Currently there are 8 different testing tools that are supported out of box in Flex Deploy, but you can add your own testing tools as well.

Apache JMeter

...

HP Unified Functional Testing

There are no properties for HP Unified Functional Testing.

JUnit

There are no properties for JUnit.

Oracle Application Test Suite (OATS)

...

SoapUI

...

TestNG

There are no properties for TestNG. 

utPLSQL

There are no properties for utPLSQL.

Postman

...

GET

There are two implementations of GET. One will find a test instance with the given Id and return the JSON representation of the test instance. The other will find a list of test instances matching the parameters supplied to it.

GET (Using Id)

This GET service will find an test instance with the given Id and return the JSON representation of the object.

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/integrations/testinstance/{Id}

Request

...

Parameter

...

Required

...

Type

...

Description

...

Id

...

This is a URL parameter for the Id which is used to find and return an test instance with.

...

Response Codes

...

HTTP Code

...

Description

...

Example

If we had a test instance in our database with an Id of 11101 and had the following attributes

Code Block
languagejs
themeEclipse
titleTest Instance - 11101
{
   "isActive": true,
	"properties":    [
            {
         "propertyName": "FDJM_JMETER_HOME_DIR",
         "propertyValue": "Home Directory Patch 1",
		 "credentialId": null
      },
            {
         "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
         "propertyValue": "Properties Patch 1",
		 "credentialId": null
      }
   ],
   "description": "This is Test Instance 1",
   "instanceName": "Test Instance 1",
   "instanceCode": "TESTINST1",
   "instanceId": 11101,
   "environments": [],
   "testingToolId": 10001
}
}

When we run a GET request at the following URL

http://host:port/flexdeploy/rest/v1/topology/integrations/testinstance/11101

The GET request would return the  following JSON test instance object

Code Block
languagejs
themeEclipse
titleTest Instance GET Return JSON
{
   "isActive": true,
	"properties":    [
            {
         "propertyName": "FDJM_JMETER_HOME_DIR",
         "propertyValue": "Home Directory 1",
		 "credentialId": null
      },
            {
         "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
         "propertyValue": "Properties 1",
		 "credentialId": null
      }
   ],
   "description": "This is Test Instance 1",
   "instanceName": "Test Instance 1",
   "instanceCode": "TESTINST1",
   "instanceId": 11101,
   "environments": [],
   "testingToolId": 10001
}
}

GET (Using Query Parameters)

This GET service will find an test instance by querying based on a code, name, and/or tool name and return the JSON representations of the objects. If no query parameters are given this request will return the entire list of test instances.

...

titleAPI URLs

http://host:port/flexdeploy/rest/v1/topology/integrations/testinstance?

Append the following character sequences to the above URL to specify Query parameters.
Use '&' between successive query parameters: 

instanceCode={code}

instanceName={name}

testingTool={tool}

Examples:

To search by code only:

Post refresh requests can be initiated through this API using the POST service.

This POST service will perform the same action found on the Post Refresh requests form off of the Environment Instance page. It will initiate a post refresh request to build and deploy any projects in order to refresh an environment to its original state after that instance has been cloned from another environment. The service will return a post refresh request json object..

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/integrationsenvironmentinstance/testinstance?instanceCode={code}

To search by name only:

http://host:port/flexdeploy/rest/v1/topology/integrations/testinstance?instanceName={name}

To search by tool and name:

http://host:port/flexdeploy/rest/v1/topology/testinstance?testingTool={tool}&instanceName={name}

Tip

The query parameters are not case sensitive. Searching by instanceCode=instanceCode is the same as searching by instanceCode=INSTANCECODE.

environmentId}/{instanceId}/initiatepostrefresh

Request

Request

Parameters
Required
Type
Description
isActiveYesBooleanThis is the isActive Boolean which will be given to the created test instancedescriptionNoStringThis is the description which will be given to the created test instanceenvironmentsNoList<Long>This is list of environment Ids which will be associated to the created test instanceinstanceCodeYesStringThis is the code which will be given to the created test instancetestingToolIdYesLongThis is the Id for the testing tool that will be given to the created test instanceinstanceNameYesStringThis is the name which will be given to the created test instancepropertiesYes/NoList<PropertyValue>This is a list of the Properties configured with the test instance. Include PageREST V1 Test Instance ResponseREST V1 Test Instance Response

Response Codes

HTTP Code
Description
201Instance was created successfully400Bad request401Authentication failure403Authorization failure (no access to resource)500Unexpected internal server error

Example

If the POST  request receives the following JSON test instance object,

Code Block
themeEclipse
titlePOST JSON
{
     "isActive": true,
     "properties": [
          {
          "propertyName": "FDJM_JMETER_HOME_DIR",
          "propertyValue": "Home Directory 1",
		  "credentialId": null
          },
          {
          "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
          "propertyValue": "Properties File 1",
		  "credentialId": null
          }
     ],
     "description": "This is J Meter Post 1",
     "environments": [],
     "testingToolId": 10001,
     "instanceCode": "JMETERPOST1",
     "instanceName": "J Meter Post 1"
}

The following test instance object will then be created as a new row in the database.

Code Block
themeEclipse
titleTest Instance Post Return JSON
{
     "isActive": true,
     "properties": [
          {
          "propertyName": "FDJM_JMETER_HOME_DIR",
          "propertyValue": "Home Directory 1",
		  "credentialId": null
          },
          {
          "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
          "propertyValue": "Properties File 1",
		  "credentialId": null
          }
     ],
     "description": "This is J Meter Post 1",
     "environments": [],
     "testingToolId": 10001,
     "instanceId": 11101,
     "instanceCode": "JMETERPOST1",
     "instanceName": "J Meter Post 1"
}

PUT

This PUT service will update all attributes of a test instance with the given Id based on the attributes of a JSON object parameters.

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/integrations/testinstance/{Id}

Request

Parameters
Required
Type
Description
IdYesURLThis is a URL parameter for the Id which is used to find and return an test instance with.descriptionNoStringThis is the description that the test instance's description will be updated to.environmentsNoList<Long>

This is the list of Environment Ids that will be assigned to the test instance that is being updated. If currently associated environment(s) are not in input list those environments will be unassigned from this instance.

i.e. at the end of successful request, test instance will have mapped environments matching to input request.

isActiveYesBooleanThis is the isActive Boolean that the test instance's isActive Boolean will be updated to.instanceCodeYesStringThis is the code that the test instance's code will be updated to.testingToolIdYesLongThis is the testingToolId that the test instance already has. If this Id is different than what the current testingToolId of the test instance an exception will be thrown.propertiesYes/NoList<PropertyPojo>This is the list of Properties that will be updated in the test instance. The JSON object must have all of the properties of the test instance's testing tool. Value for properties not included in input request will be cleared.instanceNameYesStringThis is the name that the test instance's name will be updated to. Include PageREST V1 Test Instance ResponseREST V1 Test Instance Response
Parameter
Required
Type
Description

instanceCode

NoQuery - String

Instance code, equals ignore case

Equals ignore case search

instanceNameNoQuery - String

Instance Name, contains ignore case

Contains ignore case search

testingToolNoQuery - String

Testing tool name, equals ignore case

Equals ignore case search

Include PageREST V1 Test Instance ResponseREST V1 Test Instance Response

Response Codes

HTTP Code
Description
200Search successful and results returned400Bad request401Authentication failure403Authorization failure (no access to resource)500Unexpected internal server error

Example

If we had a test instance in our database with an Id of 11101 and had the following attributes

Code Block
languagejs
themeEclipse
titleTest Instance - 11101
{
   "isActive": true,
	"properties":    [
            {
         "propertyName": "FDJM_JMETER_HOME_DIR",
         "propertyValue": "Home Directory Patch 1",
		 "credentialId": null
      },
            {
         "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
         "propertyValue": "Properties Patch 1",
		 "credentialId": null
      }
   ],
   "description": "This is Test Instance 1",
   "instanceName": "Test Instance 1",
   "instanceCode": "TESTINST1",
   "instanceId": 11101,
   "environments": [],
   "testingToolId": 10001
}
}

When we run a GET request at the following URL

http://host:port/flexdeploy/rest/v1/topology/integrations/testinstance?code=TESTINST1&name=Test%20Instance%201

The GET request would return the  following JSON test instance object

Code Block
languagejs
themeEclipse
titleTest Instance GET Return JSON
{
   "isActive": true,
	"properties":    [
            {
         "propertyName": "FDJM_JMETER_HOME_DIR",
         "propertyValue": "Home Directory 1",
		 "credentialId": null
      },
            {
         "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
         "propertyValue": "Properties 1",
		 "credentialId": null
      }
   ],
   "description": "This is Test Instance 1",
   "instanceName": "Test Instance 1",
   "instanceCode": "TESTINST1",
   "instanceId": 11101,
   "environments": [],
   "testingToolId": 10001
}
}

POST

This POST service will create a new test instance with the same attributes as the given JSON object.

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/integrations/testinstance

environmentId

YesURL

This is the target environment Id. This is the environment that will be refreshed through builds and deploys.

instanceIdYesURLThis is the instance Id for which the two environments are associated. This instance must be associated with both environments.
refreshEnvironmentIdYesLongThe source environment Id. This is the environment that the target environment will be refreshed from. This is the same environment that would be selected in the refreshed from environment drop down on the post refresh requests screen
requestedStartDateNoString

The time when the deployment will be started. Format should yyyy-MM-dd'T'HH:mm:ssXXX.

For example, 2019-03-16T21:17:52-06:00

Response

Parameter
Type
Description

instanceId

Long

The instance Id that was associated with both the target environment and refresh from environment.

requestedStartTimeString

 The requested start time that was given.

targetEnvironmentIdLong

The Id for the target environment.

postRefreshIdLong

The post refresh request Id.

refreshEnvIdLongThe Id for the refresh from environment.

Response Codes

HTTP Code
Description
200Instance was found and updated
201Post refresh request initiated successfully
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404
Instance
Environment instance not found
500Unexpected internal server error

Example

If we had a test instance in our database with an Id of 11101 and had the following attributes

Code Block
themeEclipse
titleTest Instance PUT JSON
{
     "isActive": true,
     "properties": [
          {
          "propertyName": "FDJM_JMETER_HOME_DIR",
          "propertyValue": "Home Directory 1",
		  "credentialId": null
          },
          {
          "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
          "propertyValue": "Properties File 1",
		  "credentialId": null
          }
     ],
     "description": "This is J Meter Post 1",
     "environments": [],
     "testingToolId": 10001,
     "instanceId": 11101,
     "instanceCode": "JMETERPOST1",
     "instanceName": "J Meter Post 1"
}

When we run a PUT request at the following URL

http://host:port/flexdeploy/rest/v1/topology/integrations/testinstance/11101

And the PUT request recieves the following JSON test instace object,

Code Block
themeEclipse
titleTest Instance PUT Receive JSON
{
     "isActive": true,
     "properties": [
          {
          "propertyName": "FDJM_JMETER_HOME_DIR",
          "propertyValue": "Home Directory Put 1",
		  "credentialId": null
          },
          {
          "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
          "propertyValue": "Properties File Put 1",
		  "credentialId": null
          }
     ],
     "description": "This is J Meter Put 1",
     "environments": [],
     "testingToolId": 10001,
     "instanceCode": "JMETERPUT1",
     "instanceName": "J Meter Put 1"
}

The PUT request would then update the test instance with Id 11101 and return the  following JSON test instance object

Code Block
themeEclipse
titleTest Instance PUT Return JSON
{
     "isActive": true,
     "properties": [
          {
          "propertyName": "FDJM_JMETER_HOME_DIR",
          "propertyValue": "Home Directory Put 1",
		  "credentialId": null
          },
          {
          "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
          "propertyValue": "Properties File Put 1",
		  "credentialId": null
          }
     ],
     "description": "This is J Meter Put 1",
     "environments": [],
     "testingToolId": 10001,
     "instanceId": 21807,
     "instanceCode": "JMETERPUT1",
     "instanceName": "J Meter Put 1"
}

PATCH

This PATCH service will update an existing test instance with the information passed through a JSON object. If an attribute of the JSON is null it will not be updated in the test instance.

Info
titleEnvironment Adding Functionality

By having an environment in the JSON request the environment will be added and no environments will be unassigned.

...

We can post refresh an environment with Id 10004 from an environment with Id 12345 with the following request. Both environments would be associated with an instance with Id 11101.

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/environmentinstance/

...

...

...

Request

Parameters
Required
Type
Description
IdYesURLThis is a URL parameter for the Id which is used to find and return an test instance with.descriptionNoStringThis is the description that the test instance's description will be updated to.environmentsNoList<Long>This is the list of Environment Ids that will be assigned to the test instance that is being updated. If environments already associated with test instance are not part of input list they will not be unassigned. i.e. only new environment assignments are done.
isActiveNoBooleanThis is the isActive boolean that the test instance's isActive boolean will be updated to.instanceCodeNoStringThis is the code that the test instance's code will be update to.testingToolIdNoLongThis is the testingToolId that the test instance already has. If this Id is different than what the current testingToolId of the test instance an exception will be thrown.propertiesNoList<PropertyPojo>This is the list of Properties that will be updated in the test instance. The JSON object doesn't need to have all of the properties of the test instance's testing tool. Values provided in input list are the only ones updated.instanceNameNoStringThis is the name that the test instance's name will be updated to.

Response Codes

HTTP Code
Description
200Test Instance was found and patched400Bad request401Authentication failure403Authorization failure (no access to resource)404Test Instance not found500Unexpected internal server error

Example

If we had an test instance in our database with an Id of 11101 and had the following attributes

Code Block

initiatepostrefresh

In response we will receive a post refresh request.

{      "isActive": true,      "properties": [          
Code Block
languagejs
themeEclipse
titleTest Instance PATCH JSON
GET Return JSON
 {
          "propertyNameinstanceId": "FDJM_JMETER_HOME_DIR"22223,
          "propertyValuerequestedStartTime": "HomeFri DirectoryDec Put 1",
		  "credentialId": null
          },
          {
          "propertyName": "FDJM_JMETER_PROPERTIES_FILE",
          "propertyValue": "Properties File Put 1",
		  "credentialId": null
          }
     ],
     "description": "This is J Meter Put 1",
     "environments": [],
     "testingToolId": 10001,
     "instanceId": 21807,
     "instanceCode": "JMETERPUT1",
     "instanceName": "J Meter Put 1"
}

When we run a PATCH request at the following URL

http://host:port/flexdeploy/rest/v1/topology/integrations/testinstance/11101

And the PATCH request receives the following JSON test instance object,

code
13 11:01:32 CST 2019",
   "targetEnvironmentId": 18802,
   "postRefreshId": 54321,
   "refreshEnvId": 22331
}

Code Block
languagejs
themeEclipse
titleTest Instance Patch Receive JSON
{
     "isActive": null,
     "properties": [
          {
          "propertyName": "FDJM_JMETER_HOME_DIR",
          "propertyValue": "Home Directory Patch 1",
		  "credentialId": null
          },
     ],
     "description": "This is J Meter Patch 1",
     "environments": null,
     "testingToolId": 10001,
     "instanceCode": "JMETERPATCH1",
     "instanceName": null
}

The PUT request would then update the test instance with Id 11101 and return the  following JSON test instance object

{      "isActive": true,      "properties": [           {           "propertyName": "FDJM_JMETER_HOME_DIR",           "propertyValue": "Home Directory Patch 1", "credentialId": null           },           {           "propertyName": "FDJM_JMETER_PROPERTIES_FILE",           "propertyValue": "Properties File Put 1", "credentialId": null           }      ],      "description": "This is J Meter Patch 1",      "environments": [],      "testingToolId": 10001,      "instanceId": 21807,      "instanceCode": "JMETERPATCH1",      "instanceName": "J Meter Put 1"
Code Block
themeEclipse
titleTest Instance PATCH Return JSON
- 11101
{
	"refreshEnvironmentId": 12345
}