Skip to content

Installing AngusRunner

AngusRunner serves as the task executor for the AngusTester distributed testing system, providing two core capabilities:

  1. Executing Remote Tasks: Runs testing and data generation tasks assigned by the controller (AngusTester) to the agent (AngusAgent), and sends test results to the server.
  2. Executing Local Tasks: Offers AngusRunner Command Line functionality to run tests and data generation tasks in LOCAL mode, with results output to the console.

Note

  1. By default, AngusRunner (executor) is automatically included when installing AngusAgent.
  2. Standalone installation of AngusRunner is only required in the following scenarios:
    • Executing test tasks in an independent environment
    • Performing data generation tasks

I. Prerequisites

  • Operating System: Supports Linux / macOS / Windows Server.
  • Java Environment: For non-container installations, ensure JDK 17 or higher is installed.

II. Manual Configuration and Installation

  1. Run the following command or click Download Installation Package:
    bash
    curl -LO https://nexus.xcan.cloud/repository/release/package/AngusRunner-1.0.0.zip
  2. After downloading, extract the package to the target directory (e.g., /opt/AngusRunner):
    bash
    # Extract the package to the target directory  
    mkdir -p /opt/AngusRunner  
    unzip -qo AngusRunner-1.0.0.zip -d /opt/AngusRunner  
    
    # Navigate to the installation directory  
    cd /opt/AngusRunner
  3. Configure core parameters:
    properties
    # vi conf/runner.properties  
    angusrunner.principal.tenantId=Your Tenant ID  
    angusrunner.principal.deviceId=Unique Node (Device) ID  
    angusrunner.principal.accessToken=Your User Access Token  
    
    # vi conf/remoting.properties  
    remoting.ctrlUrlPrefix=Controller Address  
    remoting.ctrlAccessToken=Your Node (Device) Authorization Access Token

How to Obtain Parameters:

  • Tenant ID, Node Unique ID, and Node Authorization Access Token can be viewed under Configuration -> Nodes -> Installation Configuration.
    Configuration Parameters Diagram
  • User Access Token can be viewed or configured in AngusTester under Personal Center -> Access Tokens.

Note

The above configuration parameters are only required when test results need to be uploaded to the remote AngusTester server, i.e., when running AngusRunner command line with the mode specified as REMOTE.

For other configuration details, refer to the "Configuration Reference" section below.

III. Running

Refer to: AngusRunner Command Line.

IV. Configuration Reference

Executor Configuration (runner.properties)

ini
#-----------------------------------------------------------------------------------  
# AngusRunner Configuration  
#-----------------------------------------------------------------------------------  
## Executor thread prefix, default: AngusRunner-Thread.  
angusrunner.threadNamePrefix=AngusRunner-Thread  
#-----------------------------------------------------------------------------------  
# Authentication Configuration  
#-----------------------------------------------------------------------------------  
## Tenant ID for the executor. Required for manually starting a private environment, default is empty.  
angusrunner.principal.tenantId=  
## Current user access token. Required for manually starting the executor, default is empty.  
angusrunner.principal.accessToken=  
## Device (Node) ID. Required for manually starting the executor, default is empty.  
angusrunner.principal.deviceId=  
#-----------------------------------------------------------------------------------  
# Executor Runtime Configuration  
#-----------------------------------------------------------------------------------  
## Executor runtime mode. Options: LOCAL (local) or REMOTE (remote).  
### - LOCAL mode: Runs locally only, test results and reports are saved locally.  
### - REMOTE mode: Test results and reports are synchronized to the server. Default: LOCAL.  
angusrunner.runner.runMode=LOCAL  
#-----------------------------------------------------------------------------------  
# Sampling Configuration  
#-----------------------------------------------------------------------------------  
## When enabled, the sample ID is written to the HTTP request header. Enabled by default.  
angusrunner.sampling.writeSampleIdToHeader=true  
#-----------------------------------------------------------------------------------  
# Pusher Configuration  
#-----------------------------------------------------------------------------------  
## Interval for pushing executor JVM metrics (in seconds). Default: 15 seconds.  
angusrunner.jvmMetrics.pushIntervalInSecond=15  
## Interval for pushing executor task registration metrics (in seconds). Default: 5 seconds.  
angusrunner.taskMetrics.pushIntervalInSecond=5

Data Exchanger Configuration (remoting.properties)

ini
#-----------------------------------------------------------------------------------  
# Remote Client Configuration  
#-----------------------------------------------------------------------------------  
# Remote server host address. Direct connection mode is for testing environments only. Default: 127.0.0.1:5035.  
remoting.serverHost=  
# AngusTester controller service discovery URL prefix. If unconfigured or connection issues arise, serverHost is used as the fallback.  
remoting.ctrlUrlPrefix=  
## Access token required for AngusCtrl API access. Required for private deployments. Default is empty.  
remoting.ctrlAccessToken=  
## Heartbeat message interval (must be less than serverMaxAllowHeartbeat). Default: 10000 ms.  
remoting.heartbeatInterval=10000  
# Whether reconnection is allowed after disconnection. Default: true.  
remoting.allowReconnect=true  
# Reconnection interval after disconnection.  
remoting.reconnectInterval=5000  
#-----------------------------------------------------------------------------------  
# Remote Server and Client Common Configuration  
#-----------------------------------------------------------------------------------  
# Timeout for sending synchronous messages. Exceeding this limit stops waiting for a response. Default: 60000 ms.  
remoting.sendTimeout=60000  
#-----------------------------------------------------------------------------------

Released under the GPL-3.0 License.