Cloud accounts

This section describes how to manage your cloud accounts. You can use a cloud account with a supported cloud provider.

Note: When upgrading from an earlier version, you need to delete your migrated cloud accounts and recreate them in the current version.

Cloud accounts overview

After establishing a cloud provider account, you must also establish a cloud account in OpenText Enterprise Performance Engineering. When defining a cloud account, you enter your cloud provider credentials and associate projects to the account. For details, see Add a cloud account.

Tip: See the Video gallery for a video on how to run tests on load generators that are dynamically provisioned on AWS.

Prerequisites

Make sure that you have the following before adding a cloud account.

  1. Cloud provider account.

    You must have an existing cloud account with a supported cloud provider. Amazon Web Services (AWS EC2), Microsoft Azure Cloud, and Google Cloud Platform accounts are supported.

  2. Cloud account information.

    After you have your cloud account ready, record the following information from your cloud account:

    • AWS (depends on authentication type, User or Role):

      • User: Account access key, secret key, and account number.

      • Role: PFX digital certificate, certificate password, Trust Anchor ARN, Profile ARN, and Role ARN.

    • Microsoft Azure: Client ID, Tenant ID, Client Secret, and Subscription ID.

    • Google Cloud Platform (GCP): Project ID and Service Account key.

  3. (Google Cloud Platform only) Configure the instance template directly in your GCP account. This differs from AWS and Azure, where host templates are created within OpenText Enterprise Performance Engineering itself.

    1. Configure the instance template in GCP with the following values. These values enable the instance template to be propagated to the OpenText Enterprise Performance Engineering host template.

      • Name. Label the template lre-template:lr-lg-lre-compatible-version-2026-1. Use a label value that matches the ImageVersion value in the LRE_BACKEND\appsettings.defaults.json file on the OpenText Enterprise Performance Engineering server. Use only lowercase letters, digits, and dashes to comply with GCP requirements. See the example in Configure a GCP instance template.

      • Location. Select Regional as the instance location; Global is not supported.

    1. The instance template is automatically imported when you add or update the cloud account.

      Note:  

      • When a GCP account is added to OpenText Enterprise Performance Engineering for the first time, all existing instance templates with the matching label are automatically synchronized to OpenText Enterprise Performance Engineering. After the GCP account is added, any new instance templates created in GCP are synchronized by the cloud updater job.

      • To delete a GCP template you must either remove the GCP account, or delete the label from the instance template.

      • Template details such as location, image ID, instance type, and operating system are displayed in read-only mode and cannot be modified in the Performance Test Designer. For details, see Distribute load generators among Vuser groups.

Add a cloud account

This task describes how to add a cloud account.

