Installing AngusAgent
AngusAgent serves as the core component of the AngusTester distributed testing system, providing three key capabilities:
- Task Execution Engine: Launches and manages script execution tasks.
- Service Simulation Platform: Runs and manages Mock services.
- Node Monitoring Center: Collects and reports node resource metrics in real-time.
The default complete installation package of AngusAgent includes the following components:
- AngusRunner: Test task and data generation task executor
- MockService: Interface simulation service
- AngusAgent: Node agent service
- AngusProxy: Request proxy service
- plugins: Test plugin collection
I. Prerequisites
- Ensure the target port
6807
is available. - Operating System: Supports Linux / macOS / Windows Server.
- Java Environment: For non-container installations, ensure JDK17+ is installed.
II. Online Installation (Recommended)
- Log in to the AngusTester console.
- Navigate to:
Configuration -> Nodes → Add Node
. - Enter node information (IP/account/password).
- Click the "Install Agent Online" button.
⚠️ Installation Requirements:
- Only system administrators and AngusTester application administrators can configure installations.
- The node's SSH port must be open (default: 22).
- The account must have root privileges.
- Network connectivity must be established without firewall restrictions.
🛠️ Troubleshooting Installation Failures:
If online installation fails, use the script installation method below.
III. Script Installation
bash
# Create installation directory
mkdir -p /opt/AngusAgent && cd /opt/AngusAgent
# Fetch and execute the installation script (copy the command generated in the console)
curl -s "https://bj-c1-prod-files.xcan.cloud/storage/pubapi/v1/file/install-agent.sh?fid=297761877096660998" | bash -s 1.0.0 299082246680215554 \
'https://bj-c1-prod-apis.xcan.cloud/tester/openapi2p/v1/ctrl' \
aWpbSRQ4OwXiOA1_8AJFVgQY8cDBkJUq4PSLwIb9D3lFoWJOR1hsFUG_EyhWUq5CNu-E7K1X29ZffzbhnVZylXTMFnFBMWKXX-EcMohOoMplWVbA78S0WayLuzsaPF6k \
1 203883811233071104
IV. Manual Configuration Installation
- Run the following command or click Download Installation Packagebash
curl -LO https://nexus.xcan.cloud/repository/release/package/AngusAgent-Full-1.0.0.zip
- After downloading the package, extract it to the target directory (e.g.,
/opt/AngusAgent
)bash# Extract the package to the target directory mkdir -p /opt/AngusAgent unzip -qo AngusAgent-Full-1.0.0.zip -d /opt/AngusAgent # Navigate to the installation directory cd /opt/AngusAgent
- Configure core parameters:properties
# Configure identity information # vi conf/agent.properties ########################################## angusagent.principal.tenantId=Your Tenant ID angusagent.principal.deviceId=Unique Node ID # Configure server controller address and authentication # vi conf/remoting.properties ########################################## remoting.ctrlUrlPrefix=Controller URL remoting.ctrlAccessToken=Your Node Authorization Token
Parameter Retrieval:
View parameters inConfiguration -> Nodes -> Installation Configuration
. - Run the agentbash
./startup-agent.sh
V. Verification
- Health Checkbash
curl -i http://localhost:6807 # Expected response: HTTP/1.1 200 OK Content-Type: application/json { "app": "AngusAgent", "version": "1.0.0", "health": {"status": "UP"}, # Key status metric "principal": { "tenantId": "1", "deviceId": "205198142092607130" } }
- Console Verification
- Access the AngusTester console.
- Navigate to:
Node Management → Node List
. - Check the target node status:
- ✅ Connection Status: Should show
Connected
. - ⏱️ Last Heartbeat: Updated within 2 minutes.
- ✅ Connection Status: Should show
⏳ Status synchronization may take up to 2 minutes. If the node remains disconnected, check the network and configuration.
VI. Service Management
- Linux/macOS
bash
# Start service
./startup-agent.sh
# Stop service
./shutdown-agent.sh
# View logs
tail -f logs/agent.log
VII. Configuration Reference
Agent Service Configuration (agent.properties)
ini
#-----------------------------------------------------------------------------------
# AngusAgent Service Configuration
#-----------------------------------------------------------------------------------
## IP address the agent binds to (default: 0.0.0.0, listens on all interfaces)
angusagent.serverIp=0.0.0.0
## Port number the agent binds to (default: 6807)
angusagent.serverPort=6807
## Enable SSL for the Netty HTTP server (default: false)
angusagent.useSsl=false
## Enable Netty logging (recommended for debugging only, default: false)
angusagent.enableNettyLog=false
## Configure request log level (options: NONE, BASIC, HEADERS, FULL)
### - NONE: No logging
### - BASIC: Logs request method, URL, response status, and execution time (default)
### - HEADERS: Logs basic info + request/response headers
### - FULL: Logs headers, body, and metadata of requests/responses
angusagent.requestLogLevel=FULL
## Thread name prefix for request processing (default: AngusAgent-Thread)
angusagent.threadNamePrefix=AngusAgent-Thread
#-----------------------------------------------------------------------------------
# AngusAgent Service Management Configuration
#-----------------------------------------------------------------------------------
## Base path for management endpoints (fixed as /actuator)
#angusagent.management.endpointsBasePath=/actuator
## Allow CORS for management endpoints (default: false)
angusagent.management.endpointsAllowCors=false
#-----------------------------------------------------------------------------------
# Authentication Configuration
#-----------------------------------------------------------------------------------
## Tenant ID (required for private deployments, default: empty)
angusagent.principal.tenantId=
## Device (Node) ID (required for private deployments, default: empty)
angusagent.principal.deviceId=
#-----------------------------------------------------------------------------------
# Data Push Configuration
#-----------------------------------------------------------------------------------
# JVM metrics push interval (default: 15 seconds)
angusagent.jvmMetrics.pushIntervalInSecond=15
# Node info registration push interval (default: 300 seconds)
angusagent.nodeInfo.pushIntervalInSecond=300
# Node usage registration push interval (default: 15 seconds)
angusagent.nodeUsage.pushIntervalInSecond=15
Data Exchanger Configuration (remoting.properties)
ini
#-----------------------------------------------------------------------------------
# Remote Client Configuration
#-----------------------------------------------------------------------------------
# Remote server host address (direct connection mode for test environments only, default: 127.0.0.1:5035)
remoting.serverHost=
# AngusTester controller service discovery URL prefix. If unconfigured or connection fails, uses serverHost as fallback
remoting.ctrlUrlPrefix=
## Access token for AngusCtrl API (required for private deployments, default: empty)
remoting.ctrlAccessToken=
## Heartbeat message interval (must be less than serverMaxAllowHeartbeat, default: 10000 ms)
remoting.heartbeatInterval=10000
# Allow reconnection after disconnection (default: true)
remoting.allowReconnect=true
# Reconnection interval after disconnection
remoting.reconnectInterval=5000
#-----------------------------------------------------------------------------------
# Remote Server/Client Common Configuration
#-----------------------------------------------------------------------------------
# Timeout for synchronous message sending (stops waiting for response after this duration, default: 60000 ms)
remoting.sendTimeout=60000
#-----------------------------------------------------------------------------------