Tricentis Results|Reporting API

The Results|Reporting API from Tricentis — 3 operation(s) for results|reporting.

OpenAPI Specification

tricentis-results-reporting-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '3.0'
  title: NeoLoad Results|Reporting API
security:
- NeoloadAuthorizer: []
tags:
- name: Results|Reporting
paths:
  /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}/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'
components:
  responses:
    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_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_404:
      description: Resource not found. Please verify the parameters and try again.
      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_413:
      description: Request entity too large.
      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_500:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    result-id:
      name: resultId
      in: path
      required: true
      description: Unique identifier representing a specific Test Result.
      schema:
        type: string
    workspace-id:
      name: workspaceId
      in: path
      required: true
      description: Unique identifier representing a Workspace.
      schema:
        type: string
  schemas:
    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
    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
    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
    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
    RateLimitError:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        retry-after:
          type: integer
    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.

        '
  securitySchemes:
    NeoloadAuthorizer:
      type: apiKey
      name: accountToken
      in: header