To add a cloud account:

  1. Prerequisites. Make sure that you follow the prerequisites for adding a cloud account as described in Prerequisites.

  2. Add the cloud account.

    1. In the Administration module, select Configuration > Cloud.

    2. In the Accounts tab, click the Add Cloud Account button Add button, and enter a name and optional description for the cloud account.

    3. Select the provider of the cloud account: LG provisioning on AWS, LG provisioning on Microsoft Azure Cloud or LG provisioning on Google Cloud.

  3. Enter your cloud account information.

    Vendor Information
    AWS EC2
    1. Select the authentication type: User or Role.

    2. (Optional) Enter the AWS EC2 account number. This number is used to access custom images from the cloud account. Adding an incorrect account number results in the inability to access custom images related to this account.

    3. Enter the following:

      For user authentication:

      • Account access key. Enables OpenText Enterprise Performance Engineering to connect to your cloud account.

      • Account secret key. Serves as the password for the access key used to connect to your cloud account.

      For role-based authentication:

      • Digital certificate. Click the Select File button, select the PFX certificate, and then click Save. The certificate is uploaded to the server.

      • Certificate Password. Enter the PFX certificate password.

      • Trust Anchor ARN. Identifies a trusted source used to validate external identities in AWS IAM Roles Anywhere.

      • Role ARN. A unique identifier for an IAM role that defines permissions and can be assumed by trusted entities.

      • Profile ARN. Identifies a configuration in IAM Roles Anywhere that links trust anchors to IAM roles and session policies.

    4. Select the account category: Standard Cloud or Government Cloud US.

      Note for AWS EC2 accounts and AWS GovCloud (US) Regions:

      • AWS account credentials that require Multi-Factor Authentication (MFA) are not supported.

      • The user linked to the cloud account must have full EC2 access (AmazonEC2FullAccess) or permissions for all the following AWS actions: AssociateAddress, CreateTags, DescribeAddresses, DescribeImages, DescribeInstances, DescribeInstanceStatus, DescribeInstanceTypeOfferings, DescribeKeyPairs, DescribeRegions, DescribeSecurityGroups, DescribeSubnets, DisassociateAddress, RunInstances, and TerminateInstances.

    Microsoft Azure Cloud
    1. Enter the following:

      • Tenant ID. The ID of the Azure Active Directory in which you created the application. This is available in the Azure account.

      • Subscription ID. A GUID that uniquely identifies your subscription to use Azure services.

      • Client ID. The application Client ID identifier that is generated from the Azure Active Directory portal.

      • Client Secret. The secret key that is used when communicating with Azure Active Directory.

      Note: Client ID and Client Secret require the creation of an application, and the role for your application must be Contributor or Owner. For more details, see the Microsoft documentation.

    2. Select the account category: Global Cloud or Government Cloud US.

    Google Cloud Platform

    Enter the following:

    • Project ID. The Google project name or ID of the Google Cloud Platform in which you created the application.

    • Service Account Key. The service account key that is used when communicating with Google Cloud Platform. Enter the key by pasting the JSON file created from Google Cloud > Service Accounts > Actions > Manage keys > Create new key > key type=JSON.

  4. Click Save to add the cloud account. The cloud account is added to the grid (the account creation process may take several minutes to complete).

    In the Main Details tab, you can see cloud account details, including assigned projects and the number of currently provisioned hosts. Active host limit displays the maximum number of active cloud load generators across runs and projects that use templates from this cloud account.

    • AWS EC2 and Microsoft Azure: You can now create host templates for AWS and Azure and provision hosts from this cloud account.

    • Google Cloud Platform: Instance templates must be defined on the provider account. For details, see Configure a GCP instance template.

  5. Assign projects to your cloud account.

    For details, see Link projects to your cloud account.

    Note: The Assigned Projects column in the grid displays both the domain name and project name. As a result, when filtering this column, the filter is applied for both values.

  6. View cloud account events.

    For details, see View cloud account event logs.

Configure a GCP instance template

GCP instance templates must be defined directly within the Google Cloud Platform provider account.

To ensure proper synchronization with cloud host templates, add the following labels to your GCP instance template:

  1. Add the template identifier label.

    • Key: lre-template

    • Value: Match the corresponding value in appsettings.defaults.json, replacing any special characters (such as curly brackets { } , commas, and spaces) with dashes (-).

    Example:

    If the JSON contains:

    "ImageVersion": "LR LG, LRE Compatible, version{2026.1}",

    then the label should be:

    Value:lr-lg-lre-compatible-version-2026-1

    Note: GCP labels do not support certain special characters. Always replace unsupported characters with dashes to ensure compatibility.

  2. Set the OS platform label.

    • Key: lre-platform

    • Value: linux or windows

    If this label is not set, the platform is determined automatically:

    • If the image name contains win, the platform is set to OneLG.

    • Otherwise, it defaults to UNIX.

    (Optional) When configuring a GCP instance template, you can add a description under Advanced Options > Management > Description to clarify the template purpose or usage. If your deployment requires specific IP settings, you can assign a static internal IP or a designated external IP directly within the template.

    Note: For network access control, the instance template must include a Network Tag such as tag-lg-default-ports. Create a matching firewall rule in VPC Network > Firewall with the same name and required inbound connections.

Run startup scripts

Startup scripts run custom commands during VM initialization for supported cloud load generators.

For example, a startup script can disable Microsoft Defender Antivirus on Windows VMs to prevent interference during load tests.

