| Image | Linux amd64 |
Linux arm64 |
Windows amd64 |
Branch | Last Updated | Mobile Tests |
|---|---|---|---|---|---|---|
latest |
✅ | ✅ | ✅ | main |
2026/03/25 | ➖ |
1.0.2 |
✅ | ✅ | ✅ | main |
2026/03/25 | ➖ |
A comprehensive end-to-end testing application that serves as both a test target and a validation suite for the Testlum testing framework.
Learn how to execute existing regression tests using the Testlum framework and the demo repository.
By default, tests may run in headless mode (without opening a browser window).
If you want to observe the UI and test flow visually, update your configuration to turn off headless mode before running the tests here
and visit http://localhost:7900 by providing secret as a password
The project consists of three main components:
- TEST-API — Spring Boot backend exposing REST, GraphQL, and WebSocket endpoints across multiple integrations
- TEST-UI — Vue 3 frontend dashboard used as a target for UI automation tests
- REGRESSION — Testlum-based test suite covering all supported integration types
| Layer | Technologies |
|---|---|
| Frontend | Vue 3, Vite, TypeScript, Tailwind CSS, CoreUI |
| Backend | Spring Boot 2.5.4, Spring Security, Spring Data |
| Databases | PostgreSQL, MySQL, Oracle, ClickHouse, MongoDB, DynamoDB |
| Caching | Redis |
| Message Queues | Kafka, RabbitMQ, AWS SQS |
| Cloud | AWS (Lambda, S3, DynamoDB, SQS, SES) via LocalStack |
| APIs | REST, GraphQL, WebSocket |
| Testing | Testlum Framework, Selenium Grid |
| Infrastructure | Docker, Docker Compose, HashiCorp Vault |
| Authentication | JWT, Basic Auth |
- Docker and Docker Compose
- (Optional) Android emulator for mobile testing
A single script orchestrates the full stack:
./run-appThis will:
- Validate Docker is installed and running
- Create the
e2e_networkDocker network - Start all integration services (databases, queues, cloud emulators)
- Initialize HashiCorp Vault
- Start Selenium Grid
- Build and start TEST-API and TEST-UI
To also launch the Android emulator for mobile testing:
./run-app --mobile
# or
./run-app -mmega-test-app/
├── TEST-API/ # Spring Boot backend
├── TEST-UI/ # Vue 3 frontend
├── REGRESSION/ # Testlum test suite
│ └── resources/
│ ├── scenarios/ # Test scenario definitions (XML)
│ ├── locators/ # UI element locators
│ ├── data/ # Test data (JSON)
│ └── config/ # Execution configurations
├── docker/ # Docker Compose files and init scripts
├── run-app # Main orchestration script
└── run-android-device # Android emulator setup
The REGRESSION suite covers:
- HTTP — REST APIs, Basic Auth, JWT, GraphQL, WebSocket, multipart uploads
- Databases — MySQL, PostgreSQL, Oracle, ClickHouse, MongoDB, DynamoDB
- Message Queues — Kafka, RabbitMQ, SQS
- Storage — Redis, S3
- UI — Web browser, mobile browser, native Android
- Mail — SendGrid, SES, SMTP, Twilio
- Shell — Shell command execution
- Core — Conditions, assertions, variables, data variations
The following services are started via Docker Compose:
| Service | Purpose |
|---|---|
| PostgreSQL (×2) | Relational DB and auth DB |
| MySQL | Relational DB |
| Oracle XE 18.4 | Relational DB |
| MongoDB 4.2 | Document store |
| Elasticsearch 7.12 | Search engine |
| ClickHouse | Analytics DB |
| Redis 7 | Cache / key-value store |
| DynamoDB Local | AWS DynamoDB emulator |
| Kafka | Message streaming |
| RabbitMQ 3.6 | Message broker |
| LocalStack | AWS services (Lambda, S3, SQS, SES) |
| HashiCorp Vault | Secrets management |
| Selenium Grid | Distributed browser automation |
Test execution is configured via XML files in REGRESSION/resources/config/:
config-local.xml— Local development executionconfig-ci-regression.xml— CI pipeline executionconfig-ci-regression-mobile.xml— Mobile CI execution
The run-regression script runs the Testlum Docker container against the local test resources.
Usage:
./run-regressionBy default it uses the pre-defined values:
- Image:
ghcr.io/testlumframework/testlum - Config:
-c=config-local.xml - Path:
-p=<project-root>/REGRESSION/resources
To use dynamic arguments, edit the script and switch to the commented-out dynamic params section, then call:
./run-regression <image-name> -c=<config>.xml -p=<path-to-resources>Arguments:
| # | Argument | Format | Description |
|---|---|---|---|
| 1 | Docker image name | <image>:<tag> |
Testlum Docker image to run |
| 2 | Config file | -c=<file>.xml or --config=<file>.xml |
Test configuration file |
| 3 | Path to resources | -p=<path> or --path=<path> |
Path to the REGRESSION/resources directory |
Example:
./run-regression testlum:1.0.2 -c=config-local.xml -p=/home/user/mega-test-app/REGRESSION/resourcesThe script validates that Docker is running, all arguments are in the correct format, and the specified resources path exists before launching the container.
Backend (TEST-API):
cd TEST-API
mvn clean packageFrontend (TEST-UI):
cd TEST-UI
pnpm install
pnpm dev # development server
pnpm build # production build