This project provides a benchmark test suite for component and integration testing for the open-source microservice System TrainTicket
Supplementary materials, such as a listing of all mentions of issues within the system, can be found in the Wiki.
The project is a train ticket booking system based on a microservice architecture which contains 41 microservices. The programming languages and frameworks it uses are as follows:
- Java - Spring Boot, Spring Cloud
- Node.js - Express
- Python - Django
- Go - Webgo
- DB - Mongo, MySQL
You can find more information on the system and its functionality in the original TrainTicket repository
Within the test directory of each microservice, tests are divided into separate directories for component and integration tests to reflect the type of testing being performed. We include an integration directory only if the service makes requests to other services and, therefore, an integration scenario is given. Within both the component and integration directories, tests are further subdivided into subdirectories based on HTTP methods. Consequently, tests are categorized under get, post, put or delete directories. Some services additionally contain AuthTest classes for testing their security-related behavior.
Make sure to run maven clean
or mvn clean
and maven package
or mvn package
before executing the test cases.
Before running the integration tests, it's necessary to build the Docker images for each service that is called within
this project. A shell script is provided to build the images for all services automatically. You can run the script by
executing the following command in the root directory that contains all the service directories (Make
sure to give the script execution permission by running chmod +x build_images.sh
before executing the script):
./build_images.sh
The easiest way to get start with the Train Ticket application is by using Docker and Docker Compose.
If you don't have Docker and Docker Compose installed, you can refer to the Docker website to install them.
- Run
maven clean
ormvn clean
to delete the target directory with all the build data before starting the build process - Run
maven package
ormvn package
to package all the modules into JAR files within the project/repository.
After, use command docker-compose up --build
or docker compose up
to build images for microservices and run the
system.
Once the application starts, you can visit the Train Ticket web page at http://localhost:8080.
In order to know how to use the application, you can refer to the User Guide.
Lena Gregor, Marcel Skalski, Alexander Pretschner.
Benchmarking Component and Integration Testing in Microservices: Test Suites and Fault Analysis on TrainTicket
IEEE International Congress On Intelligent And Service-Oriented Systems Engineering (CISOSE 2025)