Supported scripts

The following tables summarize startup script support by cloud provider for each version range.

Version 26.1

Cloud provider Windows script types Linux script types
AWS

PowerShell (.ps1)

Batch (.bat)

Not supported
GCP

PowerShell (.ps1)

Batch (.bat)

Shell (.sh)

Version 26.3 and later

Cloud provider Windows script types Linux script types
AWS

PowerShell (.ps1)

Batch (.bat)

Shell (.sh)
Azure

PowerShell (.ps1)

Batch (.bat)

Shell (.sh)
GCP

PowerShell (.ps1)

Batch (.bat)

Shell (.sh)

Script examples

  • PowerShell (.ps1):

    Copy code
    Add-Content "C:\ProgramData\startup-log.txt" "Startup script started at $(Get-Date)";
    Start-Process powershell.exe -ArgumentList "-NoExit"
  • Batch (.bat):

    Copy code
    echo off
    echo Startup script started at %DATE% %TIME% >> C:\ProgramData\startup-log.txt
  • Shell (.sh):

    Copy code
    #!/bin/bash
    echo "$(date -u +"%Y-%m-%dT%H:%M:%SZ") Linux startup script executed." > /startup-test-ok.txt
    echo "Done" >> /startup-test-ok.txt

To run startup scripts in cloud VMs:

  1. Register the script paths for each provider.

    1. Run the following command to authenticate the tenant. If you are using a multi-tenancy environment, you must authenticate each tenant.

      Copy code
      POST http://<Enterprise Performance Engineering URL>/Admin/rest/authentication-point/authenticate?tenant={{tenant}}
    2. Run the following command to register scripts:

      Copy code
      POST http://<Enterprise Performance Engineering URL>/Admin/rest/v1/Cloud/RegisterStartupScripts
    3. Body Content-Type: JSON​​​​

      Request body example:

      Copy code
      {
        "Provider": "Amazon EC2",
        "WindowsPowerShellFile": "aws\\ps.ps1",
        "WindowsCmdFile": "aws\\cmd.bat",
        "LinuxFile": "aws\\linux.sh"
      }

      Response example:

      Copy code
      {
      "version": "1.1",
      "statusCode": 201,
      "reasonPhrase": "Created",
      "isSuccessStatusCode": true
      }
  2. Run the following command to verify startup scripts:

    Copy code
    GET http://<Enterprise Performance Engineering URL>/Admin/rest/v1/Cloud/GetStartupScripts

     

    Body Content-Type: JSON

    Request body: "Amazon EC2", "MS Azure", or "Google Cloud"

    Response example:

    Copy code
    {
    "provider": "Amazon EC2",
    "windowsPowerShellFile": "C:\\lrerepo\\Cloud\\aws\\ps.ps1",
    "windowsCmdFile": "C:\\lrerepo\\Cloud\\aws\\cmd.bat",
    "linuxFile": "C:\\lrerepo\\Cloud\\aws\\linux.sh"
    }

To remove startup scripts:

Run the following command to remove a startup script from a cloud account:

Copy code
POST http://<Enterprise Performance Engineering URL>/Admin/rest/v1/Cloud/UnRegisterStartupScript

 

Body Content-Type: JSON

Request body: "Amazon EC2", "MS Azure", or "Google Cloud"

Response example:

Copy code
{
"version": "1.1",
"statusCode": 200,
"reasonPhrase": "OK",
"isSuccessStatusCode": true
}

Notes and limitations

  • Create a Cloud folder under the repository root: C:\lrerepo\Cloud

  • The relative path for scripts in the REST API is under \Cloud.

  • In GET, the full path is displayed. For example, C:\\lrerepo\\Cloud\\aws\\ps.ps1.

Set Azure VM custom tags

You can view, configure, and remove custom Azure Virtual Machine (VM) tags using REST APIs. These tags are applied to Azure Linux and Windows VMs that are provisioned by the system.

The same procedure applies to both Azure Windows and Azure Linux VMs. The only difference is the value of the platform parameter in the REST API (windows or linux).

