
- Overview
- Resources
- API summary
- List activities
- List test definitions
- Create a new test definition
- Get a test definition
- Modify a test definition
- Remove a test definition
- Clone a test definition
- List test cases
- Create a test case
- Get a test case
- Update a test case
- Remove a test case
- Clone a test case
- Submit a test run
- Get test run
- List executions
- Get an execution
- Get context
- List differences
- Update differences
- Create notes for a set of diffs
- Get a difference
- Get the raw request and response
- List user configurations
- Data
- Errors
Test Center API v1
Test your configuration changes for unexpected behavior before activating.
Learn more:
Download this API’s RAML and JSON schema descriptors.
Overview
Test Center is a comparative testing tool that tests configuration changes before activation to ensure they are not behaving in an unexpected manner. Testing for safety, not correctness, it helps prevent issues caused by misconfiguration and insufficient testing. It increases confidence in the safety of your configuration changes.
Who should use this API
Use this API as part of an automated system to test and compare the behavior of your production websites before activating your changed configurations. You can also use this API to:
manage test definitions; create, edit, and remove test definitions and test cases
manage and view test results; approve or flag the differences highlighted in the test results
view user activity within your organization
Get started
To configure this API for the first time:
Review Get Started with APIs for details on how to set up client tokens to access any Akamai API. These tokens appear as custom hostnames that look like this:
https://akzz-XXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX.luna.akamaiapis.net
.To enable this API, choose the API service named Test Center, and set the access level to READ-WRITE.
Rate and resource limiting
Test Center imposes the following rate limits:
60 requests can be made per minute. The limit resets at the start of the next minute.
10 test runs can be run per day, per hostname. The limit resets after one calendar day. If a test run has multiple hostnames, but any one of the hostnames meets the rate limit, the whole test run fails.
Test Center limits resources in following ways:
Maximum of 5 test definitions per test run.
Maximum of 5 test definitions per hostname.
Maximum of 15 test cases per test definition.
If you exceed a limit, one of the following errors is shown:
test.definitions.per.test.run.max.limit.exceeded
test.definitions.per.hostname.max.limit.exceeded
test.cases.per.test.definition.max.limit.exceeded
Resources
This section provides details on the API’s various operations.
API summary
Download the RAML descriptors for this API.
Operation | Method | Endpoint |
---|---|---|
Activities | ||
List activities | POST | /test-management/ |
Test Definitions | ||
List test definitions | GET | /test-management/ |
Create a new test definition | POST | /test-management/ |
Get a test definition | GET | /test-management/ |
Modify a test definition | PUT | /test-management/ |
Remove a test definition | POST | /test-management/ |
Clone a test definition | POST | /test-management/ |
List test cases | GET | /test-management/ |
Create a test case | POST | /test-management/ |
Get a test case | GET | /test-management/ |
Update a test case | PUT | /test-management/ |
Remove a test case | POST | /test-management/ |
Clone a test case | POST | /test-management/ |
Test Runs | ||
Submit a test run | POST | /test-management/ |
Get test run | GET | /test-management/ |
Test Definition Executions | ||
List executions | GET | /test-management/ |
Get an execution | GET | /test-management/ |
Get context | GET | /test-management/ |
List differences | GET | /test-management/ |
Update differences | PUT | /test-management/ |
Create notes for a set of diffs | POST | /test-management/ |
Get a difference | GET | /test-management/ |
Get the raw request and response | GET | /test-management/ |
Common Resources | ||
List user configurations | GET | /test-management/ |
List activities
Get the list of activities for the given set of filters.
POST /test-management/
Content-Type: application/json
Object type: Activities
Download schema: post-activities-request.json
Request body:
{
"filters": [
{
"field": "activityResource",
"value": "test-definition",
"ids": [
"738",
"495",
"740"
]
},
{
"field": "activityResource",
"value": "test-case",
"ids": [
"1855",
"1866"
]
},
{
"field": "activityResource",
"value": "test-run",
"ids": [
"133"
]
},
{
"field": "activityResource",
"value": "test-difference",
"ids": [
"e52a1b76-d33d-11e7-9296-cec278b6b50a"
]
},
{
"field": "activityResource",
"value": "test-difference-note",
"ids": [
"fe59f1e6-0022-4119-b05b-71e33c2a0ee2"
]
}
]
}
Status 200
application/json
Object type: Activities
Download schema: post-activities-response.json
Response body:
[
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-definition",
"activityAction": "create",
"activityAdditionalInfo": {
"source-test-definition-id": null,
"source-test-definition-name": null,
"target-test-definition-id": 738,
"target-test-definition-name": "Weather Test"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-definition",
"activityAction": "edit",
"activityAdditionalInfo": {
"source-test-definition-id": null,
"source-test-definition-name": null,
"target-test-definition-id": 738,
"target-test-definition-name": "Weather Test (edited)"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-definition",
"activityAction": "run",
"activityAdditionalInfo": {
"source-test-definition-id": null,
"source-test-definition-name": null,
"target-test-definition-id": 738,
"target-test-definition-name": "Weather Test"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-definition",
"activityAction": "clone",
"activityAdditionalInfo": {
"source-test-definition-id": 738,
"source-test-definition-name": "Weather Test",
"target-test-definition-id": 3753,
"target-test-definition-name": "Copy of Weather Test"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-definition",
"activityAction": "delete",
"activityAdditionalInfo": {
"source-test-definition-id": null,
"source-test-definition-name": null,
"target-test-definition-id": 738,
"target-test-definition-name": "Weather Test (edited)"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-case",
"activityAction": "create",
"activityAdditionalInfo": {
"source-test-definition-id": null,
"source-test-definition-name": null,
"target-test-definition-id": 738,
"target-test-definition-name": "Weather Test",
"source-test-case-id": null,
"source-test-case-name": null,
"target-test-case-id": 1855,
"target-test-case-name": "Base Page"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-case",
"activityAction": "edit",
"activityAdditionalInfo": {
"source-test-definition-id": null,
"source-test-definition-name": null,
"target-test-definition-id": 738,
"target-test-definition-name": "Weather Test",
"source-test-case-id": null,
"source-test-case-name": null,
"target-test-case-id": 1855,
"target-test-case-name": "Base Page (edited)"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-case",
"activityAction": "delete",
"activityAdditionalInfo": {
"source-test-definition-id": null,
"source-test-definition-name": null,
"target-test-definition-id": 738,
"target-test-definition-name": "Weather Test",
"source-test-case-id": null,
"source-test-case-name": null,
"target-test-case-id": 1855,
"target-test-case-name": "Base Page"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-case",
"activityAction": "clone",
"activityAdditionalInfo": {
"source-test-definition-id": 738,
"source-test-definition-name": "Weather Test",
"target-test-definition-id": 738,
"target-test-definition-name": "Weather Test",
"source-test-case-id": 1855,
"source-test-case-name": "Base Page",
"target-test-case-id": 4621,
"target-test-case-name": "Copy of Base Page"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-run",
"activityAction": "start",
"activityAdditionalInfo": {
"target-test-definition-id": 738,
"target-test-definition-name": "Weather Test",
"test-definition-execution-id": 148,
"note": "A sample note"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-difference",
"activityAction": "accept",
"activityAdditionalInfo": {
"test-definition-execution-id": 148,
"test-difference-id": "e52a1b76-d33d-11e7-9296-cec278b6b50a"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-difference",
"activityAction": "unaccept",
"activityAdditionalInfo": {
"test-definition-execution-id": 148,
"test-difference-id": "eece8d88-d33d-11e7-9296-cec278b6b50a"
}
},
{
"createdDate": "2017-08-17T01:25:26+0000",
"createdBy": "atctestuser",
"activityResource": "test-difference-note",
"activityAction": "create",
"activityAdditionalInfo": {
"test-definition-execution-id": 148,
"test-difference-id": "eece8d88-d33d-11e7-9296-cec278b6b50a",
"note": "Confirming the diff is expected."
}
}
]
List test definitions
Get all active test definitions available
for the organization that the logged-in account belongs to. The
response is an array of TestDefinition objects, each keyed by
testDefinitionId
.
GET /test-management/
Status 200
application/json
Object type: TestDefinition
Download schema: get-test-definitions-response.json
Response body:
[
{
"testDefinitionId": 738,
"hostname": "www.example-weather.com",
"testDefinitionName": "Weather Test",
"testDefinitionDescription": "Testing weather prefetch configurations",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:21+0000",
"modifiedDate": "2018-03-16T10:46:22+0000",
"ipVersions": [
"ipv6"
]
},
{
"testDefinitionId": 495,
"hostname": "www.example-weather-config-1.com",
"testDefinitionName": "Weather Test Config 1",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-11T17:45:27+0000",
"modifiedDate": "2018-03-22T10:56:45+0000",
"ipVersions": [
"ipv4"
]
},
{
"testDefinitionId": 740,
"hostname": "www.example-weather-config-2.com",
"testDefinitionName": "Weather Test Config 2",
"testDefinitionDescription": "Testing weather prefetch configurations (config 2)",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:21+0000",
"modifiedDate": "2018-03-16T10:46:22+0000",
"ipVersions": [
"ipv4",
"ipv6"
]
}
]
Create a new test definition
Provide the hostname that your configuration change will affect. The hostname must be configured for Akamai delivery in Property Manager and must not use Instant Config, Slot Matching, or Zone Apex Mapping. You cannot test a hostname as it behaves on ChinaCDN. Once you specify a hostname, you cannot change it.
POST /test-management/
Content-Type: application/json
Object type: TestDefinition
Download schema: create-test-definition-request.json
Request body:
{
"hostname": "www.example-weather.com",
"testDefinitionName": "Weather Test",
"testDefinitionDescription": "Testing weather prefetch configurations",
"ipVersions": [
"ipv6"
]
}
Status 201
application/json
Object type: TestDefinition
Download schema: get-test-definition-response.json
Response body:
{
"testDefinitionId": 738,
"hostname": "www.example-weather.com",
"testDefinitionName": "Weather Test",
"testDefinitionDescription": "Testing weather prefetch configurations",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:21+0000",
"modifiedDate": "2018-03-16T10:46:22+0000",
"status": "active",
"ipVersions": [
"ipv6"
]
}
Create a TestDefinition object.
Make a POST request to
/test-management/
.v1/ test-definitions
Get a test definition
Get a specific test definition’s details, including its status. The response for this operation does not include information about the test cases that belong to this test definition. To see that information, run the List test cases operation.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
Status 200
application/json
Object type: TestDefinition
Download schema: get-test-definition-response.json
Response body:
{
"testDefinitionId": 738,
"hostname": "www.example-weather.com",
"testDefinitionName": "Weather Test",
"testDefinitionDescription": "Testing weather prefetch configurations",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:21+0000",
"modifiedDate": "2018-03-16T10:46:22+0000",
"status": "active",
"ipVersions": [
"ipv6"
]
}
Run the List test definitions operation and retrieve the
testdefinitionId
.Make a GET request to
/test-management/
.v1/ test-definitions/ {testDefinitionId} The response is a TestDefinition object.
Modify a test definition
Modify a specific test definition with the exception of its hostname.
PUT /test-management/
Sample: /test-management/
Content-Type: application/json
Object type: TestDefinition
Download schema: update-test-definition-request.json
Request body:
{
"testDefinitionId": 738,
"hostname": "www.example-weather.com",
"testDefinitionName": "Weather Test (edited)",
"testDefinitionDescription": "Testing weather prefetch configurations (edited)",
"ipVersions": [
"ipv6"
]
}
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
Status 200
application/json
Object type: TestDefinition
Download schema: get-test-definition-response.json
Response body:
{
"testDefinitionId": 738,
"hostname": "www.example-weather.com",
"testDefinitionName": "Weather Test (edited)",
"testDefinitionDescription": "Testing weather prefetch configurations (edited)",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:21+0000",
"modifiedDate": "2018-04-10T06:45:58+0000",
"ipVersions": [
"ipv6"
]
}
Run the List test definitions operation and retrieve the
testDefinitionId
.Modify the TestDefinition object.
Make a PUT request to
/test-management/
.v1/ test-definitions/ {testDefinitionId} The response reflects the modified TestDefinition object.
Remove a test definition
Remove a test definition
identified by testDefinitionId
. When you remove a test
definition and make a GET request for its ID, its status is
inactive. The removed test definition remains in the system
for 30 days from the date of the removal. There is no way to
revive a removed test definition.
POST /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
Status 204
Clone a test definition
The testDefinitionId
that you
enter in the URL parameter is that of the test definition
you want to clone. The other information specifies the
configuration for the cloned test definition. Cloning the
test definition also clones the corresponding test cases.
POST /test-management/
Sample: /test-management/
Content-Type: application/json
Object type: TestDefinition
Download schema: clone-test-definition-request.json
Request body:
{
"testDefinitionId": 738,
"hostname": "www.example-weather-config-1.com",
"testDefinitionName": "Copy of Weather Test",
"testDefinitionDescription": "Creating a copy of Weather Test",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:21+0000",
"modifiedDate": "2018-04-10T06:45:58+0000"
}
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
Status 201
application/json
Object type: TestDefinition
Download schema: get-test-definition-response.json
Response body:
{
"testDefinitionId": 3753,
"hostname": "www.example-weather-config-1.com",
"testDefinitionName": "Copy of Weather Test",
"testDefinitionDescription": "Creating a copy of Weather Test",
"createdBy": "atctestuser",
"createdDate": "2018-04-10T06:47:16+0000",
"ipVersions": [
"ipv6"
]
}
Run the List test definitions operation and retrieve the
testDefinitionId
.Optionally, specify any properties that you want to override that belong to the
testDefinitionId
you are cloning.POST the object to
/test-management/
.v1/ test-definitions/ {testDefinitionId}/ clone The response reflects the modified TestDefinition object.
List test cases
List all test cases that belong to a specific test definition.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
Status 200
application/json
Object type: TestCase
Download schema: get-test-cases-response.json
Response body:
[
{
"testCaseId": 1855,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Base Page",
"testCaseDescription": "Base Page Test",
"runOrder": 1,
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:23+0000",
"modifiedDate": "2018-03-16T10:46:28+0000",
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE",
"RUM_IMPL_PM_GROUPID",
"RUM_IMPL_PM_GROUPNAME",
"RUM_IMPL_PM_PRODUCT",
"RUM_DEBUG"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
}
},
"requestHeaders": [
{
"headerName": "Max-Forwards",
"headerAction": "add",
"headerValues": "10"
}
]
},
{
"testCaseId": 1866,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/accounts",
"testCaseName": "Accounts page",
"testCaseDescription": "Accounts page test",
"runOrder": 2,
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:24+0000",
"modifiedDate": "2018-03-16T10:46:30+0000",
"requestHeaders": [],
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
}
}
}
]
Run the List test definitions operation and retrieve the
testdefinitionId
.Make a GET request to
/test-management/
.v1/ test-definitions/ {testDefinitionId}/ test-cases The response is an array of TestCase objects.
Create a test case
Add a test case to a test definition. The hostname of the URL you provide for the test case must be the same as the hostname for the test definition that the test case belongs to. Do not use this to test authenticated content.
POST /test-management/
Sample: /test-management/
Content-Type: application/json
Object type: TestCase
Download schema: create-test-case-request.json
Request body:
{
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Base Page",
"testCaseDescription": "Base Page Test",
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE",
"RUM_IMPL_PM_GROUPID",
"RUM_IMPL_PM_GROUPNAME",
"RUM_IMPL_PM_PRODUCT",
"RUM_DEBUG"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
}
},
"requestHeaders": [
{
"headerName": "Max-Forwards",
"headerAction": "add",
"headerValues": "10"
}
]
}
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
Status 201
application/json
Object type: TestCase
Download schema: get-test-case-response.json
Response body:
{
"testCaseId": 1855,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Base Page",
"testCaseDescription": "Base Page Test",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:23+0000",
"modifiedDate": "2018-03-16T10:46:28+0000",
"runOrder": 1,
"status": "active",
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE",
"RUM_IMPL_PM_GROUPID",
"RUM_IMPL_PM_GROUPNAME",
"RUM_IMPL_PM_PRODUCT",
"RUM_DEBUG"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
}
},
"requestHeaders": [
{
"headerName": "Max-Forwards",
"headerAction": "add",
"headerValues": "10"
}
]
}
Run the List test definitions operation and retrieve the
testDefinitionId
.Format a TestCase object.
POST the object to
/test-management/
.v1/ test-definitions/ {testDefinitionId}/ test-cases The response is a TestCase object.
Get a test case
Get a specific test case’s details including its request headers and comparison settings.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
testCaseId |
Integer | 1855 |
Unique identifier for test case. |
Status 200
application/json
Object type: TestCase
Download schema: get-test-case-response.json
Response body:
{
"testCaseId": 1855,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Base Page",
"testCaseDescription": "Base Page Test",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:23+0000",
"modifiedDate": "2018-03-16T10:46:28+0000",
"runOrder": 1,
"status": "active",
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE",
"RUM_IMPL_PM_GROUPID",
"RUM_IMPL_PM_GROUPNAME",
"RUM_IMPL_PM_PRODUCT",
"RUM_DEBUG"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
}
},
"requestHeaders": [
{
"headerName": "Max-Forwards",
"headerAction": "add",
"headerValues": "10"
}
]
}
Run the List test definitions operation and retrieve the
testdefinitionId
.Run the List test cases operation and retrieve the
testCaseId
.Make a GET request to
/test-management/
.v1/ test-definitions/ {testDefinitionId}/ test-cases/ {testCaseId} The response is a TestCase object.
Update a test case
Modify a specific test case. You
cannot modify the testCaseId
or the testDefinitionId
.
PUT /test-management/
Sample: /test-management/
Content-Type: application/json
Object type: TestCase
Download schema: update-test-case-request.json
Request body:
{
"testCaseId": 1855,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Base Page (edited)",
"testCaseDescription": "Base Page Test (edited)",
"requestHeaders": [],
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server"
]
},
"cpcode": {
"isEnabled": false,
"includeEmbeddedObjects": false
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": false,
"includeEmbeddedObjects": false
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE",
"RUM_IMPL_PM_GROUPID",
"RUM_IMPL_PM_GROUPNAME",
"RUM_IMPL_PM_PRODUCT",
"RUM_DEBUG"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
}
}
}
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
testCaseId |
Integer | 1855 |
Unique identifier for test case. |
Status 200
application/json
Object type: TestCase
Download schema: get-test-case-response.json
Response body:
{
"testCaseId": 1855,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Base Page (edited)",
"testCaseDescription": "Base Page Test (edited)",
"createdBy": "atctestuser",
"modifiedBy": "aanuj",
"createdDate": "2018-03-16T10:46:23+0000",
"modifiedDate": "2018-04-10T06:32:31+0000",
"runOrder": 1,
"requestHeaders": [],
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server"
]
},
"cpcode": {
"isEnabled": false,
"includeEmbeddedObjects": false
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": false,
"includeEmbeddedObjects": false
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE",
"RUM_IMPL_PM_GROUPID",
"RUM_IMPL_PM_GROUPNAME",
"RUM_IMPL_PM_PRODUCT",
"RUM_DEBUG"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
}
}
}
Run the List test definitions operation and retrieve the
testDefinitionId
.Run the List test cases operation and retrieve the
testCaseId
.Format a TestCase object.
Make a PUT request to
/test-management/
.v1/ test-definitions/ {testDefinitionId}/ test-cases/ {testCaseId} The response is a TestCase object.
Remove a test case
Remove a test case identified by
testCaseId
from its test definition. When you remove
a test case and make a GET request for it, its status is
inactive. The removed test case remains in the system
for 30 days from the date of the removal. After that,
you receive a 404 error if you try to retrieve it.
POST /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
testCaseId |
Integer | 1855 |
Unique identifier for test case. |
Status 204
Clone a test case
The testCaseId
that you enter in
the URL parameter is that of the test case you want to
clone. The other information specifies the configuration
for the cloned test case.
POST /test-management/
Sample: /test-management/
Content-Type: application/json
Object type: TestCase
Download schema: clone-test-case-request.json
Request body:
{
"testCaseId": 1855,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Copy of Base Page",
"testCaseDescription": "Copy of Base Page Test",
"requestHeaders": [],
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
}
}
}
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionId |
Integer | 738 |
Unique identifier for test definition. |
testCaseId |
Integer | 1855 |
Unique identifier for test case. |
Status 201
application/json
Object type: TestCase
Download schema: get-test-case-response.json
Response body:
{
"testCaseId": 4621,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Copy of Base Page",
"testCaseDescription": "Copy of Base Page Test",
"createdBy": "atctestuser",
"createdDate": "2018-04-10T06:35:29+0000",
"requestHeaders": [],
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
}
}
}
Run the List test definitions operation and retrieve the
testDefinitionId
.Run the List test cases operation and get the
testCaseId
of the test case you want to clone.Optionally, specify any properties that you want to override that belong to the
testCaseId
you are cloning.POST the object to
/test-management/
.v1/ test-definitions/ {testDefinitionId}/ test-cases/ {testCaseId}/ clone The response reflects the modified TestCase object.
Submit a test run
Start a test run containing one or more test definitions and their corresponding test cases.
POST /test-management/
Content-Type: application/json
Object type: TestRun
Download schema: create-test-run-request.json
Request body:
{
"testDefinitionExecutions": [
{
"testDefinitionId": 738,
"targetHostname": "www.example-weather-production.com",
"targetEnvironment": "production",
"note": "A sample note",
"ipVersions": [
"ipv6"
],
"testCaseIds": [
1855
]
},
{
"testDefinitionId": 740,
"targetHostname": "www.example-weather-config-1-production.com",
"targetEnvironment": "staging",
"note": "Another sample note",
"ipVersions": [
"ipv4",
"ipv6"
],
"testCaseIds": [
1991,
1992
]
}
]
}
Status 202
application/json
Object type: TestRun
Download schema: get-test-run-response.json
Response body:
{
"testRunId": 133,
"status": "failed",
"submittedBy": "atctestuser",
"submittedDate": "2018-08-18T11:37:26+0000",
"testDefinitionExecutions": [
{
"testDefinitionExecutionId": 148,
"testDefinitionId": 738,
"testRunId": 133,
"targetHostname": "www.example-weather-production.com",
"targetEnvironment": "production",
"submittedBy": "atctestuser",
"submittedDate": "2018-08-18T11:37:26+0000",
"status": "completed",
"completedDate": "2018-08-18T12:37:26+0000",
"note": "A sample note",
"ipVersions": [
"ipv6"
],
"testCaseIds": [
1855
],
"diffCount": {
"total": 2,
"outstanding": 2
}
},
{
"testDefinitionExecutionId": 149,
"testDefinitionId": 740,
"testRunId": 133,
"targetHostname": "www.example-weather-config-1-production.com",
"targetEnvironment": "staging",
"submittedBy": "atctestuser",
"submittedDate": "2018-08-18T11:37:26+0000",
"status": "failed",
"completedDate": "2018-08-18T12:37:26+0000",
"note": "Another sample note",
"ipVersions": [
"ipv4",
"ipv6"
],
"testCaseIds": [
1991,
1992
],
"errors": [
{
"type": "ip.version.not.supported",
"title": "IP version not supported",
"ipVersion": "ipv6"
}
]
}
]
}
Format a TestRun object.
POST the object to
/test-management/
.v1/ test-runs
Get test run
Get the Test Run identified by testRunId
.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testRunId |
Integer | 133 |
Numeric identifier for a test run. |
Status 200
application/json
Object type: TestRun
Download schema: get-test-run-response.json
Response body:
{
"testRunId": 133,
"status": "failed",
"submittedBy": "atctestuser",
"submittedDate": "2018-08-18T11:37:26+0000",
"testDefinitionExecutions": [
{
"testDefinitionExecutionId": 148,
"testDefinitionId": 738,
"testRunId": 133,
"targetHostname": "www.example-weather-production.com",
"targetEnvironment": "production",
"submittedBy": "atctestuser",
"submittedDate": "2018-08-18T11:37:26+0000",
"status": "completed",
"completedDate": "2018-08-18T12:37:26+0000",
"note": "A sample note",
"ipVersions": [
"ipv6"
],
"testCaseIds": [
1855
],
"diffCount": {
"total": 2,
"outstanding": 2
}
},
{
"testDefinitionExecutionId": 149,
"testDefinitionId": 740,
"testRunId": 133,
"targetHostname": "www.example-weather-config-1-production.com",
"targetEnvironment": "staging",
"submittedBy": "atctestuser",
"submittedDate": "2018-08-18T11:37:26+0000",
"status": "failed",
"completedDate": "2018-08-18T12:37:26+0000",
"note": "Another sample note",
"ipVersions": [
"ipv4",
"ipv6"
],
"testCaseIds": [
1991,
1992
],
"errors": [
{
"type": "ip.version.not.supported",
"title": "IP version not supported",
"ipVersion": "ipv6"
}
]
}
]
}
List executions
Get list of test definition executions. One test definition execution is created for each test definition included in a completed test run.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
Optional query parameters | |||
latestPerTestDefinition |
Boolean | true |
When enabled, the response includes only the latest test definition execution for each passed valid test definition ID. |
testDefinitionIds |
String | 738,740 |
Comma-separated list of test definition IDs. |
Status 200
application/json
Object type: Execution
Download schema: get-test-definition-executions-response.json
Response body:
[
{
"testDefinitionExecutionId": 148,
"testDefinitionId": 738,
"testRunId": 133,
"targetHostname": "www.example-weather-production.com",
"targetEnvironment": "production",
"submittedBy": "atctestuser",
"submittedDate": "2018-08-18T11:37:26+0000",
"status": "completed",
"completedDate": "2018-08-18T12:37:26+0000",
"note": "A sample note",
"ipVersions": [
"ipv6"
],
"testCaseIds": [
1855
],
"diffCount": {
"total": 2,
"outstanding": 2
}
},
{
"testDefinitionExecutionId": 149,
"testDefinitionId": 740,
"testRunId": 133,
"targetHostname": "www.example-weather-config-1-production.com",
"targetEnvironment": "staging",
"submittedBy": "atctestuser",
"submittedDate": "2018-03-20T11:37:26+0000",
"status": "failed",
"completedDate": "2018-03-20T11:43:26+0000",
"note": "Another sample note",
"ipVersions": [
"ipv4",
"ipv6"
],
"testCaseIds": [
1991,
1992
],
"errors": [
{
"type": "ip.version.not.supported",
"title": "IP version not supported",
"ipVersion": "ipv6"
}
]
}
]
If you want to view only the latest execution for each definition, enable the
latestPerTestDefinition
query parameter.If you want to filter down the results to a smaller set of definitions, run the List test definitions operation, gather the set of
testDefinitionId
values you want, and use a comma to join them together as thetestDefinitionIds
query parameter.Make a GET request to
/test-management/
.v1/ test-definition-executions{?testDefinitionIds,latestPerTestDefinition} The response is an array of Execution objects.
Get an execution
Get a specific test definition execution.
The response includes the test case IDs of the test cases that
belong to the test definitions that were included in the test
run. Target hostname, target environment, IP versions, and
notes are included in this object, for a test run. When the
status is completed
there is a diffCount object. When the
status is failed
there is an errors array. If the test run
is in progress when you request to get an execution, the API
returns a 404 error.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionExecutionId |
Integer | 148 |
Numeric identifier for test definition execution. |
Status 200
application/json
Object type: Execution
Download schema: get-test-definition-execution-response.json
Response body:
{
"testDefinitionExecutionId": 148,
"testDefinitionId": 738,
"testRunId": 133,
"targetHostname": "www.example-weather-production.com",
"targetEnvironment": "production",
"submittedBy": "atctestuser",
"submittedDate": "2018-08-18T11:37:26+0000",
"status": "completed",
"completedDate": "2018-08-18T12:37:26+0000",
"note": "A sample note",
"ipVersions": [
"ipv6"
],
"testCaseIds": [
1855
],
"diffCount": {
"total": 2,
"outstanding": 2
}
}
Run the List executions operation and store the
testDefinitionExecutionId
.Make a GET request to
/test-management/
.v1/ test-definition-executions/ {testDefinitionExecutionId} The response is an Execution object.
Get context
A snapshot of the test definition and test
cases of when the test definition execution was run. If
any note fails you are notified in the failures
field
of the response.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionExecutionId |
Integer | 148 |
Numeric identifier for test definition execution. |
Status 200
application/json
Download schema: get-test-definition-execution-context-response.json
Response body:
{
"testDefinition": {
"testDefinitionId": 738,
"hostname": "www.example-weather.com",
"testDefinitionName": "Weather Test",
"testDefinitionDescription": "Testing weather prefetch configurations",
"createdBy": "atctestuser",
"createdDate": "2018-03-16T10:46:21+0000",
"modifiedBy": "atctestuser",
"modifiedDate": "2018-03-16T10:46:22+0000",
"ipVersions": [
"ipv6"
],
"testCases": [
{
"testCaseId": 1855,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Base Page",
"testCaseDescription": "Base Page Test",
"runOrder": 1,
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:23+0000",
"modifiedDate": "2018-03-16T10:46:28+0000",
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE",
"RUM_IMPL_PM_GROUPID",
"RUM_IMPL_PM_GROUPNAME",
"RUM_IMPL_PM_PRODUCT",
"RUM_DEBUG"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
}
},
"requestHeaders": [
{
"headerName": "Accept-Additions",
"headerAction": "add",
"headerValues": ""
}
]
},
{
"testCaseId": 1866,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/accounts",
"testCaseName": "Accounts page",
"testCaseDescription": "Accounts page test",
"runOrder": 2,
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:24+0000",
"modifiedDate": "2018-03-16T10:46:30+0000",
"requestHeaders": [],
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
}
}
}
]
}
}
List differences
Get the list of differences found for a specific test definition execution.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionExecutionId |
Integer | 148 |
Numeric identifier for test definition execution. |
Status 200
application/json
Object type: Difference
Download schema: get-differences-response.json
Response body:
[
{
"differenceId": "e52a1b76-d33d-11e7-9296-cec278b6b50a",
"testCaseId": 1855,
"sourceUrl": "https://www.example-weather.com/",
"targetUrl": "https://www.example-weather-production.com/",
"ipVersion": "ipv6",
"geoLocation": "us",
"comparisonAttribute": "responseHeaders",
"sourceValue": "gzip",
"targetValue": "deflate",
"isAccepted": false,
"parameterNames": [
"Content-Encoding"
],
"browser": {
"name": "chrome",
"version": "62"
}
},
{
"differenceId": "eece8d88-d33d-11e7-9296-cec278b6b50a",
"testCaseId": 1855,
"sourceUrl": "https://www.example-weather.com/regions/12345",
"targetUrl": "https://www.example-weather-production.com/regions/12345",
"ipVersion": "ipv6",
"geoLocation": "us",
"comparisonAttribute": "responseCode",
"sourceValue": "200",
"targetValue": "400",
"isAccepted": false,
"parameterNames": [],
"browser": {
"name": "chrome",
"version": "62"
}
}
]
Run the Get an execution operation and store the
testDefinitionExecutionId
.Make a GET request to
/test-management/
.v1/ test-definition-executions/ {testDefinitionExecutionId}/ differences The response is an array of Difference objects.
Update differences
Update the status of differences,
marking the resolved differences as OK to be ignored. This
returns the list of all differences, including both accepted
and unaccepted diffs. You can update a set of differences ar
once. If any of the updates fail, you are notified in the
failures
field of the response.
PUT /test-management/
Sample: /test-management/
Content-Type: application/json
Object type: Difference
Download schema: update-differences-request.json
Request body:
[
{
"differenceId": "e52a1b76-d33d-11e7-9296-cec278b6b50a",
"isAccepted": true
},
{
"differenceId": "fe59f1e6-0022-4119-b05b-71e33c2a0ee2",
"isAccepted": true
}
]
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionExecutionId |
Integer | 148 |
Numeric identifier for test definition execution. |
Status 200
application/json
Object type: Difference
Download schema: update-differences-response.json
Response body:
{
"successes": [
{
"differenceId": "e52a1b76-d33d-11e7-9296-cec278b6b50a"
}
],
"failures": [
{
"type": "validation.error",
"title": "Validation Error",
"status": 200,
"errors": [
{
"type": "invalid.value",
"title": "Invalid Value",
"errorField": "differenceId",
"differenceId": "fe59f1e6-0022-4119-b05b-71e33c2a0ee2"
}
]
}
]
}
Run the Get an execution operation.
Format a Difference object.
Make a PUT request to
/test-management/
.v1/ test-definition-executions/ {testDefinitionExecutionId}/ differences The response is a Difference object.
Create notes for a set of diffs
Create notes for a set of
diffs in bulk, under testDefinitionExecutionId
. The only
way to access created diffs is through the activity stream.
POST /test-management/
Sample: /test-management/
Content-Type: application/json
Download schema: create-diff-note-request.json
Request body:
[
{
"differenceId": "e52a1b76-d33d-11e7-9296-cec278b6b50a",
"note": "Unexpected change due to incorrect content encoding config"
},
{
"differenceId": "eece8d88-d33d-11e7-9296-cec278b6b50a",
"note": "Expected change."
}
]
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionExecutionId |
Integer | 148 |
Numeric identifier for test definition execution. |
Status 200
Run the Get an execution operation and store the
testDefinitionExecutionId
.Format a Execution object.
Make a POST request to
/test-management/
.v1/ test-definition-executions/ {testDefinitionExecutionId}/ differences/ notes
Get a difference
Get the details of the test definition execution difference.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionExecutionId |
Integer | 148 |
Numeric identifier for test definition execution. |
differenceId |
String | e52a1b76-d33d-11e7-9296-cec278b6b50a |
Alphanumeric identifier for the difference. |
Status 200
application/json
Object type: Difference
Download schema: get-difference-response.json
Response body:
{
"differenceId": "e52a1b76-d33d-11e7-9296-cec278b6b50a",
"testCaseId": 1855,
"sourceUrl": "https://www.example-weather.com/",
"targetUrl": "https://www.example-weather-production.com/",
"ipVersion": "ipv6",
"geoLocation": "us",
"comparisonAttribute": "responseHeaders",
"sourceValue": "gzip",
"targetValue": "deflate",
"isAccepted": false,
"parameterNames": [
"Content-Encoding"
],
"browser": {
"name": "chrome",
"version": "62"
}
}
Run the Get an execution operation and pick a
testDefinitionExecutionId
value.Run the List differences operation and retrieve the
differenceId
.Make a GET request to
/test-management/
.v1/ test-definition-executions/ {testDefinitionExecutionId}/ differences/ {differenceId} The response is a Difference object.
Get the raw request and response
Get the raw request and response, the requests and responses from both compared environments from which a diff was generated.
GET /test-management/
Sample: /test-management/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
testDefinitionExecutionId |
Integer | 148 |
Numeric identifier for test definition execution. |
differenceId |
String | e52a1b76-d33d-11e7-9296-cec278b6b50a |
Alphanumeric identifier for the difference. |
Status 200
application/json
Download schema: get-raw-request-response.json
Response body:
{
"sourceEnvironment": {
"request": {
"method": "GET",
"url": "https://www.example-weather.com/",
"httpVersion": "HTTP/1.1",
"headersSize": 610,
"bodySize": 0,
"comment": "",
"cookies": [],
"queryString": [],
"headers": [
{
"name": "Host",
"value": "www.example-weather"
},
{
"name": "Proxy-Connection",
"value": "keep-alive"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
},
{
"name": "Accept",
"value": "*/*"
},
{
"name": "Referer",
"value": "https://www.example-weather.com/"
},
{
"name": "Accept-Encoding",
"value": "gzip, deflate"
},
{
"name": "Accept-Language",
"value": "en-US,en;q=0.9"
},
{
"name": "Cookie",
"value": "frontend=291i77k6avpip216ct88tkciv7"
},
{
"name": "Content-Length",
"value": "0"
},
{
"name": "HeaderName1523525534255",
"value": "HeaderValue11523525534255,HeaderValue21523525534255"
}
]
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"redirectURL": "",
"headersSize": 1350,
"bodySize": 737,
"comment": "",
"cookies": [],
"content": {
"size": 0,
"mimeType": "application/javascript",
"comment": "",
"text": "",
"compression": 0
},
"headers": [
{
"name": "Server",
"value": "Apache/2.4.7 (Ubuntu)"
},
{
"name": "Last-Modified",
"value": "Wed, 14 May 2014 16:03:36 GMT"
},
{
"name": "ETag",
"value": "\\63d-4f95e52aaa600-gzip\\"
},
{
"name": "Accept-Ranges",
"value": "bytes"
},
{
"name": "Content-Encoding",
"value": "gzip"
},
{
"name": "Content-Length",
"value": "737"
},
{
"name": "Content-Type",
"value": "application/javascript"
},
{
"name": "Cache-Control",
"value": "max-age=86400"
},
{
"name": "Expires",
"value": "Sat, 14 Apr 2018 11:02:43 GMT"
},
{
"name": "Date",
"value": "Fri, 13 Apr 2018 11:02:43 GMT"
},
{
"name": "Connection",
"value": "keep-alive"
},
{
"name": "Vary",
"value": "Accept-Encoding"
}
]
}
},
"targetEnvironment": {
"request": {
"method": "GET",
"url": "https://www.example-weather-production.com/",
"httpVersion": "HTTP/1.1",
"headersSize": 625,
"bodySize": 0,
"comment": "",
"cookies": [],
"queryString": [],
"headers": [
{
"name": "Host",
"value": "www.example-weather-production.com"
},
{
"name": "Proxy-Connection",
"value": "keep-alive"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
},
{
"name": "Accept",
"value": "*/*"
},
{
"name": "Referer",
"value": "https://www.example-weather-production.com/"
},
{
"name": "Accept-Encoding",
"value": "gzip, deflate"
},
{
"name": "Accept-Language",
"value": "en-US,en;q=0.9"
},
{
"name": "Cookie",
"value": "frontend=60klgq7g1jc4u42gmjt21c7tp1"
},
{
"name": "Content-Length",
"value": "0"
},
{
"name": "Content-Encoding",
"value": "deflate"
},
{
"name": "HeaderName1523525534255",
"value": "HeaderValue11523525534255,HeaderValue21523525534255"
}
]
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"redirectURL": "",
"headersSize": 1560,
"bodySize": 1597,
"comment": "",
"cookies": [],
"content": {
"size": 0,
"mimeType": "application/javascript",
"comment": "",
"text": "",
"compression": 0
},
"headers": [
{
"name": "Server",
"value": "Apache/2.4.7 (Ubuntu)"
},
{
"name": "Last-Modified",
"value": "Wed, 14 May 2014 16:03:36 GMT"
},
{
"name": "ETag",
"value": "\\63d-4f95e52aaa600-gzip\\"
},
{
"name": "Content-Type",
"value": "application/javascript"
},
{
"name": "X-Akamai-Staging",
"value": "EdgeSuite"
},
{
"name": "X-Akamai-Staging",
"value": "EdgeSuite"
},
{
"name": "X-Akamai-Staging",
"value": "EdgeSuite"
},
{
"name": "X-Akamai-Staging",
"value": "EdgeSuite"
},
{
"name": "Vary",
"value": "Accept-Encoding"
},
{
"name": "Cache-Control",
"value": "max-age=82116"
},
{
"name": "Expires",
"value": "Sat, 14 Apr 2018 09:52:07 GMT"
},
{
"name": "Date",
"value": "Fri, 13 Apr 2018 11:03:31 GMT"
},
{
"name": "Content-Length",
"value": "1597"
},
{
"name": "Connection",
"value": "keep-alive"
},
{
"name": "X-Akamai-Staging",
"value": "EdgeSuite"
}
]
}
}
}
Run the List executions operation and store the
testDefinitionExecutionId
.Run the List differences operation and retrieve the
differenceId
.Make a GET request to
/test-management/
.v1/ test-definition-executions/ {testDefinitionExecutionId}/ differences/ {differenceId}/ raw-request-response
List user configurations
Get the list of resources and permissions for the logged in account.
GET /test-management/
Status 200
application/json
Object type: Configuration
Download schema: get-user-config-response.json
Response body:
[
{
"resource": "TEST_DEFINITION",
"permissions": [
"READ",
"CREATE",
"UPDATE",
"DELETE"
]
},
{
"resource": "TEST_RUN",
"permissions": [
"READ",
"RUN"
]
},
{
"resource": "TEST_RESULT",
"permissions": [
"READ",
"UPDATE"
]
}
]
Make a GET request to
/test-management/
.v1/ user-config The response is an array of Configuration objects.
Data
This section provides details for each type of data object the API exchanges.
Download the JSON schemas for this API.
The data schema tables below list membership requirements as follows:
✓ | Member is required in requests, or always present in responses, even if its value is empty or null . |
○ | Member is optional, and may be omitted in some cases. |
Activities
The logged event of a user-performed action, for example, the creation of a test definition or test case, the removal of either, adding a note to a diff, etc.
Download schema:
post-activities-request.json
Sample POST request:
{
"filters": [
{
"field": "activityResource",
"value": "test-definition",
"ids": [
"738",
"495",
"740"
]
},
{
"field": "activityResource",
"value": "test-case",
"ids": [
"1855",
"1866"
]
},
{
"field": "activityResource",
"value": "test-run",
"ids": [
"133"
]
},
{
"field": "activityResource",
"value": "test-difference",
"ids": [
"e52a1b76-d33d-11e7-9296-cec278b6b50a"
]
},
{
"field": "activityResource",
"value": "test-difference-note",
"ids": [
"fe59f1e6-0022-4119-b05b-71e33c2a0ee2"
]
}
]
}
Activities members
Member | Type | Description | |
---|---|---|---|
Activities : The logged event of a user-performed action, for example, the creation of a test definition or test case, the removal of either, adding a note to a diff, etc. |
|||
filters |
Activities. |
An array of specified filters. | |
Activities.filters[] : An array of specified filters. |
|||
field |
Enumeration | The field on which the filter should be applied. The value must be activityResource . |
|
ids |
Array | While filtering the activities, a logical OR is applied to IDs within the filter. If no IDs are sent, all the activities for the particular field and value are not sent. | |
value |
Enumeration | The value of the selected field on which the filter should be applied. The value can be test-case , test-definition , test-difference , test-difference-note , and test-run . |
TestDefinition
The basic unit of testing in Test Center. A test definition is associated with a hostname and configured with at least one test case for testing that hostname. Status is active
by default but once a test definition is removed it becomes inactive
and can no longer be made active
.
Download schema:
get-test-definition-response.json
Sample GET response:
{
"testDefinitionId": 738,
"hostname": "www.example-weather.com",
"testDefinitionName": "Weather Test",
"testDefinitionDescription": "Testing weather prefetch configurations",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:21+0000",
"modifiedDate": "2018-03-16T10:46:22+0000",
"status": "active",
"ipVersions": [
"ipv6"
]
}
TestDefinition members
Member | Type | Required | Description |
---|---|---|---|
TestDefinition : The basic unit of testing in Test Center. A test definition is associated with a hostname and configured with at least one test case for testing that hostname. Status is active by default but once a test definition is removed it becomes inactive and can no longer be made active . |
|||
createdBy |
String | ✓ | The user who created the test definition. |
createdDate |
String | ✓ | ISO–8601 date string for the time when the test definition was created. |
hostname |
String | ✓ | Hostname to be tested. |
ipVersions |
Array | ✓ | Can be ipv4 , ipv6 , or both. |
modifiedBy |
String | ○ | The user who last modified the test definition. |
modifiedDate |
String | ○ | ISO–8601 date string for the time when the test definition was last modified. |
status |
Enumeration | ○ | This field denotes whether the test definition is active or has been removed. Can be inactive or active . |
test |
String | ○ | A description about the test definition. 4000-character limit. |
testDefinitionId |
Integer | ✓ | Unique identifier for the test definition. |
test |
String | ✓ | A short title for the test definition. 100-character limit. |
TestCase
An object containing data for a single test case, such as which web pages or objects the test definition compares, which response headers are included, and which comparisons are made. Embedded objects here refers to the entities that get loaded after the initial HTML request that is made.
Download schema:
get-test-case-response.json
Sample GET response:
{
"testCaseId": 1855,
"testDefinitionId": 738,
"url": "https://www.example-weather.com/",
"testCaseName": "Base Page",
"testCaseDescription": "Base Page Test",
"createdBy": "atctestuser",
"modifiedBy": "atctestuser",
"createdDate": "2018-03-16T10:46:23+0000",
"modifiedDate": "2018-03-16T10:46:28+0000",
"runOrder": 1,
"status": "active",
"comparisonSettings": {
"responseCode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"responseHeaders": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"Age",
"Date",
"Expires",
"Server",
"Via",
"Set-Cookie",
"Cache-Control"
]
},
"cpcode": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cachingOption": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"cacheKey": {
"isEnabled": true,
"includeEmbeddedObjects": true
},
"metadataVariables": {
"isEnabled": true,
"includeEmbeddedObjects": true,
"compareOnly": [],
"compareAllExcept": [
"RUM_IS_IPV6",
"RUA_OUT_IS_APPLIED",
"RUM_XHR_TEST",
"RUM_CLIENT_TO_MAPPING_PCT",
"RANDOM_SAMPLE",
"RUM_IMPL_PM_GROUPID",
"RUM_IMPL_PM_GROUPNAME",
"RUM_IMPL_PM_PRODUCT",
"RUM_DEBUG"
]
},
"originServer": {
"isEnabled": true,
"includeEmbeddedObjects": true
}
},
"requestHeaders": [
{
"headerName": "Max-Forwards",
"headerAction": "add",
"headerValues": "10"
}
]
}
TestCase members
Member | Type | Required | Description |
---|---|---|---|
TestCase : An object containing data for a single test case, such as which web pages or objects the test definition compares, which response headers are included, and which comparisons are made. Embedded objects here refers to the entities that get loaded after the initial HTML request that is made. |
|||
comparison |
Test |
✓ | Attributes which are used for comparison between different environments. |
createdBy |
String | ✓ | The user who created the test case. |
createdDate |
String | ✓ | ISO–8601 date string for the time when the test definition was created. |
modifiedBy |
String | ○ | The user who last modified the test case. |
modifiedDate |
String | ○ | ISO–8601 date string for the time when the test definition was last modified. |
requestHeaders |
Test |
✓ | Encapsulates the request headers in the test case. |
runOrder |
Integer | ✓ | An integer representing the order in which the test case will be run as part of its parent test definition. |
status |
Enumeration | ○ | This field denotes whether the test case is active or has been removed. Can be inactive or active . |
test |
String | ○ | Description about the test case. 4000-character limit. |
testCaseId |
Integer | ✓ | A unique Identifier for test case resource. |
testCaseName |
String | ✓ | A short title for the test case. 100-character limit. |
testDefinitionId |
Integer | ✓ | A unique Identifier for test definition resource. |
url |
String | ✓ | URL of the page to be tested. |
TestCase.comparisonSettings : Attributes which are used for comparison between different environments. |
|||
cacheKey |
Test |
✓ | The string used by the Akamai Edge Server to identify the requested object in the cache. |
cachingOption |
Test |
✓ | The caching option allows you to specify how long you want to cache everything in your configuration. |
cpcode |
Test |
✓ | The CP code with which the content from the Akamai Edge Server is being delivered. |
metadata |
Test |
✓ | The metadata variables used in the processing of the request. |
originServer |
Test |
✓ | The hostname of the origin server. |
responseCode |
Test |
✓ | The numerical part of the HTTP Status Code. |
responseHeaders |
Test |
✓ | The response headers of the corresponding HTTP responses. |
TestCase.comparisonSettings.cacheKey : The string used by the Akamai Edge Server to identify the requested object in the cache. |
|||
include |
Boolean | ✓ | If true, the embedded objects for the cache key are included in the comparison made by the test run. If false, they are not. |
isEnabled |
Boolean | ✓ | If true, the cache key is compared by the test run. If false, the cache key is not compared by the test run. |
TestCase.comparisonSettings.cachingOption : The caching option allows you to specify how long you want to cache everything in your configuration. |
|||
include |
Boolean | ✓ | If true, the embedded objects for the caching option are included in the comparison made by the test run. If false, they are not. |
isEnabled |
Boolean | ✓ | If true, the caching option is compared by the test run. If false, the caching option is not compared by the test run. |
TestCase.comparisonSettings.cpcode : The CP code with which the content from the Akamai Edge Server is being delivered. |
|||
include |
Boolean | ✓ | If true, the embedded objects for the CP code are included in the comparison made by the test run. If false, they are not. |
isEnabled |
Boolean | ✓ | If true, the CP code is compared by the test run. If false, the CP code is not compared by the test run. |
TestCase.comparisonSettings.metadataVariables : The metadata variables used in the processing of the request. |
|||
compareAllExcept |
Array | ✓ | The list of all metadata variables to be ignored, or not compared, by the test run. |
compareOnly |
Array | ✓ | The list of metadata variables to be included, or compared, by the test run. |
include |
Boolean | ✓ | If true, the embedded objects for the metadata variables are included in the comparison made by the test run. If false, they are not. |
isEnabled |
Boolean | ✓ | If true, the metadata variables are compared by the test run. If false they are not. |
TestCase.comparisonSettings.originServer : The hostname of the origin server. |
|||
include |
Boolean | ✓ | If true, the embedded objects for the origin server are compared by the test run. If false, they are not. |
isEnabled |
Boolean | ✓ | If true, the origin server is compared by the test run. If false it is not. |
TestCase.comparisonSettings.responseCode : The numerical part of the HTTP Status Code. |
|||
include |
Boolean | ✓ | If true, the embedded objects for the response code are compared by the test run. If false, they are not. |
isEnabled |
Boolean | ✓ | If true, the response code is compared by the test run. If false, it is not. |
TestCase.comparisonSettings.responseHeaders : The response headers of the corresponding HTTP responses. |
|||
compareAllExcept |
Array | ✓ | The list of all response headers to be ignored, or not compared, by the test run. |
compareOnly |
Array | ✓ | The list of response headers to be included, or compared, by the test run. |
include |
Boolean | ✓ | If true, the embedded objects of the response headers are compared by the test run. If false, they are not. |
isEnabled |
Boolean | ✓ | If true, the response headers are compared by the test run. If false, they are not. |
TestCase.requestHeaders[] : Encapsulates the request headers in the test case. |
|||
headerAction |
Enumeration | ✓ | add to the list of request headers, modify existing request headers, or filter request headers belonging to this test case. |
headerName |
String | ✓ | The name of the request header. |
headerValues |
String | ✓ | The value of the request header. |
TestRun
A test run object signifies that a test run has been started. A test run can have multiple executions.
Download schema:
create-test-run-request.json
Sample POST request:
{
"testDefinitionExecutions": [
{
"testDefinitionId": 738,
"targetHostname": "www.example-weather-production.com",
"targetEnvironment": "production",
"note": "A sample note",
"ipVersions": [
"ipv6"
],
"testCaseIds": [
1855
]
},
{
"testDefinitionId": 740,
"targetHostname": "www.example-weather-config-1-production.com",
"targetEnvironment": "staging",
"note": "Another sample note",
"ipVersions": [
"ipv4",
"ipv6"
],
"testCaseIds": [
1991,
1992
]
}
]
}
TestRun members
Member | Type | Required | Description |
---|---|---|---|
TestRun : A test run object signifies that a test run has been started. A test run can have multiple executions. |
|||
test |
Test |
✓ | A test definition execution object. |
TestRun.testDefinitionExecutions[] : A test definition execution object. |
|||
ipVersions |
Array | ✓ | IP version can be ipv4 , ipv6 , or both. |
note |
String | ○ | A user-defined note about the current test definition under the current test run. |
target |
Enumeration | ✓ | The target environment for the test. Can be either production or staging . The source environment for the test, against which the differences are going to be computed, is always going to be production . |
targetHostname |
String | ✓ | Hostname for the target environment against which the test definition would be run. |
testCaseIds |
Array | ✓ | List of test case IDs that need to be executed in the run. This is a subset of the test cases that belong to the test definition. |
testDefinitionId |
Integer | ✓ | Identifier of the test definition. |
Execution
The test definition execution is a component of a test run. A test run can have multiple executions, one for each test definition included in the test run. A test definition execution contains the subset of test cases, IP versions, target hostname, and target environment of the test definition it belongs to.
Download schema:
get-test-definition-execution-response.json
Sample GET response:
{
"testDefinitionExecutionId": 148,
"testDefinitionId": 738,
"testRunId": 133,
"targetHostname": "www.example-weather-production.com",
"targetEnvironment": "production",
"submittedBy": "atctestuser",
"submittedDate": "2018-08-18T11:37:26+0000",
"status": "completed",
"completedDate": "2018-08-18T12:37:26+0000",
"note": "A sample note",
"ipVersions": [
"ipv6"
],
"testCaseIds": [
1855
],
"diffCount": {
"total": 2,
"outstanding": 2
}
}
Execution members
Member | Type | Required | Description |
---|---|---|---|
Execution : The test definition execution is a component of a test run. A test run can have multiple executions, one for each test definition included in the test run. A test definition execution contains the subset of test cases, IP versions, target hostname, and target environment of the test definition it belongs to. |
|||
completedDate |
String | ○ | ISO–8601 date string for the time at which the test definition execution was completed. |
diffCount |
Execution. |
○ | When the status of the test definition execution is completed , this object will appear in the payload. It gives the total and outstanding number of differences. |
errors |
Execution. |
✓ | The HTTP problem detail object that signifies the type of error that has occurred. |
ipVersions |
Array | ✓ | The IP version options are ipv4 and ipv6 . |
note |
String | ○ | A note about the test definition execution. |
status |
Enumeration | ✓ | Status of the test definition execution. in_progress is currently running, completed has finished running, failed has stopped running due to an error. archived means that there were more than 5 runs for that test definition, since this test definition execution was created. |
submittedBy |
String | ✓ | The username of the user who initiated the test definition execution. |
submittedDate |
String | ✓ | The ISO–8601 date string for the time at which the test definition execution was initiated. |
supported |
Array | ✓ | Attributes which are used for comparison between different environments. |
target |
Enumeration | ✓ | The target environment for the test. Can be either production or staging . |
targetHostname |
String | ✓ | Hostname for the target environment. |
testCaseIds |
Array | ✓ | Identifier of the test case. |
test |
Integer | ✓ | Identifier of the test definition execution. |
testDefinitionId |
Integer | ✓ | Identifier of the test definition. |
testRunId |
Integer | ✓ | Identifier of the test run. |
Execution.diffCount : When the status of the test definition execution is completed , this object will appear in the payload. It gives the total and outstanding number of differences. |
|||
outstanding |
Integer | ✓ | This number represents the number of unaccepted diffs. |
total |
Integer | ✓ | This number represents the total number of diffs that was generated. |
Execution.errors[] : The HTTP problem detail object that signifies the type of error that has occurred. |
|||
ipVersion |
String | ✓ | The IP version for which the test definition execution has failed. |
testCaseId |
Integer | ○ | Unique identifier of the test case for which the test definition execution has failed. If the testCaseId field is not present, it means that all the test cases failed for the corresponding IP version. |
title |
String | ✓ | A brief explanation of what the error means. |
type |
String | ✓ | A dot-notation string to explain what kind of an error occurred. |
Difference
Differences found between the source URL and target URL, under a specific IP version, within a specific geolocation and on a specific browser, as configured in the test cases of the test definition that was run.
Download schema:
get-difference-response.json
Sample GET response:
{
"differenceId": "e52a1b76-d33d-11e7-9296-cec278b6b50a",
"testCaseId": 1855,
"sourceUrl": "https://www.example-weather.com/",
"targetUrl": "https://www.example-weather-production.com/",
"ipVersion": "ipv6",
"geoLocation": "us",
"comparisonAttribute": "responseHeaders",
"sourceValue": "gzip",
"targetValue": "deflate",
"isAccepted": false,
"parameterNames": [
"Content-Encoding"
],
"browser": {
"name": "chrome",
"version": "62"
}
}
Difference members
Member | Type | Description | |
---|---|---|---|
Difference : Differences found between the source URL and target URL, under a specific IP version, within a specific geolocation and on a specific browser, as configured in the test cases of the test definition that was run. |
|||
browser |
Difference. |
An object containing browser info. | |
comparison |
Enumeration | The comparison setting which the difference object addresses. Can be any comparison setting: cacheKey , cachingOption , cpcode , metadataVariables , originServer , responseCode , responseHeaders . |
|
differenceId |
String | Unique identifier for the difference. | |
geoLocation |
String | Identifier of the geolocation. | |
ipVersion |
Enumeration | The IP version used for this execution. Can be either ipv4 or ipv6 . |
|
isAccepted |
Boolean | A boolean value indicating whether the difference has been resolved by the user. | |
parameterNames |
Array | A string that represents the parsed response header value. | |
sourceUrl |
String | URL of the object in source environment. | |
sourceValue |
String | Value of the comparison attribute for the parameter names in source environment. | |
targetUrl |
String | URL of the object in target environment. | |
targetValue |
String | Value of the comparison attribute for the parameter names in target environment. | |
testCaseId |
Integer | Identifier of the test case the difference belongs to. | |
Difference.browser : An object containing browser info. |
|||
name |
Enumeration | Name of the browser. Must be chrome . |
|
version |
String | Version of the browser. |
Configuration
List of resources and corresponding permissions for the logged in user.
Download schema:
get-user-config-response.json
Sample GET response:
[
{
"resource": "TEST_DEFINITION",
"permissions": [
"READ",
"CREATE",
"UPDATE",
"DELETE"
]
},
{
"resource": "TEST_RUN",
"permissions": [
"READ",
"RUN"
]
},
{
"resource": "TEST_RESULT",
"permissions": [
"READ",
"UPDATE"
]
}
]
Configuration members
Member | Type | Description |
---|---|---|
Configuration : List of resources and corresponding permissions for the logged in user. |
||
permissions |
Array | Permissions granted for the corresponding resource. |
resource |
Enumeration | Configurable resources include TEST_DEFINITION , TEST_RUN , and TEST_RESULT . |
Errors
This section provides details on the data object that reflects the API’s common response to error cases, and lists the API’s range of response status codes for both error and success cases. Some APIs may return additional data in the form of extension fields.
Error responses
This API responds with JSON objects that adhere to the HTTP Problem Details standard.
{
"type": "authorization.error",
"title": "Authorization Error",
"status": 403,
"errors": [
{
"type": "read.permission.missing",
"title": "Read Permission Missing",
}
]
}
HTTP status codes
This section lists the full range of response codes the API may generate.
The top level error object contains type
, title
, status
, and
optionally errors
. The second-level error objects contain type
,
title
, and optionally errors
.
Code | Description |
---|---|
200 | The operation was successful. |
201 | Resource successfully created. |
202 | Resource successfully accepted. |
204 | Successfully processed request. |
400 | Bad Request. |
401 | Authentication failure. |
403 | Access is forbidden. |
404 | Resource not found. |
423 | Requested resource is locked. |
429 | Too many requests. See Rate and resource limiting. |
500 | Internal server error. |