Integrating NeoLoad

The focus of this guide is how to integrate Akamas with Tricentis NeoLoad in order to leverage Neoload as a performance testing tool in an Akamas optimization.

Prerequisites

To be able to execute a test from Neoload and to collect the Neoload metrics you will need:

  • Neoload 7.0+

  • a valid Neoload license;

  • a working Neoload test script;

  • a fully working Neoload farm composed by:

    • NeoLoadWeb (saas or on-prem);

    • a Neoload "zone" composed of 1 controller and (at least) 1 loadgenerator;

  • URL (and port if it is not the default one) of the NeoLoadWeb server;

  • to whitelist the connections between:

    • Akamas server and NeoLoadWeb server over port 8080 and 8081 (if NeoLoadWeb is deployed on-premises);

    • Akamas server and internet if NeoLoadWeb is managed as a SaaS platform

  • A NeoLoadWeb user with a "tester" role ("guest" role cannot be used due to limitations in triggering test execution). For compatibility reasons, the user related to the generated token must belong to the default workspace.

  • A NeoLoadWeb API token created with the above user to inherit the same rights

Create Akamas entities

Component

At the component level, the NeoLoad integration is trivial and only requires specifying a single NeoLoad property at the Web Application component. These properties will be used during the telemetry phase to map the NeoLoad metrics (e.g. transactions response time, error rate, etc..) to the right Akamas component.

The example below provides an example of a component definition with the appropriate NeoLoadWeb property:

name: konakart
description: konakart service layer component
componentType: Web Application
properties:
  neoloadweb: "true"

Telemetry instance

At the telemetry level, the NeoLoad integration relies on the NeoLoadWeb telemetry provider.

The following is an example of a NeoLoad telemetry instance:

# NeoLoad Web Telemetry Provider Instance
provider: Neoload
config:
  neoloadApi: http://NeoLoadWeb-api.mydomain.com
  accountToken: XXXX

Workflow

The workflow configuration changes depending on your NeoLoadWeb deployment, since it could be Saas or on-premises.

For compatibility reasons, the user related to the generated token must belong to the default workspace.

How to retrieve the required configurations from NeoLoad

Some properties can be retrieved from the NeoLoad application or NeoLoadWeb.

Property
Steps

scenarioName

  • open project on NeoLoad

  • go to the runtime tab

  • pick a scenario from the "scenarios" multi-select

accountToken

  • access your NeoLoad Web platform

  • go to profile

  • hit "generate access token" or retrieve an existing one

Notice: for compatibility reasons, the user related to the generated token must belong to the default workspace.

You need to have a controller and at least one load generator in place in the zone you have configured in the workflow step

Property
Steps

lgZones controllerZoneId

  • access your NeoLoad Web platform

  • go to the Resources tab

  • pick the Zone id of an existing zone or create a new one

  • only for lgZones: append ":" as a suffix plus the number of load generators you are going to use during the test

Troubleshooting

Assuming that the NeoLoad scripts are hosted on your instance (thus you didn’t upload them on NeoLoad Web) the following command will run the load test scripts deployed in folder neoload-project on your NeoLoad farm:

docker run --rm \
-v'/home/ubuntu/studyTroubleshooting/updatedArtifacts/neoload/altStudy:/neoload-project' \
-e NEOLOADWEB_TOKEN=xxxxxxxx \
-e CONTROLLER_ZONE_ID=iM7QB \
-e LG_ZONE_IDS=iM7QB:1 \
-e TEST_RESULT_NAME=myTestResult \
-e SCENARIO_NAME=10VU_5min \
neotys/neoload-web-test-launcher

where neoload-project is the name of the mount point that the container is expecting. Please do not change it. Docker will mount your project folder in an internal folder named neoload-project

The project folder can contain:

  • A NeoLoad project folder including .nlp, config.zip ...

  • A single zip file containing the NeoLoad project

  • A single YAML file containing the NeoLoad project as code

Problem Test file upload on NeoloadWeb fails with the following error:

Uploading project
Error code: 400
{"error": "UNAUTHORIZED_OPERATION"}
io.swagger.client.ApiException: Bad Request
        at io.swagger.client.ApiClient.handleResponse(ApiClient.java:924)
        at io.swagger.client.ApiClient.execute(ApiClient.java:840)
        at io.swagger.client.api.RuntimeApi.postUploadProjectWithHttpInfo(RuntimeApi.java:342)
        at io.swagger.client.api.RuntimeApi.postUploadProject(RuntimeApi.java:328)
        at com.neotys.nlweb.runtime.Launch.launchTest(Launch.java:241)
        at com.neotys.nlweb.runtime.Launch.main(Launch.java:59)

Solution The user related to the token you are using must belong to the default workspace.

Last updated

Was this helpful?