Prerequisites

  • Access to the OpenText Enterprise Performance Engineering server

  • Tenant ID

  • Valid user credentials

  • Network access to the Backend service port (default: 5876) when calling the REST APIs remotely

REST API endpoint overview

Copy code
GET    /rest/TenantConfiguration/azure-vm-tags/{platform}?tenant=<tenant_id>
POST   /rest/TenantConfiguration/azure-vm-tags/{platform}?tenant=<tenant_id>
DELETE /rest/TenantConfiguration/azure-vm-tags/{platform}?tenant=<tenant_id>

where:

{platform} = windows or linux

<tenant_id> = Tenant GUID

To configure Azure VM custom tags:

  1. Enable remote access to the Backend service (optional).

    1. If you invoke the REST APIs from a remote machine, update the appsettings.defaults.json configuration file on the server:

      Copy code
       "PortConfiguration": {
        "ListenOnlyOnLocalhost": false,
        "ServicePort": 5876,
        "WorkerProcessPort": 5878,
        "IsWorkerProcessInMemory": false
      }
    2. Restart the Backend service after making the change.

    Note: Required only when remote access is used.

  2. Authenticate and obtain a session cookie.

    Before calling the Azure VM Tags REST APIs, authenticate and obtain a valid LWSSO cookie.

    Request:

    Copy code
    GET http://<Enterprise Performance Engineering URL>/LoadTest/rest/authentication-point/authenticate?tenant=<tenant_id>

    Headers:

    Copy code
    Authorization: Basic <base64-encoded credentials>

    Response:

    Copy code
    200 OK
    Set-Cookie: LWSSO_COOKIE_KEY=<cookie_value>
  3. Copy the authentication cookie.

    From the response headers, copy the full value of LWSSO_COOKIE_KEY. This cookie must be included in all subsequent REST API requests.

  4. Retrieve the currently configured Azure VM tags.

    Request:

    Copy code
    GET http://<Enterprise Performance Engineering URL>:5876/rest/TenantConfiguration/azure-vm-tags/windows?tenant=<tenant_id>

    Headers:

    Copy code
    Cookie: <LWSSO_COOKIE_KEY>

    (the header name must be Cookie with capital “C”)

  5. Review the default behavior.

    If Azure VM tags were not explicitly configured, the response returns the default values defined in appsettings.defaults.json:

    Copy code
    [
      {
        "key": "CUSTOMTAG",
        "value": "CUSTOMTAG_VALUE",
        "keyValuePair": {
          "key": "CUSTOMTAG",
          "value": "CUSTOMTAG_VALUE"
        }
      }
    ]

    Relevant configuration:

    Copy code
    "Azure": {
      "WindowsAdminUsername": "azure_admin",
      "LinuxRootUsername": "ubuntu",
      "VirtualMachineTags": [
        {
          "Key": "CUSTOMTAG",
          "Value": "CUSTOMTAG_VALUE"
        }
      ]
    }
  6. Configure Azure VM custom tags.

    To define or update Azure VM tags, send a POST request containing the required key‑value pairs.

    Request:

    Copy code
    POST http://<Enterprise Performance Engineering URL>:5876/rest/TenantConfiguration/azure-vm-tags/windows?tenant=<tenant_id>

    Headers:

    Copy code
    Cookie: <LWSSO_COOKIE_KEY>
    Content-Type: application/json

    Request body:

    Copy code
    [
      {
        "key": "K1__",
        "value": "V1__"
      },
      {
        "key": "K2",
        "value": "V2__"
      }
    ]

    The specified tags are applied to newly provisioned Azure Windows VMs.

  7. Remove Azure VM custom tags.

    To remove all configured Azure VM tags, send a DELETE request.

    Request:

    Copy code
    DELETE http://<Enterprise Performance Engineering URL>:5876/rest/TenantConfiguration/azure-vm-tags/windows?tenant=<tenant_id>

    Headers:

    Copy code
    Cookie: <LWSSO_COOKIE_KEY>

    Expected response:

    Copy code
    200 OK

Use predefined Resource Groups in Azure accounts

Available in versions: 26.3 and later

