- Overview
- Atlas-atp3-pipeline Run
- Manual run
- Deploy parameters
- Hardware / Resource Requirements (HWE)
- Description of CI/CD process
- Reporting
- Local Build
- Local Run Collections without S3 allure report (via
local_start.sh) - Local Run Collections with S3 allure report (via
local_start.sh)
Bruno Runner - this runner uses .bru test cases and mainly used for North Bound Integration testing.
Separate calls can be combined into a collection.
Comparing to other runners CUSTOM_PARAMS is different please double-check it before run
One option is to run tests using Atlas-atp3-pipeline
When running it's implicitly uses all Deploy parameters it stored in DB.
| Parameter | Type | Mandatory | Default value | Description |
|---|---|---|---|---|
| PIPELINE_RUNTIME_CONFIG | string | yes | environments/<project-env>.yaml |
Environment Configuration file |
| ATP_APPLICATION_VERSION | string | yes | atp3-bruno-runner:master-20251216.081318-9-RELEASE |
Bruno descriptor of image to run |
| ATP_TESTS_GIT_REPO_URL | string | yes | https://<somegit>.com/<path-to-tests>.git |
URL to a repository with test files |
| ATP_TESTS_GIT_REPO_BRANCH | string | yes | master |
Branch from which need to execute tests mentioned in ATP_TESTS_GIT_REPO_URL |
| EXECUTION_TYPE | string | no | scope |
Type of execution (For Bruno use TEST_PARAMS) |
| EXECUTION_NAME | string | no | product |
Name of execution (For Bruno use TEST_PARAMS) |
| ENABLE_JIRA_INTEGRATION | string | yes | false |
Activates Jira Integration |
| NOTIFICATION_RECIPIENTS | string | yes | someEmail@no-reply.com |
Emails of test result recipients |
| CUSTOM_PARAMS | string | yes | TEST_PARAMS='{"collections":["collections/Project_collection"],"env":"env1","env_vars":{"VAR":""},"flags":["--insecure"]}'; |
It's IMPORTANT to set TEST_PARAMS for Bruno test run because it's not propagated automatically as in other runners. Another example |
If you want to use custom runners or local run here is a list of parameters
Atlas Runner implicitly uses these parameters
| Parameter | Type | Mandatory | Default value | Description |
|---|---|---|---|---|
| ENVIRONMENT_NAME | string | yes | default |
Environment name (e.g., dev, test, prod). |
| ENV_CONFIGURATION_TEMPLATE_FILENAME | string | no | environment-configuration-template.json |
Environment configuration template filename used during runtime configuration rendering. |
| ATP_TESTS_GIT_REPO_URL | string | yes | "" |
Git repository URL with test sources. https://.com//-tests.git |
| ATP_TESTS_GIT_TOKEN | string | yes | your-token |
Access token for private Git repositories with tests (propagated automatically). |
| TEST_PARAMS | JSON | yes | {} |
Additional test parameters to pass to test runner. |
| ATP_ENVGENE_CONFIGURATION | JSON | no | {} |
Additional test parameters (Systems) to pass to test runner from EnvGene. |
| ATP_STORAGE_BUCKET | string | yes | "" |
S3 bucket name for uploading results. |
| ATP_STORAGE_USERNAME | string | yes | storage-access-key |
Access key for S3 bucket. |
| ATP_STORAGE_PASSWORD | string | yes | storage-secret-key |
Secret key for S3 bucket. |
| ATP_STORAGE_SERVER_URL | string | yes | `` | API endpoint for accessing S3 storage. |
| ATP_STORAGE_SERVER_UI_URL | string | yes | `` | Web UI endpoint for viewing files in the S3 bucket. |
| ATP_REPORT_VIEW_UI_URL | string | yes | "" |
URL for viewing generated test reports. |
| ATP_TESTS_GIT_REPO_BRANCH | string | no | master |
Git branch containing tests. |
| ATP_ENVGENE_CONFIGURATION | JSON | no | {} |
Additional test parameters to pass to test runner from EnvGene. |
| ATP_STORAGE_PROVIDER | string | no | minio |
Type of S3 storage (e.g., minio, aws). |
| ATP_STORAGE_REGION | string | no | "" |
S3 region (used by some providers). |
| DEBUG_MODE | boolean | no | false |
Enable additional debug behavior and logs in runner scripts. |
| CURRENT_DATE | string | no | "" |
Date to use in report naming (format: YYYY-MM-DD). |
| CURRENT_TIME | string | no | "" |
Time to use in report naming (format: HH:MM:SS). |
| ATP_RUNNER_JOB_TTL | integer | no | 3600 |
Time-to-live for the test job in seconds. |
| ATP_RUNNER_JOB_EXIT_STRATEGY | string | no | EXIT_ALWAYS |
Exit strategy for the runner job. |
| ENABLE_JIRA_INTEGRATION | boolean | no | false |
Enable Jira integration for tests. |
| MONITORING_ENABLED | boolean | no | true |
Enable monitoring for the runner. |
| SECURITY_CONTEXT_ENABLED | boolean | no | false |
Flag to enable or disable the security context for the Playwright Runner service. |
| podSecurityContext | object | no | { runAsUser: 1000, fsGroup: 1000 } |
Pod-level security context settings. |
| containerSecurityContext | object | no | {} |
Container-level security context settings. |
| affinity | object | no | {} |
Pod affinity rules. |
| tolerations | array | no | [] |
Pod tolerations. |
Supported 2 profiles: dev, prod.
| Parameter | Dev | Prod |
|---|---|---|
| MEMORY_REQUEST | 100Mi | 100Mi |
| MEMORY_LIMIT | 1000Mi | 2000Mi |
| CPU_REQUEST | 100m | 300m |
| CPU_LIMIT | 500m | 1000m |
flowchart TD
subgraph atp_bruno_runner["ATP Bruno Runner"]
direction LR
runner_step1["Initialize env (init_environment)
- validate ATP_STORAGE_* variables
- set CURRENT_DATE/CURRENT_TIME defaults
- create TMP_DIR=/tmp/clone
"] -->
runner_step2["Clone repository (git_clone.sh)"] -->
runner_step3["Run tests (start_tests.sh)"] -->
runner_step4["Upload to S3"] -->
runner_step5["Generate email notification"] -->
runner_step6["print Result/Report URLs (finalize_upload)"]
end
For Bruno runner it's required to set TEST_PARAMS inside CUSTOM_PARAMS.
TEST_PARAMS is a JSON object with the following supported keys:
| Parameter | Type | Mandatory | Default value | Description |
|---|---|---|---|---|
| collections | array[string] | yes | [] |
List of relative paths to Bruno collection directories that will be executed (each entry is used as bru run <collection>). |
| env | string | yes | "" |
Bruno environment name/path passed to bru run --env "<env>". If the value ends with .bru, the runner strips the extension. |
| env_vars | object | no | {} |
Environment variables passed to Bruno as --env-var key=value (one per entry). |
| flags | array[string] | no | [] |
Extra Bruno CLI flags. The runner joins the array with spaces (example: ["--insecure","--iteration-count 1"] → --insecure --iteration-count 1). |
Use collection to set path to test collection. You can use several collections separated with ,
Use env to set environment file which is in environment folder inside collection
{
"env_vars": {
"DB_NAME_PREFIX": "db-12345",
"KAFKA_PROJECT": "kafka_temp",
"NAMESPACE": "systems_under_test",
"SERVER_HOSTNAME": "project.cloud.somedomain.com",
"SERVER_PORT": "6443",
"cluster": ".k8s-apps5.k8s.sdntest.somedomain.com"
},
"env": "mockserver",
"collections": [
"collections/Project stubs",
"collections/Project_collection"
],
"flags": [
"--insecure",
"--iteration-count 1"
]
}The same example appropriate for atlas-atp3-runner:
TEST_PARAMS='{"env_vars":{"DB_NAME_PREFIX":"db-12345","KAFKA_PROJECT":"kafka_temp","NAMESPACE":"systems_under_test","SERVER_HOSTNAME":"project.cloud.somedomain.com","SERVER_PORT":"6443","cluster":".k8s-apps5.k8s.sdntest.somedomain.com"},"env":"mockserver","collections":["collections/test","collections/Project_collection"],"flags":["--insecure","--iteration-count 1"]};'
During the collection run, reports are generated in three formats: CLI, JSON, and Allure.
- CLI - Performs logging to the console. Required for local debugging of the service itself, as well as debugging of the collection.
- JSON - This is a built-in Bruno logger that writes results to a JSON file. It is convenient for automated parsing of results.
- Allure - A system for visually displaying the results of collection runs. Ideal for visual analysis of automated test results by humans.
This guide explains how to prepare your local machine to run the service and Bruno tests with reports.
- Node.js LTS (includes
npm). Check:node -v && npm -v - Git (to use Git Bash / PowerShell).
Recommended on Windows: install via Scoop¹
# Install Scoop (if not installed)¹
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
iwr -useb get.scoop.sh | iex
# Install jq and s5cmd
scoop install jq s5cmdAlternatives:
# Winget
winget install jqlang.jq
winget install peak.s5cmd
# Chocolatey
choco install jq
choco install s5cmdVerify:
jq --version
s5cmd --versionGit Bash note: if commands aren’t visible, add Scoop shims to PATH:
In the repository root:
npm installjq: command not found→ install via Scoop/Winget/Choco; re-open terminal.s5cmd: command not found→ ensure it’s installed and visible in PATH (see note above).
Below are minimal steps to run Bruno collections locally via the prepared script.
Before running local_start.sh, you must prepare test data for conversion:
- Create/modify file
tools/local_test_params.jsonand fill it with test data - Download the collection(s) and environment(s) you need to run into the local-collection folder. The paths to the collections and environment(s) must match the contents of file
tools/local_test_params.json - You need to create a new folder named local-collection in the root directory.
- Add the folder containing the collection(s) and the environment for running to the local-collection folder (note: the environment must be located inside the folder with the collection in the
environmentssubfolder (this is Bruno's condition)) - The main file for running the collection at the end of the local_starts.sh file should be start_tests.sh
Example content for tools/local_test_params.json:
{
"collections": [
"collections/Claro stubs"
],
"env": "mockserver",
"env_vars": {
"SERVER_HOSTNAME": "http://localhost",
"SERVER_PORT": "3001",
"token": "some-token",
"tenant-id": "some-tenant-id",
"MOCKSERVER": "https://mockserver-project-name.atp.managed.somedomain.cloud",
"PUBLIC_GATEWAY": "http://public-gateway-dev01.project-info.managed.somedomain.cloud",
"productId": "42",
"PUBLIC_GATEWAY_QA": "https://public-gateway-qa1.project-info.managed.somedomain.cloud"
},
"flags": [
"--insecure"
]
}Below are minimal steps to run Bruno collections locally via the prepared script.
Before running local_start.sh, you must prepare test data for conversion:
- Create/modify file
tools/local_test_params.jsonand fill it with test data - Download the collection(s) and environment(s) you need to run into the local-collection folder. The paths to the collections and environment(s) must match the contents of file
tools/local_test_params.json - You must fill in the values for the environment variables.
- You need to add a “.” symbol to each absolute path in the entrypoint.sh file and start_tests.sh (for example, to declare the contents of the scripts and tools folders).
- You need to add a command to navigate to the working directory (cd $WORK_DIR) before copying the start_tests.sh file to entrypoint.sh
- The main file for running the collection at the end of the local_starts.sh file should be entrypoint.sh
Example of the contents of file tools/local_test_params.json is shown in the previous section.
# from repo root
# Prepare test data
# - create ./tools/local_test_params.json with project/job data (see example above)
# Then run
./local_start.sh