Sign inSign up

smartbear/readyapi-testengine

By smartbear

•Updated about 2 months ago

Docker Image containing released builds of ReadyAPI TestEngine.

Image
2

1M+

smartbear/readyapi-testengine repository overview

virtserver.com

get documentation support version

⁠Introduction

ReadyAPI TestEngine⁠ allows SmartBear users to run ReadyAPI functional API tests in an automated, server-based environment. It delivers the most value when used together with ReadyAPI⁠ and CI/CD pipelines.


⁠Important Notes

Versions '1.25.1' and later mitigate the log4j CVE-2021-44228 vulnerability.


⁠Before You Start
  1. To run TestEngine, you need a valid license. Purchase a license from the SmartBear website⁠ or use an SLM access key for automatic activation.
  2. Expose all ports used in the configuration and ensure your network allows traffic on those ports.
  3. The default embedded database is H2. For production use, consider configuring an external PostgreSQL database.

⁠Application Setup

Default API address: http://localhost:8080


⁠docker-compose
version: "3.8"  
  
services:  
  testengine:  
    image: smartbear/readyapi-testengine:latest  
    container_name: testengine  
    ports:  
      - "8080:8080"  
      - "8443:8443"  
    environment:  
      - TESTENGINE_PASSWORD=admin_password  # password for admin user
      - TestEngineUser=john.smith  # username for a new user
      - TestEnginePassword=secret  # user password
      - TestEngineUserRole=Admin
      - SlmAccessKey=YOUR_ACCESS_KEY_HERE  
      - SlmServer=https://license-server.example.com  # optional  
    volumes:  
      - ./data:/data  # optional  
      - ./ext:/ext   # optional  
    restart: unless-stopped  

Start the service:

docker-compose up -d  

⁠Docker CLI
docker run -d \  
  --name testengine \  
  -v /opt/testengine/data:/data \  # optional  
  -v /opt/testengine/ext:/ext \  # optional 
  -p 8080:8080 \  
  -p 8443:8443 \  
  -e TESTENGINE_PASSWORD=your-admin-password \  #password for admin
  -e TestEngineUser=john.smith \  # username for a new user
  -e TestEnginePassword=secret \  #password for user
  -e TestEngineUserRole=Admin \  
  -e SlmAccessKey=YOUR_ACCESS_KEY_HERE \  
  --restart unless-stopped \  
  smartbear/readyapi-testengine:latest  

⁠Alternative Run Commands
SmartBear ID–based license hosted on SmartBear license server
docker run -d \  
  -v /opt/testengine/data:/data \  
  -p 8080:8080 \  
  -e TESTENGINE_PASSWORD=your-admin-password \  
  -e SlmAccessKey=<SLM access key> \  
  smartbear/readyapi-testengine:latest  
SmartBear ID–based license hosted on a customer-managed on-premises license server
docker run -d \  
  -v /opt/testengine/data:/data \  
  -p 8080:8080 \  
  -e TESTENGINE_PASSWORD=your-admin-password \  
  -e SlmServer=<SLM license server address> \  
  -e SlmAccessKey=<SLM access key> \  
  smartbear/readyapi-testengine:latest  
With an external PostgreSQL database
docker run -d \  
  -v /opt/testengine/data:/data \  
  -p 8080:8080 \  
  -e TESTENGINE_PASSWORD=your-admin-password \  
  -e SlmAccessKey=<SLM access key> \  
  -e JVM_OPT_db_driver="<VARIABLE_SYNTAX>" \
  -e JVM_OPT_db_url="<VARIABLE_SYNTAX>" \
  -e JVM_OPT_db_user="<VARIABLE_SYNTAX>" \
  -e JVM_OPT_db_password="<VARIABLE_SYNTAX>" \
  smartbear/readyapi-testengine:latest  
Sandbox mode (disables Groovy, DataSource, and DataSink steps)
docker run -d \  
  -v /opt/testengine/data:/data \  
  -p 8080:8080 \  
  -e TESTENGINE_PASSWORD=your-admin-password \  
  -e TestEngineSandbox=true \  
  -e SlmAccessKey=<SLM access key> \  
  smartbear/readyapi-testengine:latest  

