openapi: 3.0.1
info: {version: '3.0', title: NeoLoad API}
paths:
/v3/workspaces:
get:
operationId: GetWorkspaceList
summary: Get the list of all accessible Workspaces
description: Lists all accessible Workspaces.
tags: [Workspaces]
parameters:
- name: allWorkspaces
in: query
required: false
description: If true (reserved to admin users), returns all existing workspaces,
including the workspaces I am not member of. If false, returns only the
workspaces I am a member of.
schema: {type: boolean, default: false}
- {$ref: '#/components/parameters/page_limit'}
- {$ref: '#/components/parameters/page_offset'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/WorkspaceDefinitionList'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
post:
tags: [Workspaces]
summary: Create a new Workspace
description: Create a new Workspace
operationId: create_1
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/WorkspaceCreateRequest'}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/FullWorkspaceDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/tests:
get:
operationId: GetTestList
summary: Get a test list
description: |
Lists the tests of the Workspace.
___
*Sortable fields :*
- name
- projectName
- lastUpdateDate (descending sort by default : the most recent first)
- lastRunDate
- userModifierName
tags: [Tests]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/page_limit'}
- {$ref: '#/components/parameters/page_offset'}
- {$ref: '#/components/parameters/single_sort'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/TestDefinitionList'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
post:
operationId: PostCreateTest
summary: Create a new test
description: Create a new test with the specified name
tags: [Tests]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/TestCreate'}
required: true
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/TestCreated'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/tests/{testId}:
get:
operationId: GetTest
summary: Get a test
description: Get the test
tags: [Tests]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/test-id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/GetTestDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
patch:
operationId: PatchTest
summary: Partially update a test
description: Update only the specified fields of the test
tags: [Tests]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/test-id'}
requestBody:
description: The fields to update. No field is required, only those supplied
will be updated.
required: false
content:
application/json:
schema: {$ref: '#/components/schemas/TestUpdate'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/TestDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
put:
operationId: PutTest
summary: Fully update a test
description: Update all fields of the test
tags: [Tests]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/test-id'}
requestBody:
description: The fields to update. All fields are required and will be updated.
required: true
content:
application/json:
schema: {$ref: '#/components/schemas/TestUpdate'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/TestDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
delete:
operationId: DeleteTest
summary: Delete a test
description: Delete the test with the specified id
tags: [Tests]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/test-id'}
- name: deleteResults
in: query
required: false
description: Also delete related Test Results, including locked Test Results.
Default is true.
example: true
schema: {type: string}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/TestDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/tests/{testId}/project:
servers:
- {url: 'https://neoload-files.saas.neotys.com'}
post:
operationId: PostUploadProject
summary: Uploads a NeoLoad project zip file or a standalone as-code file
description: Uploads a NeoLoad project of the Workspace corresponding to the
parameters. The maximum size file is 250 MB
tags: [Tests|Projects]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/test-id'}
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file: {type: string, format: binary}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ProjectDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
get:
operationId: ReadProjectMetadata
summary: Get project's metadata
description: Get project's metadata
tags: [Tests|Projects]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/test-id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ProjectDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/tests/{testId}/start:
post:
operationId: GetTestsRun
summary: Starts a test
description: Starts a test of the Workspace according to the method parameters.
tags: [Tests|Runtime]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/test-id'}
- name: testResultName
in: query
required: true
description: The name of the Test Result
schema: {type: string}
- name: testResultDescription
in: query
required: false
description: The description of the Test Result
schema: {type: string}
- name: asCode
in: query
required: false
description: The comma-separated as-code files to use for the test. Those
files must be part of the uploaded project.
schema: {type: string}
- name: reservationId
in: query
required: false
description: The reservation identifier to use for the test that can be retrieved
from the NeoLoad Web reservation calendar URL. If the reservation mode is
enabled and "reservationId" value is defined, "reservationDuration", "reservationWebVUs"
and "reservationSAPVUs" values will be ignored, otherwise if the reservation
mode is disabled the value will be ignored.
schema: {type: string}
- name: reservationDuration
in: query
required: false
description: The duration of the reservation for the test. If the reservation
mode is enabled, this value or "reservationDuration", "reservationWebVUs",
"reservationSAPVUs" must be defined, otherwise if the reservation mode is
disabled the value will be ignored. The value (in seconds) is optional when
the reservation mode is enabled and ignored when reservationId value is
defined or if the reservation mode is disabled. The default value is the
selected scenario duration + 1200 seconds (20 minutes). All reserved resources
will be released when the test ends.
schema: {type: integer, format: int64}
- name: reservationWebVUs
in: query
required: false
description: The number of Web Virtual Users to be reserved for the test.
The value is optional when the reservation mode is enabled and ignored when
"reservationId" value is defined or if the reservation mode is disabled.
schema: {type: integer, format: int32}
- name: reservationSAPVUs
in: query
required: false
description: The number of SAP Virtual Users to be reserved for the test.
The value is optional when the reservation mode is enabled and ignored when
"reservationId" value is defined or if the reservation mode is disabled.
schema: {type: integer, format: int32}
- name: publishTestResult
in: query
required: false
description: When "true" and the project is a collaborative project (other
than git) then the Test Result is published onto the server. If empty, the
default value is "false".
schema: {type: boolean}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/RunTestDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
'501': {$ref: '#/components/responses/error_501'}
/v3/workspaces/{workspaceId}/test-results:
get:
operationId: GetTestResultList
summary: Lists Test Results
description: |
Lists the Test Results of the Workspace according to the method parameters.
___
*Sortable fields :*
- name
- project
- startDate (descending sort by default : the most recent first)
- qualityStatus
tags: [Results]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- name: status
in: query
required: false
description: Returns only the Test Results with the specified status.
schema:
type: string
enum: [STARTING, RUNNING, TERMINATED]
- name: project
in: query
required: false
description: Project name. Returns only the Test Results of the specified
project.
schema: {type: string}
- name: author
in: query
required: false
description: The author of the Test Result. Returns only the Test Results
launched by the specified author.
schema: {type: string}
- {$ref: '#/components/parameters/page_limit'}
- {$ref: '#/components/parameters/page_offset'}
- {$ref: '#/components/parameters/single_sort'}
- name: fields
in: query
required: false
description: Comma-separated list of fields to include in the json Test Result
definition.
schema: {type: string}
- name: pretty
in: query
required: false
description: If true the Json returned is human readable.
schema: {type: boolean}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ArrayOfTestResultDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}:
get:
operationId: GetTestResult
summary: Test Result description
description: Provides a Test Result description using a unique Test Result identifier.
Provides name, dates, owner ...
tags: [Results]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/TestResultDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
delete:
operationId: DeleteTestResult
summary: Deletes a Test Result
description: Deletes a Test Result and all the associated statistics. This action
cannot be undone.
tags: [Results]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
responses:
'204':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
patch:
operationId: UpdateTestResult
summary: Partially update a Test Result
description: Updates the specified fields of a Test Result. All fields are optional.
tags: [Results]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/TestResultDefinition'}
'204':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/TestResultUpdateRequest'}
required: true
/v3/workspaces/{workspaceId}/test-results/{resultId}/stop:
post:
operationId: StopTestResult
summary: Stop a running Test Result
description: Stop the running Test Result with the specified id
tags: [Tests|Runtime]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/TestResultStopRequest'}
required: true
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema:
type: object
properties:
testResultId: {type: string, description: The unique identifier
of the stopped Test Result.}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/logs:
get:
operationId: GetTestResultLogs
summary: Get the logs from a test result
description: The 1000th first lines of logs (timestamp, content and source)
about a specified test result. If the test result does not have any logs the
result will be an empty list.
tags: [Results]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/TestResultLogs'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/events:
get:
operationId: GetTestResultEvents
summary: Test Result events
description: |
List the events of the specified Test Result according to the method parameters.
___
*Sortable fields :*
- offset
- fullname
- code
- source
tags: [Results|Events]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/event_types'}
- {$ref: '#/components/parameters/page_limit'}
- {$ref: '#/components/parameters/page_offset'}
- {$ref: '#/components/parameters/single_sort'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ArrayOfEventDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
post:
operationId: PostTestResultCustomEvent
summary: Create a Test Result custom event
description: |
Creates a Test Result custom event.
Custom events stored by this endpoint can be retrieved using the [GetTestResultEvents](#/Results/GetTestResultEvents) endpoint.
Custom events allow you to associate to a Test Result events that occurred outside of NeoLoad.
Custom events can have two different kinds of timeframe:
- INSTANT: an event having a timestamp and a duration of 0 seconds.
- TIME_RANGE: an event having a start timestamp and an end timestamp.
Custom events timestamps are in seconds.
The maximum of custom events per Test Result is 1000.
Custom events must match some constraints, see PostCustomEventRequest model to get more details.
____
tags: [Results|Events]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/PostCustomEventRequest'}
description: The custom event
required: true
responses:
'201':
description: Created
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/PostCustomEventResponse'}
'400':
description: An error occurred while processing the request. Please verify
the parameters and try again.
content:
application/json:
schema: {$ref: '#/components/schemas/PostCustomEventError'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/events/{eventId}:
patch:
operationId: PatchTestResultCustomEvent
summary: Partially update a Test Result custom event
description: |
Update a field of an existing custom event:
- endTimestamp
- description
- url
Custom events with INSTANT timeframe can be patched to TIME_RANGE timeframe by setting an endTimestamp different than the startTimestamp.
Custom events with TIME_RANGE timeframe can be patched to INSTANT timeframe by setting an endTimestamp equals to the startTimestamp.
Custom events timestamps are in seconds.
Request to patch a custom event has some constraints, see PatchCustomEventRequest model to get more details.
____
tags: [Results|Events]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/event-id'}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/PatchCustomEventRequest'}
description: The patch of an existing custom event.
required: true
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/PatchCustomEventResponse'}
'400':
description: An error occurred while processing the request. Please verify
the parameters and try again.
content:
application/json:
schema: {$ref: '#/components/schemas/PatchCustomEventError_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404':
description: Resource not found. Please verify the parameters and try again.
content:
application/json:
schema: {$ref: '#/components/schemas/PatchCustomEventError_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/statistics:
get:
operationId: GetTestResultStatistics
summary: Test Result main statistics
description: Provides the main statistics of a Test Result. For a runnning test,
these statistics are live, for a Test Result, those are average for the all
Test Result.
tags: [Results]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/TestResultStatistics'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/elements:
get:
operationId: GetTestResultElements
summary: Test Result elements
description: Provides the tests elements of a Test Result. The elements type
must be provided.
tags: [Results|Elements]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- name: category
in: query
required: true
description: Category of the elements to return.
schema:
type: string
enum: [TRANSACTION, ACTION, PAGE, REQUEST]
default: TRANSACTION
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ArrayOfElementDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/elements/values:
get:
operationId: GetTestResultAllElementsValues
summary: Values for all elements of a Test Result
description: Provides the values for all elements of a Test Result.
tags: [Results|Elements]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- name: category
in: query
required: true
description: Category of elements to return.
schema:
type: string
enum: [TRANSACTION, ACTION, PAGE, REQUEST]
default: TRANSACTION
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/Values'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/elements/{elementId}:
get:
operationId: GetTestResultElementDefinition
summary: Test Result element definition
description: Provides a Test Result element definition.
tags: [Results|Elements]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/element_id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ElementDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/elements/{elementId}/values:
get:
operationId: GetTestResultElementsValues
summary: Test Result elements values
description: Provides the values of a Test Result element.
tags: [Results|Elements]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/element_id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ElementValues'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/elements/{elementId}/points:
get:
operationId: GetTestResultElementsPoints
summary: Test Results elements points since the beginning of the Test Result
description: Provides all the points of a Test Result element for the selected
statistics.
tags: [Results|Elements]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/element_id'}
- name: statistics
in: query
required: true
description: 'Comma-separated list of statistics to get. Available statistics
are: AVG_DURATION (ms), MIN_DURATION (ms), MAX_DURATION (ms), COUNT, THROUGHPUT
(Byte/s), ELEMENTS_PER_SECOND, ERRORS, ERRORS_PER_SECOND, ERROR_RATE (%),
AVG_TTFB (ms), MIN_TTFB (ms), MAX_TTFB (ms).
Example: AVG_DURATION,ELEMENTS_PER_SECOND'
schema: {type: string}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/Points'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/elements/{elementId}/percentiles:
get:
operationId: GetTestResultElementsPercentiles
summary: Test Result percentiles transaction since the beginning of the Test
Result
description: Provides the percentiles of a Test Result transaction.
tags: [Results|Elements]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/element_id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/Percentiles'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/elements/{elementId}/raw:
get:
operationId: GetTestRawResultElement
summary: Test Result raw data of a TRANSACTION element
description: |
Provides the Test Result raw data for an element of category TRANSACTION, with a content as CSV or JSON file.
Retention period for raw data is 7 days after which this will be permanently deleted.
tags: [Results|Elements]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/element_id'}
- {$ref: '#/components/parameters/result-format'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
text/csv:
schema:
type: string
format: binary
allOf:
- {$ref: '#/components/schemas/TestElementRawResult'}
application/json:
schema:
type: string
format: binary
allOf:
- {$ref: '#/components/schemas/TestElementRawResult'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/elements/{elementId}/sla:
get:
operationId: GetTestResultElementsSla
summary: Test Result elements SLA status since the beginning of the Test Result
description: Provides the SLA status of a Test Result element.
tags: [Results|Elements]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/element_id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/Sla'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/monitors:
get:
operationId: GetTestResultMonitors
summary: Test Result monitors
description: Provides all the Test Result counters of all monitors for a Test
Result.
tags: [Results|Monitors]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/CounterDefinitionArray'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
post:
operationId: PostTestResultMonitors
summary: Create custom monitors
description: |
Pushes monitoring data (external data) for a given running test.
Resolution limitation:
- Maximum resolution for a monitor value is 1 per second, otherwise the first value is kept.
Maximum paths and monitors:
- Maximum 100 different unique paths.
- Maximum 50 different monitors for a given path.
- Maximum length is 10 for a path.
Other requirements:
- '/' character is not allowed in path element.
- The test must be running while pushing the data.
- For a given timestamp, all monitors relative to a path must be sent in the same request.
- These elements must not be empty: monitor name, a path element and values.
tags: [Results|Monitors]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
responses:
'201': {description: Created}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/MonitorPostRequest'}
description: List of custom monitors
required: true
/v3/workspaces/{workspaceId}/test-results/{resultId}/monitors/{counterId}:
get:
operationId: GetTestResultMonitorDefinition
summary: Test Result counter definition
description: Provides the definition of a Test Result counter.
tags: [Results|Monitors]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/counter_id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/CounterDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/monitors/{counterId}/values:
get:
operationId: GetTestResultMonitorsValues
summary: Test Result monitors values
description: Provides the values of a Test Result counter.
tags: [Results|Monitors]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/counter_id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/CounterValues'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/monitors/{counterId}/points:
get:
operationId: GetTestResultMonitorsPoints
summary: Test Result monitors points
description: Provides all the points of a Test Result counter. The values are
the average on the specified interval.
tags: [Results|Monitors]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/counter_id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/Points'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/graph:
post:
operationId: GetTestResultGraph
summary: Test Result Graph
description: |
Provides a graph from some stats of a Test Result.
Element statistics can be mixed with monitor statistics. Only limitation is around PERCENTILES_DURATION element statistic that cannot be mixed with other element statistics neither with monitor statistics.
The graph width is limited to 800 pixels and the graph height is limited to 400 pixels.
tags: [Results|Reporting]
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/TestResultRasterConfiguration'}
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
image/png:
schema: {type: string, format: binary}
image/jpeg:
schema: {type: string, format: binary}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/raw:
get:
operationId: GetTestRawResult
summary: Test Result raw data
description: |
Provides all the Test Result raw data, with a content as CSV or JSON file.
This endpoint may produce large files depending on Test Results. For production purposes please prefer using an API client rather than the browser. Provides the Test Result raw data for an element of category TRANSACTION, with a content as CSV or JSON file.
Retention period for raw data is 7 days after which this will be permanently deleted.
tags: [Results]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/result-format'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
text/csv:
schema:
type: string
format: binary
allOf:
- {$ref: '#/components/schemas/TestRawResult'}
application/json:
schema:
type: string
format: binary
allOf:
- {$ref: '#/components/schemas/TestRawResult'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/report:
post:
operationId: GetTestReportResult
summary: Test Result report
description: |
Provides the PDF Test Result report.
tags: [Results|Reporting]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/TestResultReportBody'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/pdf:
schema: {type: string, format: binary, description: A PDF file report
of a Test Result.}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/graph:
post:
operationId: GetTestResultMultiGraph
summary: Test Results MultiGraph
description: Provides a graph from some stats of some Tests Result. The graph
width is limited to 800 pixels and the graph height is limited to 400 pixels.
tags: [Results|Reporting]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/TestResultRasterMultiConfiguration'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
image/png:
schema: {type: string, format: binary}
image/jpeg:
schema: {type: string, format: binary}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/slas/statistics:
get:
operationId: GetTestResultSLAGlobalIndicators
summary: SLAs global indicators
description: Provides the SLAs global indicators of the Test Result.
tags: [Results|SLAs]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/sla_status'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ArrayOfSLAGlobalIndicatorDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/slas/per-test:
get:
operationId: GetTestResultSLAPerTest
summary: SLAs per test
description: Provides the SLAs per test of a specific Test Result.
tags: [Results|SLAs]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/sla_status'}
- {$ref: '#/components/parameters/sla_category'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ArrayOfSLAPerTestResultDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/test-results/{resultId}/slas/per-interval:
get:
operationId: GetTestResultSLAPerInterval
summary: SLAs per time interval
description: Provides the SLAs per time interval of a specific Test Result.
tags: [Results|SLAs]
parameters:
- {$ref: '#/components/parameters/workspace-id'}
- {$ref: '#/components/parameters/result-id'}
- {$ref: '#/components/parameters/sla_status'}
- {$ref: '#/components/parameters/sla_category'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ArrayOfSLAPerIntervalDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/resources/zones:
get:
operationId: GetZones
summary: List all zones
description: Lists the zones.
tags: [Resources|Zones]
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ArrayOfZoneDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/resources/reservations:
get:
operationId: GetReservations
summary: Lists reservations
description: Lists the reservations.
tags: [Resources|Reservations]
parameters:
- {$ref: '#/components/parameters/from_date_time'}
- {$ref: '#/components/parameters/to_date_time'}
- {$ref: '#/components/parameters/page_limit'}
- {$ref: '#/components/parameters/page_offset'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ArrayOfReservationDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/resources/reservations/mode:
get:
operationId: GetReservationsMode
summary: Gives the current reservation mode
description: Gives the current reservation mode status of the account. The reservation
mode status is true if the reservation mode is ON else it is false.
tags: [Resources|Reservations]
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/ReservationModeDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
post:
operationId: switchReservationMode
summary: Changes the current reservation mode
description: Changes the current reservation mode by entering the wanted mode.
Enter true to switch on or false to switch off.
tags: [Resources|Reservations]
responses:
'200':
description: Successful
headers:
Access-Control-Allow-Origin:
schema: {type: string}
'202': {$ref: '#/components/responses/success_202'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/SwitchReservationPostRequest'}
description: Reservation mode wanted
required: true
/v3/information:
get:
operationId: GetInformation
summary: Lists information
description: Returns relevant information regarding Neoload Web resources and
version.
tags: [Information]
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
application/json:
schema: {$ref: '#/components/schemas/InformationDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/usage:
get:
operationId: GetUsage
summary: Lists usage
description: |
Returns relevant usage.
This endpoint may produce large files. For production purposes please prefer using an API client rather than the browser.
tags: [Information]
parameters:
- {$ref: '#/components/parameters/from_date_time'}
- {$ref: '#/components/parameters/to_date_time'}
- {$ref: '#/components/parameters/usage_event_group'}
- {$ref: '#/components/parameters/usage_event_sub_group'}
- {$ref: '#/components/parameters/usage_page_limit'}
- {$ref: '#/components/parameters/page_offset'}
- {$ref: '#/components/parameters/usage-format'}
responses:
'200':
description: OK
headers:
Access-Control-Allow-Origin:
schema: {type: string}
content:
text/csv:
schema: {$ref: '#/components/schemas/Usage'}
application/json:
schema: {$ref: '#/components/schemas/Usage'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/infrastructure-providers:
get:
tags: [Infrastructure Providers]
summary: Get all infrastructure providers of the current account
description: Get all infrastructure providers of the current account with its
information in a JSON format, one object per infrastructure providers
operationId: list_1
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items: {$ref: '#/components/schemas/DynamicInfrastructureProviderApiResponseDto'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/users/{login}:
delete:
tags: [Administration of users]
summary: Delete a user
description: Delete a user with the specified login
operationId: delete_2
parameters:
- name: login
in: path
required: true
schema: {type: string}
- name: removeFromNeotysSaaSAccount
in: query
description: 'SaaS Account-Admin-only option: Remove the user from your Account
on the Neotys user platform'
schema: {type: boolean, default: false}
responses:
'204': {description: OK}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}:
get:
tags: [Workspaces]
summary: Get a Workspace
description: Get a Workspace
operationId: find
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/FullWorkspaceDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
patch:
tags: [Workspaces]
summary: Update a Workspace
description: Update only the specified fields of the Workspace
operationId: patch_1
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/WorkspaceUpdateRequest'}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/FullWorkspaceDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/deletion-policies:
get:
tags: [Deletion Policies]
summary: Get all Policies of a Workspace
operationId: list
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items: {$ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
post:
tags: [Deletion Policies]
summary: Create a new deletion policy
description: Create a new deletion policy
operationId: create
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/BenchDeletionPolicyApiFullRequestDto'}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/deletion-policies/{deletionPolicyId}:
get:
tags: [Deletion Policies]
summary: Get one deletion policy
description: Get one deletion policy
operationId: get
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
- name: deletionPolicyId
in: path
required: true
schema: {type: string}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
put:
tags: [Deletion Policies]
summary: Update a deletion policy
description: Update all field of the deletion policy
operationId: put
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
- name: deletionPolicyId
in: path
required: true
schema: {type: string}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/BenchDeletionPolicyApiFullRequestDto'}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
delete:
tags: [Deletion Policies]
summary: Delete a deletion policy
description: Delete a deletion policy
operationId: delete
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
- name: deletionPolicyId
in: path
required: true
schema: {type: string}
responses:
'204': {description: OK}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
patch:
tags: [Deletion Policies]
summary: Partially Update a deletion policy
description: Update only the specified fields of the deletion policy
operationId: patch
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
- name: deletionPolicyId
in: path
required: true
schema: {type: string}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/BenchDeletionPolicyApiUpdateRequestDto'}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/members/add:
patch:
tags: [Workspaces]
summary: Add member(s) to a Workspace
description: Add member(s) to a Workspace
operationId: addMembersToWorkspace
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/MemberListDefinition'}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/FullWorkspaceDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/members/remove:
patch:
tags: [Workspaces]
summary: Remove member(s) from a Workspace
description: Remove member(s) from a Workspace
operationId: removeMembersFromWorkspace
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/MemberListDefinition'}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/FullWorkspaceDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/name/{workspaceName}:
delete:
tags: [Workspaces]
summary: Delete a Workspace
description: 'WARNING: All related resources will be deleted and definitively
lost. Delete the Workspace with the specified id. The Workspace name is also
required to make sure you actually delete the good Workspace.'
operationId: delete_1
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
- name: workspaceName
in: path
required: true
schema: {type: string}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/FullWorkspaceDefinition'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
/v3/workspaces/{workspaceId}/tests/{testId}/analysis:
get:
tags: [Tests|Test Analysis]
summary: Get Test Analysis configuration
description: Get the Test Analysis configuration for the specified Test
operationId: get_1
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
- name: testId
in: path
required: true
schema: {type: string}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/TestSettingsApiResponseDto'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
put:
tags: [Tests|Test Analysis]
summary: Update Test Analysis configuration
description: Update the Test Analysis configuration for the specified Test
operationId: put_1
parameters:
- name: workspaceId
in: path
required: true
schema: {type: string}
- name: testId
in: path
required: true
schema: {type: string}
requestBody:
content:
application/json:
schema: {$ref: '#/components/schemas/TestSettingsApiFullRequestDto'}
responses:
'200':
description: OK
content:
application/json:
schema: {$ref: '#/components/schemas/TestSettingsApiResponseDto'}
'400': {$ref: '#/components/responses/error_400'}
'401': {$ref: '#/components/responses/error_401'}
'403': {$ref: '#/components/responses/error_403'}
'404': {$ref: '#/components/responses/error_404'}
'413': {$ref: '#/components/responses/error_413'}
'429': {$ref: '#/components/responses/error_429'}
'500': {$ref: '#/components/responses/error_500'}
security:
- NeoloadAuthorizer: []
components:
parameters:
workspace-id:
name: workspaceId
in: path
required: true
description: Unique identifier representing a Workspace.
schema: {type: string}
result-id:
name: resultId
in: path
required: true
description: Unique identifier representing a specific Test Result.
schema: {type: string}
result-format:
name: format
in: query
required: true
schema:
type: string
enum: [CSV, JSON]
default: CSV
description: The format of the Test Result data.
usage-format:
name: format
in: query
required: true
schema:
type: string
enum: [JSON, CSV]
default: JSON
description: The format of the Usage data.
element_id:
name: elementId
in: path
required: true
description: Unique identifier representing a specific element.
schema: {type: string}
counter_id:
name: counterId
in: path
required: true
description: Unique identifier representing a specific counter.
schema: {type: string}
test-id:
name: testId
in: path
required: true
description: Unique identifier representing a specific test.
schema: {type: string}
event_types:
name: types
in: query
required: false
style: form
explode: false
description: |
The types of the events you expect to get. It will return all the types if the field is left empty. (Ctrl+click to select multiple values)
schema:
type: array
items: {$ref: '#/components/schemas/EventType'}
usage_event_group:
name: groups
in: query
required: false
style: form
explode: false
description: |
The types of the usage data you expect to get. It will return all the types if the field is left empty. (Ctrl+click to select multiple values)
schema:
type: array
items: {$ref: '#/components/schemas/UsageEventGroup'}
usage_event_sub_group:
name: subGroups
in: query
required: false
style: form
explode: false
description: |
The sub types of the usage data you expect to get. It will return all the types if the field is left empty. (Ctrl+click to select multiple values)
schema:
type: array
items: {$ref: '#/components/schemas/UsageEventSubGroup'}
page_limit:
name: limit
in: query
required: false
description: The maximum number of elements returned by this call. The maximum
must be less than or equal to 200.
schema: {type: integer, maximum: 200, default: 50}
usage_page_limit:
name: limit
in: query
required: false
description: The maximum number of elements returned by this call.
schema: {type: integer, default: 0}
page_offset:
name: offset
in: query
required: false
description: The offset of the first element to return. Starting at this offset,
the query will return a maximum of 'limit' elements.
schema: {type: integer, default: 0}
single_sort:
name: sort
in: query
required: false
description: The key to sort the elements on. It may begin with a '+' or a '-'
to specify an ascending or descending sort order. The list of available keys
can be found in the endpoint description.
schema: {type: string}
multi_sort:
name: sort
in: query
required: false
description: Comma-separated list of keys to sort the elements on. Each key
may begin with a '+' or a '-' to specify an ascending or descending sort order.
The list of available keys can be found in the endpoint description.
schema: {type: string}
sla_status:
name: status
in: query
schema:
type: string
enum: [PASSED, WARNING, FAILED]
description: The status of the element you expect to get the SLA for. It will
return all the statuses if the field is left empty.
sla_category:
name: category
in: query
schema:
type: string
enum: [TRANSACTION, ACTION, PAGE, REQUEST]
description: The category of the element you expect to get the SLA for. It will
return all the categories if the field is left empty.
from_date_time:
name: fromDateTime
in: query
required: false
description: Date-time with an offset of the beginning of the search. Format
YYYY-MM-DDTHH:mm:ssZ
Example 2020-01-01T09:00:00+00:00
schema: {type: string}
to_date_time:
name: toDateTime
in: query
required: false
description: Date-time with an offset of the end of the search. Format YYYY-MM-DDTHH:mm:ssZ
Example 2020-01-01T09:00:00+00:00
schema: {type: string}
event-id:
name: eventId
in: path
required: true
description: Unique identifier representing a specific Test Result event.
schema: {type: string}
responses:
success_202:
description: The request has been processed, but no changes have been made due
to internal reasons.
content:
application/json:
schema: {$ref: '#/components/schemas/Success_202_schemas'}
error_400:
description: An error occurred while processing the request. Please verify the
parameters and try again.
content:
application/json:
schema: {$ref: '#/components/schemas/Error'}
error_401:
description: Unauthorized. You must provide an API token.
content:
application/json:
schema: {$ref: '#/components/schemas/Error'}
error_403:
description: You are not allowed to process this request. Please verify the
parameters and try again.
content:
application/json:
schema: {$ref: '#/components/schemas/Error'}
error_404:
description: Resource not found. Please verify the parameters and try again.
content:
application/json:
schema: {$ref: '#/components/schemas/Error'}
error_413:
description: Request entity too large.
content:
application/json:
schema: {$ref: '#/components/schemas/Error'}
error_429:
description: Too many requests. Your maximum number of requests per minute is
reached. Try again soon.
content:
application/json:
schema: {$ref: '#/components/schemas/RateLimitError'}
error_500:
description: Internal server error
content:
application/json:
schema: {$ref: '#/components/schemas/Error'}
error_501:
description: Not Implemented
content:
application/json:
schema: {$ref: '#/components/schemas/Error'}
securitySchemes:
NeoloadAuthorizer: {type: apiKey, name: accountToken, in: header}
schemas:
Empty: {type: object, title: Empty Schema}
TestCreateRequest:
type: object
properties:
name: {type: string, description: Name of the test., example: New Test 1}
description: {type: string, description: Description of the test., example: My
description}
TestUpdate:
type: object
properties:
name: {type: string, description: Name of the test., example: New Test 1}
description: {type: string, description: Description of the test., example: My
description}
scenarioName: {type: string, description: The name of the selected scenario.,
example: scenario1}
controllerZoneId: {type: string, description: The identifier of the controller.,
example: defaultzone}
lgZoneIds:
description: The LG zones with the number of the LGs.
type: object
additionalProperties: {type: integer}
example: {defaultzone: 10, ZoneId: 5}
testResultNamingPattern: {type: string, description: Pattern of the Test Results
name., example: '#${runID}'}
controllerEnvironmentVariables:
description: The environment variables to set on the Controller machine
before starting the test. Allows to override controller.properties with
for example key NL_PROPERTY_[CATEGORY]_[MY_PROPERTY] and value [VALUE].
This functionality requires a Controller of version 2023.4 or higher.
type: object
additionalProperties: {type: string}
example: {NL_PROPERTY_MONITORS_LG_MONITORING_DELAY: '1000', NL_PROPERTY_MONITORS_CONTROLLER_MONITORING_DELAY: '1000'}
TestCreate:
type: object
properties:
name: {type: string, description: Name of the test., example: New Test 1}
description: {type: string, description: Description of the test., example: My
description}
controllerZoneId: {type: string, description: The identifier of the controller.,
example: defaultzone}
lgZoneIds:
description: The LG zones with the number of the LGs.
type: object
additionalProperties: {type: integer}
example: {defaultzone: 10, ZoneId: 5}
loadInjectionProvider: {$ref: '#/components/schemas/LoadInjectionProvider'}
testResultNamingPattern: {type: string, description: Pattern of the Test Results
name., example: '#${runID}'}
controllerEnvironmentVariables:
description: The environment variables to set on the Controller machine
before starting the test. Allows to override controller.properties with
for example key NL_PROPERTY_[CATEGORY]_[MY_PROPERTY] and value [VALUE].
This functionality requires a Controller of version 2023.4 or higher.
type: object
additionalProperties: {type: string}
example: {NL_PROPERTY_MONITORS_LG_MONITORING_DELAY: '1000', NL_PROPERTY_MONITORS_CONTROLLER_MONITORING_DELAY: '1000'}
TestCreated:
type: object
properties:
id: {type: string, description: Unique identifier of the test., example: 5ed5350f-9f2f-4e2a-9acb-cdbcee874256}
name: {type: string, description: Name of the test., example: New Test 1}
description: {type: string, description: Description of the test., example: My
description}
userModifierName: {type: string, description: Identifier of the user who modified
the test.}
creationDate: {type: integer, format: int64, description: 'Timestamp when
the test was created. Number of seconds since January 1, 1970.', example: 1582550441}
lastUpdateDate: {type: integer, format: int64, description: 'Timestamp when
the test was updated for the last time. Number of seconds since January
1, 1970.', example: 1582550442}
controllerZoneId: {type: string, description: The identifier of the controller.,
example: defaultzone}
lgZoneIds:
description: The LG zones with the number of the LGs.
type: object
additionalProperties: {type: integer}
example: {defaultzone: 10, ZoneId: 5}
nextRunId: {type: number, description: The next run number. The value is incremented
at each execution of the test.}
testResultNamingPattern: {type: string, description: Pattern of the Test Results
name., example: '#${runID}'}
controllerEnvironmentVariables:
description: The environment variables to set on the Controller machine
before starting the test. Allows to override controller.properties with
for example key NL_PROPERTY_[CATEGORY]_[MY_PROPERTY] and value [VALUE].
This functionality requires a Controller of version 2023.4 or higher.
type: object
additionalProperties: {type: string}
example: {NL_PROPERTY_MONITORS_LG_MONITORING_DELAY: '1000', NL_PROPERTY_MONITORS_CONTROLLER_MONITORING_DELAY: '1000'}
loadInjectionProvider: {$ref: '#/components/schemas/LoadInjectionProvider'}
LoadInjectionProvider:
description: Test injection provider type
type: string
default: NEOLOAD
enum: [NEOLOAD, JMETER]
TestDefinitionList:
type: array
description: The list of TestDefinition.
items: {$ref: '#/components/schemas/TestDefinition'}
TestDefinition:
type: object
properties:
id: {type: string, description: Unique identifier of the test., example: 5ed5350f-9f2f-4e2a-9acb-cdbcee874256}
name: {type: string, description: Name of the test., example: New Test 1}
description: {type: string, description: Description of the test., example: My
description}
userModifierName: {type: string, description: Identifier of the user who modified
the test.}
creationDate: {type: integer, format: int64, description: 'Timestamp when
the test was created. Number of seconds since January 1, 1970.', example: 1582550441}
lastUpdateDate: {type: integer, format: int64, description: 'Timestamp when
the test was updated for the last time. Number of seconds since January
1, 1970.', example: 1582550442}
scenarioName: {type: string, description: The name of the selected scenario.,
example: scenario1}
controllerZoneId: {type: string, description: The identifier of the controller.,
example: defaultzone}
projectId: {type: string, description: Id of project file., example: 5e5fc0102cc4f82e5d9e18d4}
projectName: {type: string, description: Name of the project., example: Sample
Project}
lgZoneIds:
description: The LG zones with the number of the LGs.
type: object
additionalProperties: {type: integer}
example: {defaultzone: 10, ZoneId: 5}
lastRunDate: {type: integer, format: int64, description: 'Timestamp when the
test was ran for the last time. Number of seconds since January 1, 1970.',
example: 1582550442}
nextRunId: {type: number, description: The next run number. The value is incremented
at each execution of the test.}
testResultNamingPattern: {type: string, description: Pattern of the Test Results
name., example: '#${runID}'}
controllerEnvironmentVariables:
description: The environment variables to set on the Controller machine
before starting the test. Allows to override controller.properties with
for example key NL_PROPERTY_[CATEGORY]_[MY_PROPERTY] and value [VALUE].
This functionality requires a Controller of version 2023.4 or higher.
type: object
additionalProperties: {type: string}
example: {NL_PROPERTY_MONITORS_LG_MONITORING_DELAY: '1000', NL_PROPERTY_MONITORS_CONTROLLER_MONITORING_DELAY: '1000'}
loadInjectionProvider: {$ref: '#/components/schemas/LoadInjectionProvider'}
GetTestDefinition:
allOf:
- {$ref: '#/components/schemas/TestDefinition'}
- type: object
properties:
scenario:
description: Custom scenario from the test, additional info on as-code
scenario can be found on http://www.neotys.com/redirect/redirect.php?target=doc-yaml-scenario
type: object
required: [name, populations]
properties:
name: {type: string, description: 'Unique name/identifier of the scenario,
identical to the name of the test.', example: New Test 1}
store_variables_for_raw_data: {type: boolean, default: false, description: This
option allows storing variables for raw data.}
populations:
type: array
description: The list of runtime settings per population
items:
oneOf:
- type: object
required: [name, rampup_load]
properties:
name: {type: string, description: The name of the population
from NeoLoad project., example: populationRampup}
rampup_load:
type: object
description: A load that generates a number of Virtual Users
that increases throughout the test. Useful for checking
the server behavior under an increasing load.
required: [min_users, max_users, increment_users, increment_every,
duration]
properties:
min_users: {type: number, description: The initial number
of Virtual Users., example: 2}
max_users: {type: number, description: The maximum number
of Virtual Users., example: 10}
increment_users: {type: number, description: The number
of Virtual Users to increment., example: 2}
increment_every: {type: string, description: 'The incrementation
frequency: time length (XhXmXs) or number of iterations
(X iteration or X iterations).', example: 1m}
duration: {type: string, description: 'The duration of the
load policy: time length (XhXmXs) or number of iterations
(X iteration or X iterations).', example: 4m30s}
increment_rampup: {type: string, description: 'Define how
Virtual Users should be started: simultaneously or with
a preset delay (XhXmXs). This rule is used each time
new Virtual Users are created, at each load increase
for a ramp-up load policy.', example: 30s}
- type: object
required: [name, constant_load]
properties:
name: {type: string, description: The name of the population
from NeoLoad project., example: populationConstant}
constant_load:
type: object
description: A load that generates a fixed number of Virtual
Users.
required: [users, duration]
properties:
users: {type: number, description: The fixed number of Virtual
Users., example: 10}
duration: {type: string, description: 'The duration of the
load policy: time length (XhXmXs) or number of iterations
(X iteration or X iterations).', example: 1h}
rampup: {type: string, description: 'Define how Virtual
Users should be started: simultaneously or with a preset
delay (XhXmXs).', example: 10m}
TestResultDefinition:
type: object
properties:
id: {type: string, description: Unique identifier of the Test Result.}
name: {type: string, description: Name of the Test Result.}
description: {type: string, description: Description of the Test Result.}
author: {type: string, description: First and Last name of the person who
launched the test.}
terminationReason:
type: string
enum: [POLICY, VARIABLE, MANUAL, LG_AVAILABILITY, LICENSE, FAILED_TO_START,
CANCELLED, RESERVATION_ENDED, UNKNOWN]
description: Reason that caused the test to end.
lgCount: {type: integer, description: Total number of Load Generators used
in the Test Result.}
project: {type: string, description: Name of the project.}
scenario: {type: string, description: Name of the scenario.}
status:
type: string
enum: [INIT, STARTING, RUNNING, TERMINATED, UNKNOWN]
description: Status of the Test Result.
qualityStatus:
type: string
enum: [PASSED, FAILED, COMPUTING, UNKNOWN]
description: Quality status of the Test Result.
startDate: {type: integer, format: int64, description: Timestamp when the
test started.}
endDate: {type: integer, format: int64, description: Timestamp when the test
ended.}
duration: {type: integer, format: int64, description: Test duration in seconds.}
testId: {type: string, description: Unique identifier of the test., example: 5ed5350f-9f2f-4e2a-9acb-cdbcee874256}
externalUrl: {type: string, description: 'Optional URL to an external system,
for example the CI job''s link.', example: 'https://dev.azure.com/myorg/myproject/_build?definitionId=123'}
externalUrlLabel: {type: string, description: 'Optional label to describe
the external URL, for example the CI name or job ID.', example: AzureDevOps#123}
isLocked: {type: boolean, description: Locks a Test Result (avoid automatic
deletion).}
TestResultStopRequest:
type: object
properties:
stopPolicy:
type: string
enum: [GRACEFUL, TERMINATE]
description: How to stop the Test Result. Default is GRACEFUL.- GRACEFUL
stops gently the Test Result.
- TERMINATE terminates the Test Result
(kill it).
example: GRACEFUL
TestResultLogs:
type: object
properties:
content: {type: string, description: The content of the log.}
timestamp: {type: integer, format: int64, description: The timestamp (GMT+0)
in millisecond of the operation described by the content.}
type: {type: string, description: The source of the log line.}
TestResultUpdateRequest:
type: object
properties:
name: {type: string, description: Name of the Test Result.}
description: {type: string, description: Description of the Test Result.}
qualityStatus:
type: string
enum: [PASSED, FAILED]
description: Quality status of the Test Result.
externalUrl: {type: string, description: 'Optional URL to an external system,
for example the CI job''s link.'}
externalUrlLabel: {type: string, description: 'Optional label to describe
the external URL, for example the CI name or job ID.'}
isLocked: {type: boolean, description: Locks a Test Result (avoid automatic
deletion).}
workspaceId: {type: string, description: 'Workspace of the Test Result. WARNING
! When moving a Test Result to another Workspace, all the dashboards data
linked to the selected Test Results will be deleted! Running Test Results
will not be moved.'}
testId: {type: string, description: Test of the Test Result.}
SwitchReservationPostRequest:
type: object
properties:
enabled: {type: boolean}
MonitorPostRequest:
type: object
properties:
monitors:
type: array
items: {$ref: '#/components/schemas/CustomMonitor'}
TestResultStatistics:
type: object
properties:
totalRequestCountSuccess: {type: integer, format: int64, description: Total
number of requests in the scenario that did not encounter any error.}
totalRequestCountFailure: {type: integer, format: int64, description: Total
number of requests in the scenario that encountered errors.}
totalRequestDurationAverage: {type: number, format: float, description: Average
time in seconds for all requests of the scenario to be performed (from
first byte sent to last byte received).}
totalRequestCountPerSecond: {type: number, format: float, description: Total
number of requests in the scenario that are performed per second.}
totalTransactionCountSuccess: {type: integer, format: int64, description: Total
number of the scenario Transactions executed without encountering any
error.}
totalTransactionCountFailure: {type: integer, format: int64, description: Total
number of the scenario Transactions executed with errors.}
totalTransactionDurationAverage: {type: number, format: float, description: Average
time in seconds for all Transactions of the scenario to be executed.}
totalTransactionCountPerSecond: {type: number, format: float, description: Total
number of the scenario Transactions executed per second.}
totalIterationCountSuccess: {type: integer, format: int64, description: Total
number of times when the 'Actions' Container was run for each Virtual
User without encountering any error.}
totalIterationCountFailure: {type: integer, format: int64, description: Total
number of times when the 'Actions' Container was run for each Virtual
User and encountered an error.}
totalGlobalDownloadedBytes: {type: integer, format: int64, description: Total
size of http traffic received in bytes.}
totalGlobalDownloadedBytesPerSecond: {type: number, format: float, description: Average
size of http traffic received in bytes per second.}
totalGlobalCountFailure: {type: integer, format: int64, description: ''}
lastRequestCountPerSecond: {type: number, format: float, description: Last
value received for the number of requests in the scenario that are performed
per second.}
lastTransactionDurationAverage: {type: number, format: float, description: Last
value received for the average time in milliseconds for all Transactions
of the scenario.}
lastVirtualUserCount: {type: integer, format: int32, description: Last value
received for the total number of Virtual Users executed in the test.}
ElementDefinition:
type: object
properties:
id: {type: string, description: Unique identifier of the element., example: a6f2f595-7b62-4dc4-9368-a1cf670cd924}
name: {type: string, description: Name of the element., example: /home/login}
path:
type: array
description: Full path of the element including the element itself.
items: {type: string}
example: [UserPath, Actions, Transaction login, Login page, /home/login]
type: {type: string, description: Type of the element.}
Values:
type: array
items:
type: object
properties:
elementId: {type: string, description: Unique identifier of the element.,
example: a6f2f595-7b62-4dc4-9368-a1cf670cd924}
userpath: {type: string, description: The name of the user path in which
the element is., example: MyUserpath}
count: {type: integer, format: int64, description: 'Count statistics are
the number of full executions of an element of a User Path. If the element
is interrupted (because of error or end of test), then the count number
is not incremented.'}
elementPerSecond: {type: number, format: float, description: Number of iterations
of the element per second.}
minDuration: {type: integer, format: int64, description: 'Shortest response
time, in milliseconds.'}
maxDuration: {type: integer, format: int64, description: 'Longest response
time, in milliseconds.'}
avgDuration: {type: number, format: float, description: 'Average response
time, in milliseconds.'}
minTTFB: {type: integer, format: int64, description: 'Shortest time to first
byte, in milliseconds.'}
maxTTFB: {type: integer, format: int64, description: 'Longest time to first
byte, in milliseconds.'}
avgTTFB: {type: number, format: float, description: 'Average time to first
byte, in milliseconds.'}
failureCount: {type: integer, format: int64, description: Count of failed
iterations.}
failureRate: {type: number, format: float, description: Percentage of failed
iterations out of count.}
percentile50: {type: number, format: float, description: '50th percentile
of the element duration, in milliseconds.'}
percentile90: {type: number, format: float, description: '90th percentile
of the element duration, in milliseconds.'}
percentile95: {type: number, format: float, description: '95th percentile
of the element duration, in milliseconds.'}
percentile99: {type: number, format: float, description: '99th percentile
of the element duration, in milliseconds.'}
standardDeviation: {type: number, format: float, description: 'Standard
deviation of the element duration, in milliseconds.'}
ElementValues:
type: object
properties:
count: {type: integer, format: int64, description: 'Count statistics are the
number of full executions of an element of a User Path. If the element
is interrupted (because of error or end of test), then the count number
is not incremented.'}
elementPerSecond: {type: number, format: float, description: Number of iterations
of the element per second.}
minDuration: {type: integer, format: int64, description: 'Shortest response
time, in milliseconds.'}
maxDuration: {type: integer, format: int64, description: 'Longest response
time, in milliseconds.'}
sumDuration: {type: integer, format: int64, description: 'Sum of response
time of all iterations, in milliseconds.'}
avgDuration: {type: number, format: float, description: 'Average response
time, in milliseconds.'}
minTTFB: {type: integer, format: int64, description: 'Shortest time to first
byte, in milliseconds.'}
maxTTFB: {type: integer, format: int64, description: 'Longest time to first
byte, in milliseconds.'}
sumTTFB: {type: integer, format: int64, description: 'Sum of time to first
byte of all iterations, in milliseconds.'}
avgTTFB: {type: number, format: float, description: 'Average time to first
byte, in milliseconds.'}
sumDownloadedBytes: {type: integer, format: int64, description: 'Total size
of network traffic for the element, in bytes.'}
downloadedBytesPerSecond: {type: number, format: float, description: 'Average
size of network traffic for the element, in bytes per seconds.'}
successCount: {type: integer, format: int64, description: Count of succeeded
iterations.}
successPerSecond: {type: number, format: float, description: Count of succeeded
iterations per second.}
successRate: {type: number, format: float, description: Percentage of succeeded
iterations out of count.}
failureCount: {type: integer, format: int64, description: Count of failed
iterations.}
failurePerSecond: {type: number, format: float, description: Count of failed
iterations per second.}
failureRate: {type: number, format: float, description: Percentage of failed
iterations out of count.}
percentile50: {type: number, format: float, description: '50th percentile
of the element duration, in milliseconds.'}
percentile90: {type: number, format: float, description: '90th percentile
of the element duration, in milliseconds.'}
percentile95: {type: number, format: float, description: '95th percentile
of the element duration, in milliseconds.'}
percentile99: {type: number, format: float, description: '99th percentile
of the element duration, in milliseconds.'}
standardDeviation: {type: number, format: float, description: 'Standard deviation
of the element duration, in milliseconds.'}
Sla:
type: object
properties:
status:
type: string
enum: [PASSED, WARNING, FAILED, NO SLA]
CustomMonitorValues:
type: array
items:
type: object
properties:
timestamp: {type: integer, format: int64, description: Timestamp in seconds
for the value.}
value: {type: number, format: float, description: Number for the value.}
Points:
type: array
items: {$ref: '#/components/schemas/Point'}
Point:
type: object
properties:
from: {type: integer, format: int64, description: ''}
to: {type: integer, format: int64, description: ''}
AVG_DURATION: {type: number, format: float, description: ''}
MIN_DURATION: {type: number, format: float, description: ''}
MAX_DURATION: {type: number, format: float, description: ''}
COUNT: {type: number, format: float, description: ''}
THROUGHPUT: {type: number, format: float, description: ''}
ELEMENTS_PER_SECOND: {type: number, format: float, description: ''}
ERRORS: {type: number, format: float, description: ''}
ERRORS_PER_SECOND: {type: number, format: float, description: ''}
ERROR_RATE: {type: number, format: float, description: ''}
AVG_TTFB: {type: number, format: float, description: ''}
MIN_TTFB: {type: number, format: float, description: ''}
MAX_TTFB: {type: number, format: float, description: ''}
AVG: {type: number, format: float, description: ''}
CounterDefinitionArray:
type: array
items: {$ref: '#/components/schemas/CounterDefinition'}
CounterDefinition:
type: object
properties:
id: {type: string, description: Unique identifier of the counter.}
name: {type: string, description: Name of the counter.}
path:
type: array
description: Full path of the counter including the counter itself.
items: {type: string}
CustomMonitor:
type: object
properties:
name: {type: string, description: Name of custom monitor.}
path:
type: array
description: Path of the custom monitor.
items: {type: string}
unit: {type: string, description: Unit of the custom monitor.}
values: {type: object, required: true, $ref: '#/components/schemas/CustomMonitorValues'}
CounterValues:
type: object
properties:
count: {type: integer, format: int64, description: ''}
min: {type: integer, format: int64, description: ''}
max: {type: integer, format: int64, description: ''}
sum: {type: integer, format: int64, description: ''}
avg: {type: number, format: float, description: ''}
Success_202_schemas:
type: object
properties:
code: {type: integer}
message: {type: string}
description: |
Existing error codes are:
- HTTP 202 | Code: 501 | Message : All connected resources must be available.
- HTTP 202 | Code: 502 | Message : Your license does not allow you to turn on the reservation mode.
Error:
type: object
properties:
code: {type: integer}
message: {type: string}
description: |
Existing error codes are:
- HTTP 401 | Code: 101 | Message : Unauthorized, please provide an API token.
- HTTP 429 | Code: 102 | Message : Too many requests, you reached your maximum number of requests per minute.
- HTTP 403 | Code: 103 | Message : Unauthorized operation for the given API token, please provide an API token with sufficient privilege
- HTTP 400 | Code: 104 | Message : Error while parsing json body.
- HTTP 400 | Code: 105 | Message : Entity not in the specified Workspace.
- HTTP 404 | Code: 201 | Message : Test Result not found.
- HTTP 400 | Code: 202 | Message : Error while requesting the Test Result
- HTTP 400 | Code: 203 | Message : Error while searching the Test Result
- HTTP 400 | Code: 204 | Message : Type is mandatory as request parameter.
- HTTP 400 | Code: 205 | Message : Invalid element type in request.
- HTTP 400 | Code: 206 | Message : Error requesting aggregated values.
- HTTP 400 | Code: 207 | Message : Error requesting elements.
- HTTP 400 | Code: 208 | Message : Element ID is mandatory in request path.
- HTTP 400 | Code: 209 | Message : Invalid element id in request.
- HTTP 400 | Code: 210 | Message : Statistics is mandatory in request path.
- HTTP 400 | Code: 211 | Message : Invalid statistic in request.
- HTTP 400 | Code: 212 | Message : Error getting monitors.
- HTTP 400 | Code: 213 | Message : Error getting monitor values.
- HTTP 400 | Code: 214 | Message : Error getting monitor points.
- HTTP 400 | Code: 215 | Message : Monitor ID is mandatory in request path.
- HTTP 400 | Code: 216 | Message : Test ID is mandatory in request path.
- HTTP 400 | Code: 217 | Message : Error while deleting the test. This test is not TERMINATED.
- HTTP 400 | Code: 218 | Message : Error while deleting the test.
- HTTP 400 | Code: 219 | Message : Error requesting aggregated points.
- HTTP 400 | Code: 220 | Message : Error requesting SLA status for element.
- HTTP 400 | Code: 221 | Message : Error updating a Test Result.
- HTTP 404 | Code: 222 | Message : Fail to attach the Test Result to a Test because Test not found.
- HTTP 204 | Code: 223 | Message : Update successful, no content.
- HTTP 400 | Code: 224 | Message : Error while parsing json body for updating a test.
- HTTP 400 | Code: 225 | Message : Error while parsing json body for custom monitors.
- HTTP 400 | Code: 226 | Message : Error while creating custom monitors.
- HTTP 400 | Code: 227 | Message : Path too long.
- HTTP 400 | Code: 228 | Message : Clock Synchronization Issue: timestamp received before the beginning of the test.
- HTTP 400 | Code: 229 | Message : Clock Synchronization Issue: timestamp received more than 10 minutes in the future.
- HTTP 400 | Code: 230 | Message : Duplicate key: same timestamp and same path received in multiple requests.
- HTTP 400 | Code: 231 | Message : Max number of Paths reached.
- HTTP 400 | Code: 232 | Message : Max number of Monitors reached.
- HTTP 400 | Code: 233 | Message : '|' character is not allowed.
- HTTP 400 | Code: 234 | Message : A test is already launching.
- HTTP 400 | Code: 235 | Message : Error while parsing the LG zones parameter.
- HTTP 400 | Code: 236 | Message : NeoLoad project file ID does not exist.
- HTTP 400 | Code: 237 | Message : NeoLoad project not found.
- HTTP 400 | Code: 238 | Message : Upload project URL not found.
- HTTP 400 | Code: 239 | Message : The scenario does not exist.
- HTTP 400 | Code: 240 | Message : The size of the image to generate is invalid.
- HTTP 400 | Code: 241 | Message : Reservation parameters are invalid.
- HTTP 400 | Code: 242 | Message : Reservation duration must be at least 60 seconds.
- HTTP 400 | Code: 243 | Message : Reservation not found.
- HTTP 400 | Code: 244 | Message : Reservation is failed or not ready to use.
- HTTP 400 | Code: 245 | Message : Reservation not matching scenario requirements: Number of virtual users.
- HTTP 400 | Code: 246 | Message : Unauthorized Reservation
- HTTP 400 | Code: 247 | Message : Error requesting SLA Per-Run of the Test Result.
- HTTP 400 | Code: 248 | Message : Error requesting SLA Per-Run while the test is not terminated.
- HTTP 400 | Code: 249 | Message : As-code file extension must be yaml, yml or json.
- HTTP 400 | Code: 250 | Message : Error getting Test Results events.
- HTTP 400 | Code: 251 | Message : Error requesting element.
- HTTP 400 | Code: 252 | Message : Error requesting counter.
- HTTP 400 | Code: 253 | Message : Invalid monitor id in request.
- HTTP 400 | Code: 254 | Message : Invalid as-code file path.
- HTTP 400 | Code: 255 | Message : Error requesting all zones.
- HTTP 400 | Code: 256 | Message : Error requesting all reservations.
- HTTP 400 | Code: 257 | Message : The date is not in the right format.
- HTTP 400 | Code: 306 | Message : Date range invalid, start date should be before end date.
- HTTP 400 | Code: 260 | Message : Requested statistics are not valid, PERCENTILES_DURATION must not be mixed with other element statistics neither with monitor statistic.
- HTTP 400 | Code: 261 | Message : A test with the same name already exists.
- HTTP 400 | Code: 262 | Message : Error while processing json body. It is not a valid json.
- HTTP 400 | Code: 263 | Message : The name property is required.
- HTTP 400 | Code: 264 | Message : The property lgZones is a bad format.
- HTTP 404 | Code: 265 | Message : Test not found.
- HTTP 400 | Code: 266 | Message : Format is mandatory as request parameter.
- HTTP 400 | Code: 267 | Message : Invalid format in request.
- HTTP 400 | Code: 268 | Message : This name is already used for a scenario in the project.
- HTTP 400 | Code: 270 | Message : Fail to move to Workspace and attach to a Test because Test not in destination Workspace.
- HTTP 400 | Code: 271 | Message : Fail to move to Workspace and attach to a Test.
- HTTP 400 | Code: 272 | Message : The Test Result has been successfully moved to the specified Workspace and Test but other fields update failed.
- HTTP 400 | Code: 275 | Message : Unknown stopPolicy value. Allowed are TERMINATE or GRACEFUL.
- HTTP 400 | Code: 276 | Message : Error stopping the test.
- HTTP 400 | Code: 277 | Message : Error stopping the test. The test is not running.
- HTTP 400 | Code: 278 | Message : Zone does not exist.
- HTTP 400 | Code: 279 | Message : Error starting the test.
- HTTP 400 | Code: 280 | Message : The workspace id is mandatory.
- HTTP 400 | Code: 281 | Message : The workspace name can't be empty.
- HTTP 400 | Code: 282 | Message : The workspace name already exist.
- HTTP 400 | Code: 283 | Message : Can not delete default workspace.
- HTTP 400 | Code: 284 | Message : The workspace can not be deleted : One or more tests are running.
- HTTP 400 | Code: 285 | Message : Login(s) don't exist : ${loginList}
- HTTP 400 | Code: 286 | Message : Workspace id and name do not match, not proceeding.
- HTTP 400 | Code: 287 | Message : Workspace is public (allUsersEnabled) : can not specify members.
- HTTP 404 | Code: 288 | Message : The workspace does not exist.
- HTTP 404 | Code: 289 | Message : No data found.
- HTTP 400 | Code: 290 | Message : This user is still in the LDAP, to remove it from NLWeb, remove it from the LDAP. No need to call this endpoint.
- HTTP 404 | Code: 291 | Message : This user does not exist.
- HTTP 400 | Code: 292 | Message : This option is only allowed in NLWeb SaaS.
- HTTP 400 | Code: 293 | Message : User self-deletion is forbidden.
- HTTP 400 | Code: 294 | Message : Only allowed for users with Account Administrator roles (SaaS only role).
- HTTP 400 | Code: 295 | Message : User "admin" cannot be deleted.
- HTTP 400 | error: FILE_ID_NOT_FOUND | Message : File ID not found.
- HTTP 400 | error: FILE_CANCELED | Message : Upload for file ID has been canceled.
- HTTP 400 | error: INVALID_FILE_STATUS | Message : File status is invalid.
- HTTP 400 | error: INVALID_FILE_ID | Message : Invalid file ID.
- HTTP 400 | error: FILE_TOO_LARGE | Message : File is too large.
- HTTP 400 | error: MAX_UPLOADED_FILES_REACHED | Message : Maximum uploaded files is reached.
- HTTP 400 | error: PARSING_ERROR_NO_NLP | Message : No .nlp file found in project archive.
- HTTP 400 | error: PARSING_ERROR_NO_SCENARIO_DEFINED | Message : No NeoLoad scenario found in project archive.
- HTTP 400 | error: PARSING_INVALID_ZIP_STREAM | Message : Invalid stream, not a zip.
- HTTP 400 | error: PARSING_INVALID_AS_CODE_FILE | Message : Invalid as-code file.
- HTTP 400 | error: PARSING_INVALID_AS_CODE_FILE_PATH | Message : Invalid as-code file path found.
- HTTP 400 | Code: 304 | Message : Invalid color in request.
- HTTP 400 | Code: 305 | Message : The field elementPath is mandatory.
- HTTP 400 | Code: 450 | Message : No Controller available in the given zone.
- HTTP 400 | Code: 451 | Message : Controllers in the given zone can not be used, minimum version requirement not fulfilled.
- HTTP 400 | Code: 452 | Message : Not enough Load Generator for available Controller versions, Controller and Load Generator need to have the same version in a run.
- HTTP 400 | Code: 454 | Message : Not enough VU from license for running the test.
- HTTP 400 | Code: 456 | Message : Not enough VU from reservation for running the test.
- HTTP 400 | Code: 457 | Message : Reservation duration is not enough for running the test, it must be longer than the test duration increased by 20 minutes.
- HTTP 400 | Code: 458 | Message : The number of Cloud Load Generators exceeds the current capacity. Please contact your NeoLoad representative.
- HTTP 400 | Code: 459 | Message : The number of Dynamic Load Generators exceeds the current capacity. Please contact your NeoLoad representative.
- HTTP 400 | Code: 460 | Message : The Neoload cloud platform is not available.
- HTTP 400 | Code: 461 | Message : Not enough cloud credits available to start NCP infrastructure.
- HTTP 400 | Code: 462 | Message : Not enough VUH available for running the test.
- HTTP 400 | Code: 463 | Message : Not enough concurrent runs available.
- HTTP 503 | Code: 300 | Message : An unexpected error occurred while processing the request.
- HTTP 501 | Code: 301 | Message : Not supported when the reservation mode is enabled.
- HTTP 501 | Code: 302 | Message : Not supported when the reservation mode is OFF.
- HTTP 413 | Message : Request Entity Too Large.
PostCustomEventError:
type: object
properties:
code: {type: integer, example: 404}
message: {type: string, example: Event start timestamp is after the bench
end timestamp. Make sure the timestamp is in seconds.}
description: |
- HTTP 400 | Code: 400 | Message : Error while parsing json body for custom event.
- HTTP 400 | Code: 401 | Message : Bench did not start yet.
- HTTP 400 | Code: 402 | Message : Event start timestamp is before bench start timestamp.
- HTTP 400 | Code: 403 | Message : Event start timestamp is in the future. Make sure the timestamp is in seconds.
- HTTP 400 | Code: 404 | Message : Event start timestamp is after the bench end timestamp. Make sure the timestamp is in seconds.
- HTTP 400 | Code: 405 | Message : Event end timestamp is before the event start timestamp.
- HTTP 400 | Code: 406 | Message : Event end timestamp is in the future. Make sure the timestamp is in seconds.
- HTTP 400 | Code: 407 | Message : Event end timestamp is after the bench end timestamp. Make sure the timestamp is in seconds.
- HTTP 400 | Code: 408 | Message : Event with INSTANT timeframe cannot have a end timestamp.
- HTTP 400 | Code: 409 | Message : Event name is empty.
- HTTP 400 | Code: 410 | Message : Event name is too long.
- HTTP 400 | Code: 411 | Message : Event code is too long.
- HTTP 400 | Code: 412 | Message : Event source is too long.
- HTTP 400 | Code: 413 | Message : Event description is too long.
- HTTP 400 | Code: 414 | Message : Event url is too long.
- HTTP 400 | Code: 415 | Message : Max count of custom event reached.
PatchCustomEventError_400:
type: object
properties:
code: {type: integer, example: 404}
message: {type: string, example: Event end timestamp is after the bench end
timestamp. Make sure the timestamp is in seconds.}
description: |
- HTTP 400 | Code: 400 | Message : Error while parsing json body for custom event.
- HTTP 400 | Code: 405 | Message : Event end timestamp is before the event start timestamp.
- HTTP 400 | Code: 406 | Message : Event end timestamp is in the future. Make sure the timestamp is in seconds.
- HTTP 400 | Code: 407 | Message : Event end timestamp is after the bench end timestamp. Make sure the timestamp is in seconds.
- HTTP 400 | Code: 413 | Message : Event description is too long.
- HTTP 400 | Code: 414 | Message : Event url is too long.
PatchCustomEventError_404:
type: object
properties:
code: {type: integer, example: 417}
message: {type: string, example: Event with this eventId cannot be found for
this bench.}
description: |
- HTTP 404 | Code: 417 | Message : Event with this eventId cannot be found for this bench.
RateLimitError:
type: object
properties:
code: {type: integer}
message: {type: string}
retry-after: {type: integer}
ArrayOfTestResultDefinition:
type: array
items: {$ref: '#/components/schemas/TestResultDefinition'}
ArrayOfElementDefinition:
type: array
items: {$ref: '#/components/schemas/ElementDefinition'}
ProjectDefinition:
type: object
properties:
projectId: {type: string, description: Id of project file., example: 5e5fc0102cc4f82e5d9e18d4}
projectName: {type: string, description: Neoload Project name.}
projectVersion: {type: string, description: Neoload Project version.}
asCodeFiles:
type: array
items: {$ref: '#/components/schemas/AsCodeFile'}
scenarios:
type: array
items: {$ref: '#/components/schemas/ScenarioDefinition'}
ScenarioDefinition:
type: object
properties:
scenarioName: {type: string, description: Scenario name.}
scenarioDuration: {type: integer, format: int64, description: Duration (in
seconds) of the scenario.}
scenarioVUs: {type: integer, format: int32, description: Total Virtual User
number of the scenario. Return 0 if the Virtual User number is not determined.}
scenarioSource: {type: string, description: The scenarion location. Can be
a yaml file or NLP path.}
AsCodeFile:
type: object
properties:
path: {type: string, description: The yaml file path}
includes:
type: array
description: List of yaml files included
items: {type: string}
RunTestDefinition:
type: object
properties:
resultId: {type: string, description: Unique identifier of the Test Result.}
ArrayOfEventDefinition:
type: array
items: {$ref: '#/components/schemas/EventDefinition'}
EventDefinition:
type: object
properties:
id: {type: string}
code: {type: string}
elementid: {type: string, format: uuid}
fullname: {type: string}
offset: {type: integer, format: int64}
type: {$ref: '#/components/schemas/EventType'}
duration: {type: integer}
source: {type: string}
EventType:
type: string
enum: [ERROR, SLA, ALERT, CUSTOM, OBJECTIVE]
description: Type of the event
UsageEventGroup:
type: string
enum: [Licensing, Runtime]
description: Group of the event
UsageEventSubGroup:
type: string
enum: [Lease, Result, VUH]
description: Sub Group of the event
TestResultRasterConfiguration:
type: object
properties:
width: {type: integer, format: int32, description: The width of the generated
graph., example: 600}
height: {type: integer, format: int32, description: The height of the generated
graph., example: 200}
title: {type: string, description: The main title of the generated graph.,
example: My Test}
rasterType:
type: string
enum: [PNG, JPEG]
description: The type of the generated graph. Can be PNG or JPEG. Default
is PNG.
example: PNG
xAxisLabel: {type: string, description: The xAxis label of the generated graph.,
example: X Axis}
yAxisLabel: {type: string, description: The yAxis label of the generated graph.,
example: Y Axis}
legend: {type: boolean, description: If true the legend is displayed. Default
is true., example: true}
multiYAxis: {type: boolean, description: 'If true, display one axis per serie.
Default is false.', example: true}
theme:
type: string
enum: [DARK, LIGHT, TRANSPARENT]
description: The theme of the graph. Default is TRANSPARENT.
example: DARK
elementIds:
type: array
description: The list of elements.
items: {$ref: '#/components/schemas/ElementIdDefinition'}
example:
- id: all-requests
statistics: [AVG_DURATION]
counterIds:
type: array
description: The list of counters.
items: {type: string}
example: [a4bed45a-06b2-48e1-94fd-3ea979e4f360, b5be82ff-3563-4812-93a5-4ea888e4e254]
TestResultRasterMultiConfiguration:
type: object
properties:
width: {type: integer, format: int32, description: The width of the generated
graph., example: 600}
height: {type: integer, format: int32, description: The height of the generated
graph., example: 200}
title: {type: string, description: The main title of the generated graph.,
example: My Test}
rasterType:
type: string
enum: [PNG, JPEG]
description: The type of the generated graph. Can be PNG or JPEG. Default
is PNG.
example: PNG
xAxisLabel: {type: string, description: The xAxis label of the generated graph.,
example: X Axis}
yAxisLabel: {type: string, description: The yAxis label of the generated graph.,
example: Y Axis}
legend: {type: boolean, description: If true the legend is displayed. Default
is true., example: true}
multiYAxis: {type: boolean, description: 'If true, display one axis per serie.
Default is false.', example: true}
theme:
type: string
enum: [DARK, LIGHT, TRANSPARENT]
description: The theme of the graph. Default is TRANSPARENT.
example: DARK
resultIds:
type: object
additionalProperties: {$ref: '#/components/schemas/TestResultIdDefinition'}
example:
d30fdcc2-319e-4be5-818e-f1978907a3ce:
elementIds:
- id: all-requests
statistics: [AVG_DURATION]
- id: b8bfc48e-b7ed-48f8-b5ea-404d3faf15cb
statistics: [AVG_DURATION, ELEMENTS_PER_SECOND]
dbe589d4-a10c-48d1-999e-da1fafa5df28:
elementIds:
- id: all-requests
statistics: [AVG_DURATION]
counterIds: [a4bed45a-06b2-48e1-94fd-3ea979e4f360, b5be82ff-3563-4812-93a5-4ea888e4e254]
TestResultIdDefinition:
type: object
description: The map of Test Result ids with their own statistics and counters
definition.
properties:
elementIds:
type: array
description: The list of elements.
items: {$ref: '#/components/schemas/ElementIdDefinition'}
counterIds:
type: array
description: The list of counters.
items: {type: string}
ElementIdDefinition:
type: object
properties:
id: {type: string, description: 'The id of the element. Can be a specific
element identifier or one of the following keywords: - all-requests -
all-pages - all-transactions', example: a6f2f595-7b62-4dc4-9368-a1cf670cd924}
statistics:
type: array
items:
type: string
enum: [AVG_DURATION, MIN_DURATION, MAX_DURATION, COUNT, THROUGHPUT, ELEMENTS_PER_SECOND,
ERRORS, ERRORS_PER_SECOND, ERROR_RATE, AVG_TTFB, MIN_TTFB, MAX_TTFB,
PERCENTILES_DURATION]
description: |
Comma-separated list of statistics to get.
Available statistics are:
- AVG_DURATION (ms)
- MIN_DURATION (ms)
- MAX_DURATION (ms)
- COUNT
- THROUGHPUT (Byte/s)
- ELEMENTS_PER_SECOND
- ERRORS
- ERRORS_PER_SECOND
- ERROR_RATE (%)
- AVG_TTFB (ms)
- MIN_TTFB (ms)
- MAX_TTFB (ms)
- PERCENTILES_DURATION (ms)
Warning: PERCENTILES_DURATION cannot be mixed with other statistics.
example: [AVG_DURATION, ELEMENTS_PER_SECOND]
ArrayOfSLAGlobalIndicatorDefinition:
type: array
items: {$ref: '#/components/schemas/SLAGlobalIndicatorDefinition'}
SLAGlobalIndicatorDefinition:
type: object
properties:
kpi: {$ref: '#/components/schemas/SLAKPIDefinition'}
status: {$ref: '#/components/schemas/SLAStatusDefinition'}
value: {$ref: '#/components/schemas/SLAValueDefinition'}
warningThreshold: {$ref: '#/components/schemas/ThresholdDefinition'}
failedThreshold: {$ref: '#/components/schemas/ThresholdDefinition'}
ArrayOfSLAPerTestResultDefinition:
type: array
items: {$ref: '#/components/schemas/SLAPerTestResultDefinition'}
SLAPerTestResultDefinition:
type: object
properties:
kpi: {$ref: '#/components/schemas/SLAKPIDefinition'}
status: {$ref: '#/components/schemas/SLAStatusDefinition'}
value: {$ref: '#/components/schemas/SLAValueDefinition'}
warningThreshold: {$ref: '#/components/schemas/ThresholdDefinition'}
failedThreshold: {$ref: '#/components/schemas/ThresholdDefinition'}
element: {$ref: '#/components/schemas/SLAElementDefinition'}
ArrayOfSLAPerIntervalDefinition:
type: array
items: {$ref: '#/components/schemas/SLAPerIntervalDefinition'}
SLAPerIntervalDefinition:
type: object
properties:
kpi: {$ref: '#/components/schemas/SLAKPIDefinition'}
status: {$ref: '#/components/schemas/SLAStatusDefinition'}
warning: {type: number, format: float, description: Percentage of intervals
warning}
warningThreshold: {$ref: '#/components/schemas/ThresholdDefinition'}
failed: {type: number, format: float, description: Percentage of intervals
failed}
failedThreshold: {$ref: '#/components/schemas/ThresholdDefinition'}
element: {$ref: '#/components/schemas/SLAElementDefinition'}
ThresholdDefinition:
type: object
properties:
operator:
type: string
enum: ['>=', <=, ==, btw]
description: The operator of threshold definition
values:
type: array
items: {type: number, format: float}
description: The values of threshold definition
SLAElementDefinition:
type: object
properties:
elementId: {type: string, description: Unique identifier of the element.}
name: {type: string, description: Name of the element.}
category:
type: string
enum: [TRANSACTION, ACTION, PAGE, REQUEST]
userpath: {type: string, description: The name of the user path in which the
element is.}
parent: {type: string, description: The parent name of the element.}
SLAKPIDefinition:
type: string
enum: [avg-request-resp-time, avg-page-resp-time, avg-transaction-resp-time,
perc-transaction-resp-time, avg-request-per-sec, avg-throughput-per-sec, errors-count,
count, throughput, avg-resp-time, errors-per-sec, error-rate]
description: KPI
SLAStatusDefinition:
type: string
enum: [PASSED, WARNING, FAILED]
description: Status of the SLA
SLAValueDefinition: {type: number, format: float, description: SLA value.}
Percentiles:
description: An array of object representing available percentiles.
example:
- {percent: 0.1, duration: 2.9}
- {percent: 0.2, duration: 3.0}
- {percent: 0.3, duration: 3.0}
- {percent: 0.4, duration: 3.0}
- {percent: 0.5, duration: 3.1}
- {percent: 0.6, duration: 3.1}
- {percent: 0.7, duration: 3.1}
- {percent: 0.8, duration: 3.2}
- {percent: 0.9, duration: 3.2}
- {percent: 1.0, duration: 3.5}
- {percent: 1.1, duration: 3.5}
- {percent: 99.9, duration: 18.0}
- {percent: 100.0, duration: 35.0}
type: array
items: {$ref: '#/components/schemas/PercentilesPoints'}
PercentilesPoints:
description: Representation of a percentile.
type: object
properties:
percent: {type: number, format: float, description: The k-th percentile where 0.0
< k <= 100.0.}
duration: {type: number, format: float, description: Value (duration in milliseconds)
of this k-th percentiles.}
TestRawResult:
description: An array of object representing raw results.
example: [Elapsed;Time;User Path;Virtual User ID;Parent;Element;Response time;Success;Population;Zone,
'5559;2020-06-04T12:40:07.278+02:00;"BrowserUser_Create_report";0-7;"Actions";"Home";2929;yes;"MyPopulationSmallCities";"Default
zone"', '5632;2020-06-04T12:40:07.351+02:00;"BrowserUser_Create_report";0-13;"Actions";"Home";3005;yes;"MyPopulationBigCities";"Default
zone"', '12855;2020-06-04T12:40:14.574+02:00;"BrowserUser_Create_report";0-7;"Actions";"submit
report";1968;yes;"MyPopulationSmallCities";"Default zone"', '29376;2020-06-04T12:40:31.095+02:00;"BrowserUser_Create_report";0-7;"Try";"submit";1377;yes;"MyPopulationSmallCities";"Default
zone"']
type: array
items: {type: object}
TestElementRawResult:
description: An array of object representing raw results.
example: [Elapsed;Time;User Path;Virtual User ID;Parent;Element;Response time;Success;Population;Zone,
'5559;2020-06-04T12:40:07.278+02:00;"BrowserUser_Create_report";0-7;"Actions";"Home";2929;yes;"MyPopulationSmallCities";"Default
zone"', '5632;2020-06-04T12:40:07.351+02:00;"BrowserUser_Create_report";0-13;"Actions";"Home";3005;yes;"MyPopulationBigCities";"Default
zone"', '6398;2020-06-04T12:40:08.117+02:00;"BrowserUser_Create_report";0-8;"Actions";"Home";2512;yes;"MyPopulationSmallCities";"Default
zone"', '7323;2020-06-04T12:40:09.042+02:00;"BrowserUser_Create_report";0-9;"Actions";"Home";1471;yes;"MyPopulationSmallCities";"Default
zone"']
type: array
items: {type: object}
TestResultReportBody:
type: object
properties:
language: {type: string, description: 'The language of the report, only en
and fr are supported. If none is set, default will be en.', example: en}
timeZone: {type: string, description: 'The timezone of the report. If none
is set, default will be UTC.', example: Europe/Paris}
ArrayOfZoneDefinition:
type: array
items: {$ref: '#/components/schemas/ZoneDefinition'}
ZoneDefinition:
type: object
properties:
id: {type: string, description: Unique identifier of the zone, example: hIugt}
name: {type: string, description: Name of the zone, example: zone name}
type:
type: string
description: Type of the zone
enum: [STATIC, DYNAMIC]
controllers:
type: array
items: {$ref: '#/components/schemas/SimpleResourceApiDefinition'}
loadgenerators:
type: array
items: {$ref: '#/components/schemas/SimpleResourceApiDefinition'}
SimpleResourceApiDefinition:
type: object
description: This object can represent a Controller or a Load Generator
properties:
name: {type: string, description: Name of the controller or address of the
load generator, example: 'resource.domain.com:7100'}
version: {type: string, format: x.y.z, description: Version of the resource,
example: 7.0.2}
status:
type: string
description: Status of the resource
enum: [AVAILABLE, RESERVED, BUSY]
ArrayOfReservationDefinition:
type: array
items: {$ref: '#/components/schemas/ReservationDefinition'}
ReservationModeDefinition:
type: object
properties:
reservationStatus: {type: boolean, description: Reservation mode of the account.
True if ON else false.}
ReservationDefinition:
type: object
properties:
id: {type: string, example: 115c25af-f499-423f-a71e-63312601919e, description: Unique
identifier of the reservation.}
status:
type: string
description: Status of the reservation.
enum: [WAITING, RUNNING, PARTIALLY_RESERVED, FAILED_TO_RESERVE, RESERVED,
STOPPING, ENDED]
startDateTime: {type: number, format: int64, description: 'Timestamp when
the reservation begins. Number of seconds since January 1, 1970.'}
endDateTime: {type: number, format: int64, description: 'Timestamp when the
reservation ends. Number of seconds since January 1, 1970.'}
reservationWebVUs: {type: number, format: int32, description: The number of
Web Virtual Users to be reserved.}
reservationSAPVUs: {type: number, format: int32, description: The number of
SAP Virtual Users to be reserved.}
controllerZoneId: {type: string, example: hIugt, description: Name of the
zone.}
neoloadVersion: {type: string, example: 7.0.2-20191110-1, description: Neoload
version of the selected controller.}
lgZonesResourcesReservation:
type: array
items: {$ref: '#/components/schemas/LgByZones'}
author: {type: string, description: Name of the user who created the reservation.}
workspaceId: {type: string, example: 5e3acde2e860a132744ca916, description: Unique
identifier representing a Workspace.}
name: {type: string, description: Title of the reservation.}
description: {type: string, description: Description of the reservation.}
type:
type: string
description: How the reservation has been created. By a user or automatically
when a test started.
enum: [SCHEDULED, AUTO_RESERVATION]
LgByZones:
type: object
description: The number of load generators reserved for a specific zone.
properties:
zoneId: {type: string, example: hIugt, description: The unique identifier
of a zone.}
value: {type: number, example: 10, description: The number of load generators.}
WorkspaceDefinitionList:
type: array
items: {$ref: '#/components/schemas/WorkspaceDefinition'}
WorkspaceDefinition:
type: object
properties:
id: {type: string, example: 5e3acde2e860a132744ca916, description: Unique
identifier of the Workspace.}
name: {type: string, description: Name of the Workspace., example: Default
Workspace}
description: {type: string, description: Description of the Workspace., example: Workspace
description}
lastChange: {type: object, $ref: '#/components/schemas/LastChangeDefinition'}
InformationDefinition:
type: object
properties:
front_url: {type: string, example: 'https://preprod-neoload.saas.neotys.com',
description: 'Root URL where the NeoloadWeb application can be accessed,
used to reconstruct relative URLs.'}
filestorage_url: {type: string, example: 'https://preprod-neoload-files.saas.neotys.com',
description: URL for Neoload projects file upload and management.}
version: {type: string, example: SaaS, description: NeoloadWeb platform version.
Will be "SaaS" for official NeoLoad SaaS platform.}
PostCustomEventRequest:
type: object
properties:
startTimestamp: {type: number, example: 1600000000, description: 'Custom event
start epoch timestamp in seconds. If not provided, current time is used.'}
endTimestamp: {type: number, example: 1600000000, description: 'Custom event
end epoch timestamp in seconds. If not provided, then either startTimestamp
is used (when timeframe is INSTANT), or Test Result end timestamp is used
(when timeframe is TIME_RANGE).'}
timeframe:
type: string
enum: [TIME_RANGE, INSTANT]
default: TIME_RANGE
fullname: {type: string, example: myCustomEvent, description: Custom event
name. Max length 256 chars.}
code: {type: string, example: Application Error, description: Custom event
code. Max length 64 chars.}
source: {type: string, example: APM, description: 'Custom event source. Max
length 32 chars. If not set, source is set to ''External''.'}
description: {type: string, description: Custom event description. Max length
2048 chars.}
url: {type: string, description: Custom event URL. Max length 2048 chars.}
required: [fullname]
Usage:
description: An array of object representing audit events.
type: array
items: {type: object}
PostCustomEventResponse:
type: object
properties:
id: {type: string, description: The unique ID of the custom event created.}
offset: {type: number, example: 1000, description: 'Custom event start timestamp
in milliseconds, relative to bench start timestamp.'}
duration: {type: number, example: 1000, description: Custom event duration
in milliseconds.}
timeframe:
type: string
enum: [TIME_RANGE, INSTANT]
default: TIME_RANGE
fullname: {type: string, example: myCustomEvent, description: Custom event
name. Max length 256 chars.}
code: {type: string, example: Application Error, description: Custom event
code. Max length 64 chars.}
source: {type: string, example: APM, description: Custom event source. Max
length 32 chars.}
description: {type: string, description: Custom event description. Max length
512 chars.}
url: {type: string, description: Custom event URL. Max length 2048 chars.}
PatchCustomEventRequest:
type: object
properties:
endTimestamp: {type: number, example: 1600000000, description: Custom event
end epoch timestamp in seconds.}
description: {type: string, description: Custom event description. Max length
2048 chars.}
url: {type: string, description: Custom event URL. Max length 2048 chars.}
required: [id]
PatchCustomEventResponse:
type: object
properties:
id: {type: string, description: The unique ID of the custom event patched.}
offset: {type: number, example: 1000, description: 'Custom event start timestamp
in milliseconds, relative to bench start timestamp.'}
duration: {type: number, example: 1000, description: Custom event duration
in milliseconds.}
timeframe:
type: string
enum: [TIME_RANGE, INSTANT]
default: TIME_RANGE
fullname: {type: string, example: myCustomEvent, description: Custom event
name. Max length 256 chars.}
code: {type: string, example: Application Error, description: Custom event
code. Max length 64 chars.}
source: {type: string, example: APM, description: Custom event source. Max
length 32 chars.}
description: {type: string, description: Custom event description. Max length
512 chars.}
url: {type: string, description: Custom event URL. Max length 2048 chars.}
BenchDeletionFilter:
type: object
description: filter to select element for deletion.
example: {resultNamePattern: toRemove.*}
oneOf:
- {$ref: '#/components/schemas/BenchDeletionFilterByProject'}
- {$ref: '#/components/schemas/BenchDeletionFilterByTestDto'}
- {$ref: '#/components/schemas/BenchDeletionFilterByResultName'}
BenchDeletionFilterByProject:
type: object
properties:
projectName: {type: string}
scenarioName: {type: string}
BenchDeletionFilterByResultName:
type: object
properties:
resultNamePattern: {type: string}
BenchDeletionFilterByTestDto:
type: object
properties:
testSettingsId: {type: string, example: '{"testSettingsId: d6385e46-353b-409f-a494-7ca892edeaa6"}'}
BenchDeletionPolicyApiFullRequestDto:
type: object
properties:
deletionFilter: {$ref: '#/components/schemas/BenchDeletionFilter'}
deletionSetting: {$ref: '#/components/schemas/BenchDeletionSetting'}
BenchDeletionPolicyApiResponseDto:
type: object
properties:
deletionFilter: {$ref: '#/components/schemas/BenchDeletionFilter'}
deletionSetting: {$ref: '#/components/schemas/BenchDeletionSetting'}
id: {type: string}
lastModifiedDate: {type: string, format: date-time}
lastModifiedUserName: {type: string}
workspaceId: {type: string}
BenchDeletionPolicyApiUpdateRequestDto:
type: object
properties:
deletionFilter: {$ref: '#/components/schemas/BenchDeletionFilter'}
deletionSetting: {$ref: '#/components/schemas/BenchDeletionSetting'}
BenchDeletionSetting:
type: object
description: Delete by time or number
example: {retentionCount: 5}
oneOf:
- {$ref: '#/components/schemas/BenchDeletionSettingCount'}
- {$ref: '#/components/schemas/BenchDeletionSettingDurationDto'}
BenchDeletionSettingCount:
type: object
properties:
retentionCount: {type: integer, format: int32}
BenchDeletionSettingDurationDto:
type: object
properties:
retentionDays: {type: integer, description: number of days before deletion,
format: int32}
DynamicInfrastructureProviderApiResponseDto:
type: object
properties:
agentId: {type: string}
connectionType:
type: string
enum: [CLIENT_BASED, AGENT_BASED]
id: {type: string}
name: {type: string}
parameters:
type: object
additionalProperties: {type: string, description: parameters applied to
provider., example: '{"K8S_API_END_POINT":"https://example/api","K8S_NAMESPACE":"kubernetes-namespace","K8S_LABELS":"","K8S_ANNOTATIONS":"","K8S_NODE_SELECTORS":""}'}
description: parameters applied to provider.
example: {K8S_API_END_POINT: 'https://example/api', K8S_NAMESPACE: kubernetes-namespace,
K8S_LABELS: '', K8S_ANNOTATIONS: '', K8S_NODE_SELECTORS: ''}
type:
type: string
enum: [AWS, GCE, AZURE, KUBERNETES, OPEN_SHIFT, DOCKER_ENGINE, DOCKER_SWARM,
NCP]
FullWorkspaceDefinition:
type: object
properties:
allUsersEnabled: {type: boolean, description: True if all users of the Workspace
are enabled}
description: {type: string, description: Description of the Workspace, example: Workspace
description}
id: {type: string, description: Unique identifier of the Workspace, example: 5e3acde2e860a132744ca916}
lastChange: {$ref: '#/components/schemas/LastChangeDefinition'}
members:
uniqueItems: true
type: array
description: Members assigned to Workspace
items: {$ref: '#/components/schemas/MemberDefinition'}
name: {type: string, description: Name of the Workspace, example: Default
Workspace}
vuQuota: {$ref: '#/components/schemas/WorkspaceVuQuotaDefinition'}
FutureResponse:
type: object
properties:
complete: {type: boolean}
LastChangeDefinition:
type: object
properties:
lastAction:
type: string
description: Last action performed on the Workspace.
example: CREATE
enum: [CREATE, UPDATE, DELETE]
lastUpdateDate: {type: integer, description: 'Timestamp when the Workspace
was updated for the last time. Number of seconds since January 1, 1970.',
format: int64, example: 1582550442}
description: Workspace last change
MemberDefinition:
type: object
properties:
firstName: {type: string, description: User first name}
lastName: {type: string, description: User last name}
login: {type: string, description: User login}
userSource:
type: string
description: User source
enum: [SAAS, INTERNAL, LDAP, ONPREMISE_SSO, SCIM]
description: Members assigned to Workspace
MemberListDefinition:
type: object
properties:
logins:
type: array
description: Login list
items: {type: string, description: Login list}
TestSettingsApiFullRequestDto:
type: object
properties:
displayTestResultsCount: {type: integer, description: 'The maximum number
of Test Results to show in the Test Analysis graph. Allowed values: 10,
20, 50', format: int32, example: 10}
failOnObjective: {type: boolean, description: Make the Test Result fail as
soon as any of the configured objectives is exceeded, example: true}
metrics:
maxItems: 10
minItems: 1
type: array
items: {$ref: '#/components/schemas/metrics'}
objectiveTolerance: {type: number, description: The tolerance for the AUTOMATED
objective type, format: double, example: 2}
objectiveType:
type: string
description: 'The type of objective. MANUAL means that the objective value
is the one manually specified in objectiveValue. REFERENCE_TEST_RESULT
means that the objective value is the value of the metric for the test
result with id referenceTestResultId. AUTOMATED means that the objective
value is computed at the end of the Test Result based on the metric value
for the latest 50 previous PASSED Test Results with this formula: mean()
+ objectiveTolerance x standardDeviation()'
example: MANUAL
enum: [MANUAL, REFERENCE_TEST_RESULT, AUTOMATED]
referenceTestResultId: {type: string, description: 'The test result id that
is the reference for objectives. The objectiveValue is the value of the
metric for this test result if it exists, or else the user-defined value.
This field is mandatory for the REFERENCE_TEST_RESULT objective type,
it is ignored for other objective types', example: 76890fbe-d2f2-4e82-a054-a1a2d584da4b}
referentialObjectiveTolerance: {type: integer, description: The tolerance
in percent for the REFERENCE_TEST_RESULT objective type, format: int32,
example: 10}
TestSettingsApiResponseDto:
type: object
properties:
displayTestResultsCount: {type: integer, description: 'The maximum number
of Test Results to show in the Test Analysis graph. Allowed values: 10,
20, 50', format: int32, example: 10}
failOnObjective: {type: boolean, description: Make the Test Result fail as
soon as any of the configured objectives is exceeded, example: true}
metrics:
maxItems: 10
minItems: 1
type: array
items: {$ref: '#/components/schemas/metrics'}
objectiveTolerance: {type: number, description: The tolerance for the AUTOMATED
objective type, format: double, example: 2}
objectiveType:
type: string
description: 'The type of objective. MANUAL means that the objective value
is the one manually specified in objectiveValue. REFERENCE_TEST_RESULT
means that the objective value is the value of the metric for the test
result with id referenceTestResultId. AUTOMATED means that the objective
value is computed at the end of the Test Result based on the metric value
for the latest 50 previous PASSED Test Results with this formula: mean()
+ objectiveTolerance x standardDeviation()'
example: MANUAL
enum: [MANUAL, REFERENCE_TEST_RESULT, AUTOMATED]
referenceTestResultId: {type: string, description: 'The test result id that
is the reference for objectives. The objectiveValue is the value of the
metric for this test result if it exists, or else the user-defined value.
This field is mandatory for the REFERENCE_TEST_RESULT objective type,
it is ignored for other objective types', example: 76890fbe-d2f2-4e82-a054-a1a2d584da4b}
referentialObjectiveTolerance: {type: integer, description: The tolerance
in percent for the REFERENCE_TEST_RESULT objective type, format: int32,
example: 10}
WorkspaceCreateRequest:
type: object
properties:
allUsersEnabled: {type: boolean, description: True if all users of the Workspace
are enabled, default: false}
description: {type: string, description: Description of the Workspace, example: Workspace
description}
name: {type: string, description: Name of the Workspace, example: My first
Workspace}
vuQuota: {$ref: '#/components/schemas/WorkspaceVuQuotaDefinition'}
WorkspaceUpdateRequest:
type: object
properties:
allUsersEnabled: {type: boolean, description: True if all users of the Workspace
are enabled}
description: {type: string, description: Description of the Workspace, example: Workspace
description}
name: {type: string, description: Name of the Workspace, example: Default
Workspace}
vuQuota: {$ref: '#/components/schemas/WorkspaceVuQuotaDefinition'}
WorkspaceVuQuotaDefinition:
type: object
properties:
sap: {type: integer, description: SAP quota, format: int32}
unlimited: {type: boolean, description: True if quotas are unlimited}
web: {type: integer, description: Web quota, format: int32}
description: Quotas assigned to Workspace
metrics:
type: object
properties:
color: {type: string, description: The color of the curve in the Test Analysis
graph. Format hexadecimal., example: '#d2b067'}
elementPath: {type: string, description: 'The full path to the element of
the metric, separated with /. The element must be a transaction. The special
value ''all-transactions'' means <All Transactions>. Note: for compatibility
reasons with older Test configurations, the elementPath may be a UUID,
prefer replace it with the path to the transaction.', example: scenario1/Actions/myTransaction}
isDisplayed: {type: boolean, description: True to display the line of this
metric in the overview graph. False to hide it.}
isObjective: {type: boolean, description: True if the objective is enabled
and will be used to determine the test result status.}
objectiveValue: {type: number, description: 'The user-defined value of the
objective of the metric. If referenceTestResultId is specified, it is
replaced by the value of the metric for this test result. This value is
ignored when objectiveType is not MANUAL. Required when isObjective is
true.', format: double, example: 0.5}
statistic:
type: string
description: The statistic of the metric
enum: [Perc 99, Perc 95, Perc 90, Perc 50, Min, Avg, Max, Count, Errors,
Elements per Second, Error rate, Min.TTFB, Avg.TTFB, Max.TTFB, Std Deviation]
description: The metrics shown in Test Analysis. One metric represents one objective
and is displayed as one curve in Test Analysis graph.