You can configure Azure cloud hosts to use a predefined Resource Group by assigning the Service Principal with Contributor role to that specific Resource Group only, rather than at the subscription level. Using predefined Resource Groups provides more granular access control and enhances security.

Note:  

  • When combining templates with predefined Resource Groups and non-predefined Resource Groups, the Service Principal must have Contributor role at the subscription level to support both configurations.

  • When using predefined Resource Groups, only the run's VMs are deleted once the test run is finished. Other resources in the Resource Group are preserved.

Prerequisites

  • Verify that the predefined Resource Group has the Contributor role assigned to the Service Principal you will use.

  • The Service Principal can have Reader role at the subscription level.

Configure a template with a predefined Resource Group

Use the Admin REST API to configure a host template with a predefined Resource Group. This procedure requires authentication and uses a REST API to patch the template with the Resource Group information.

To configure a template with a predefined Resource Group:

  1. Authenticate with the Admin REST API.

    Request:

    Copy code
    GET http://<Enterprise Performance Engineering URL>/Admin/rest/authentication-point/authenticate?tenant=<tenant_id>
  2. Patch the template to set the predefined Resource Group.

    Request:

    Copy code
    PATCH http://<Enterprise Performance Engineering URL>/Admin/rest/v1/Cloud/templates/{templateId}

    Request body (XML format):

    Copy code
    <CloudTemplate>
      <PredefinedResourceGroup>/subscriptions/<subscription_id>/resourceGroups/<resource_group_name></PredefinedResourceGroup>
    </CloudTemplate>

    Replace the following placeholders:

    • <subscription_id>: Your Azure subscription ID.

    • <resource_group_name>: The name of your predefined Resource Group.

  3. Verify the template configuration.

    Request:

    Copy code
    GET http://<Enterprise Performance Engineering URL>/Admin/rest/v1/Cloud/templates/{templateId}

    In the response, you should see the PredefinedResourceGroup field displaying the Resource Group you configured.

Link projects to your cloud account

Every project that needs to provision hosts from a cloud account must be linked to that account.

To link projects to a cloud account:

  1. In the Administration module, select Configuration > Cloud.

  2. In the Accounts grid, select the cloud account you want to link.

  3. In the Main Details tab, click the Assign Projects button Assign Projects button, and select the projects you want to link to the cloud account from the grid.

  4. Click Assign. This links the selected projects to the cloud account.

All linked projects may now provision cloud hosts from the selected cloud account.

View cloud account event logs

You can display the events that occurred in creating the cloud account.

To view cloud account event logs:

  1. In the Administration module, select Configuration > Cloud.

  2. In the Accounts grid, select the cloud account you want to view.

  3. Select the Event Logs tab to see the events that occurred and the severity of each event.

    UI Elements Description
    Event Type An indication of the event's severity. From most to least severe: error, warning, or info.
    Created on Date The date and time the event was logged.
    Project name The project in which the event occurred.
    Action The category of action where the event occurred. For example, Create Server.
    Name The name of the process.
    Description A description of the event.
    Owner The user, or automated system process responsible for the event.

Cloud network settings

If you need to configure cloud network settings for communicating with your cloud provider and cloud-based load generators, click the Cloud Network Settings button Test Options button, and follow the instructions in Configure cloud network settings.

Export cloud account details to Excel

This task describes how to export information selected in the cloud account grid to an Excel file.

To export cloud account details to Excel:

  1. In the Administration module, select Configuration > Cloud.

  2. Click the Accounts tab, and select columns that contain the cloud account data you want to include.

  3. Click the Export to Excel file button Export to Excel button. The cloud account data from the selected columns is saved to Excel and downloaded to the Downloads folder of the client user.

Delete a cloud account

This task describes how to delete a cloud account.

To delete a cloud account:

  1. In the Administration module, select Configuration > Cloud.

  2. Select a cloud account in the grid, and click the Delete button Delete button. The cloud account and all host templates using the cloud account are deleted.

Note: You cannot delete a cloud account if there are cloud hosts that are currently provisioned by that account.

See also