⁠Setup Parameters
ParameterRequiredDescription
-v {path}:/data➖Mounts /data to {path} on the local file system. Persists configuration, database, and logs.
-v {path}:/ext➖Mounts /ext to {path} on the local file system. Used for additional extension JAR files.
-p 8080:8080✅Publishes the HTTP port from the container to the host.
-p 8443:8443➖Publishes the HTTPS port from the container to the host.

⁠Environment Variables

When running docker run (or the equivalent in Docker Cloud or similar platforms), you pass configuration values to the container using environment variables.

In Docker Cloud and similar platforms, you typically configure these variables in a table view. When running from the command line, define them as environment variables in the container configuration.

The following parameters are available:

ParameterRequiredDescription
TESTENGINE_PASSWORD✅*Sets the admin account password on startup.
TESTENGINE_RESET_ADMIN_ACCOUNT➖If set (any value), resets the admin account on startup.
TestEngineUser➖User name added to the TestEngine user database.
TestEnginePassword➖Password for TestEngineUser.
TestEngineUserRole➖Role assigned to TestEngineUser (e.g. Admin).
TestEngineSandbox➖Set to true to disable Groovy, DataSource, DataSourceLoop, and DataSink test steps.
TestEngineVMOptions➖Comma-separated list of key=value JVM system properties.
TestEngineClassPathExt➖Location of the ext directory for adding additional JAR files.
TestEngineLicense➖Path to a license key file inside the container.
SlmAccessKey✅SLM license access key for automatic license activation. If omitted, the server expects a license file passed using TestEngineLicense.
SlmServer➖SLM license server URL. Only needed when using a customer-managed on-premises license server.
ConfigFilePath➖Path to an alternative configuration file.
CONFIG➖Image-relative path to the configuration YAML file. Defaults to /data/readyapi-testengine.yaml.
JVM_OPT_<unique_id>➖Additional JVM options. Use the format JVM_OPT_1=-Dproperty=value.

* Required only for the initial run. If you reuse the same storage volume (/data) between runs, TestEngine retains its stored configuration and user data.


⁠Configuration File (readyapi-testengine.yaml)

The configuration file is persisted at /data/readyapi-testengine.yaml. It supports `` substitution. You can override individual properties at runtime using JVM_OPT_* variables with VARIABLE_SYNTAX like this: -Ddw.<path>=<value>.

PropertyTypeDefaultDescription
server.applicationConnectorslistHTTP on 8080HTTP/HTTPS connectors with port, bindHost, and keystore settings.
server.adminConnectorslist[]Admin API connectors.
log4jConfigurationFilestringlog4j2.xmlLog4j configuration file.
allowedConnectTargetslist['*']Outgoing connection restrictions in java.net.SocketPermission format.
allowedIncomingConnectTargetslist[]Incoming connection restrictions.
usageStatisticsEnabledbooleantrueSends usage statistics to SmartBear.
maxConcurrentJobsint10Maximum concurrent test jobs. Excess jobs are queued.
allowedFilePathslist[]Server paths accessible for direct file reads in tests.
maxDaysToKeepint60Days to keep completed jobs (-1 to disable).
maxJobsToKeepint-1Maximum completed jobs to keep (-1 to disable).
testStepJdbcConnectionsAllowedbooleanfalseAllows JDBC connections from test steps. Enabling this can be a security risk.
pdfReportsEnabledbooleantrueEnables PDF report generation.
gitPathstringnullPath to the git executable.
repositorieslist[]Git repository configurations.
database.driverClassstringorg.h2.DriverJDBC driver class.
database.userstringsmartDatabase user.
database.passwordstringbearDatabase password.
database.urlstringjdbc:h2:~/.readyapi/db/testengineJDBC connection URL.
database.minSizeint4Minimum number of database connections.
database.maxSizeint32Maximum number of database connections.

Tag summary

Content type

Image

Digest

sha256:af82e19db…

Size

893.7 MB

Last updated

3 months ago

docker pull smartbear/readyapi-testengine