Skip to content

Commit cb180b9

Browse files
committed
Add artifacts
1 parent 289e840 commit cb180b9

File tree

2,235 files changed

+405784
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,235 files changed

+405784
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2025 Chair of Software & Systems Engineering
3+
Copyright (c) 2025 legregor
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Benchmark Test Suites for TrainTicket:A Benchmark Microservice System
2+
3+
This project provides a benchmark test suite for component and integration testing for the open-source microservice System [TrainTicket](https://github.com/FudanSELab/train-ticket)
4+
5+
## Supplementary Material
6+
7+
Supplementary materials, such as a listing of all mentions of issues within the system, can be found in the [Wiki](https://gitlab.lrz.de/marcel_skalski/train-ticket/-/wikis/home).
8+
9+
## General
10+
11+
The project is a train ticket booking system based on a microservice architecture which contains 41 microservices. The
12+
programming languages and frameworks it uses are as follows:
13+
14+
- Java - Spring Boot, Spring Cloud
15+
- Node.js - Express
16+
- Python - Django
17+
- Go - Webgo
18+
- DB - Mongo, MySQL
19+
20+
## Setup for executing Integration Tests
21+
22+
Make sure to run `maven clean` or `mvn clean` and `maven package` or `mvn package` before executing the test cases.
23+
24+
Before running the integration tests, it's necessary to build the Docker images for each service that is called within
25+
this project. A shell script is provided to build the images for all services automatically. You can run the script by
26+
executing the following command in the root directory that contains all the service directories (Make
27+
sure to give the script execution permission by running `chmod +x build_images.sh` before executing the script):
28+
29+
```shell
30+
./build_images.sh
31+
```
32+
33+
## Setup for running the Application locally
34+
### Using Docker Compose
35+
36+
The easiest way to get start with the Train Ticket application is by using [Docker](https://www.docker.com/)
37+
and [Docker Compose](https://docs.docker.com/compose/).
38+
39+
> If you don't have Docker and Docker Compose installed, you can refer to [the Docker website](https://www.docker.com/)
40+
> to install them.
41+
42+
### Build Project Files
43+
44+
* Run `maven clean` or `mvn clean` to delete the target directory with all the build data before starting the build process
45+
* Run `maven package` or `mvn package` to package all the modules into JAR files within the project/repository.
46+
47+
### Create / Run Docker Image
48+
49+
After, use command `docker-compose up --build` or `docker compose up` to build images for microservices and run the
50+
system.
51+
52+
### Usage of Application
53+
54+
Once the application starts, you can visit the Train Ticket web page at [http://localhost:8080](http://localhost:8080).
55+
56+
57+
In order to know how to use the application, you can refer
58+
to [the User Guide](https://github.com/FudanSELab/train-ticket/wiki/User-Guide).

build_images.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
services=("admin-basic-info" "admin-order" "admin-route" "admin-travel" "admin-user" "assurance" "auth" "basic" "cancel" "config" "consign-price" "consign" "contacts" "execute" "food-map" "food" "inside-payment" "notification" "order-other" "order" "payment" "preserve-other" "preserve" "price" "rebook" "route-plan" "route" "seat" "security" "station" "ticketinfo" "train" "travel2" "travel-plan" "travel" "user" "verification-code")
4+
5+
# Build Docker images for each service
6+
for service in "${services[@]}"
7+
do
8+
cd "ts-${service}-service"
9+
echo "Building Docker image for service: ${service}"
10+
docker build -t "local/ts-${service}-service:0.1" .
11+
cd ..
12+
done

dev.jvm.conf

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# https://medium.com/@satanjim/how-we-reduced-the-memory-consumption-of-spring-boot-application-over-40-for-the-development-c8a5813fac23
2+
# dev.jvm.conf
3+
# Override Application Property
4+
SERVER_TOMCAT_ACCEPT_COUNT=3
5+
SERVER_TOMCAT_MAX_CONNECTIONS=3
6+
SERVER_TOMCAT_THREADS_MAX=3
7+
SERVER_TOMCAT_THREADS_MIN_SPARE=1
8+
SPRING_MAIN_LAZY_INITIALIZATION=true
9+
10+
# Set JVM Parameters
11+
JAVA_TOOL_OPTIONS=-XX:+UseSerialGC -Xss512k -XX:MaxRAM=200m

diagrams/BasicService.drawio

Lines changed: 172 additions & 0 deletions
Large diffs are not rendered by default.

diagrams/BasicService.png

151 KB
Loading

diagrams/CancelService.drawio

Lines changed: 320 additions & 0 deletions
Large diffs are not rendered by default.

diagrams/CancelService_Order.png

38.4 KB
Loading
48 KB
Loading

0 commit comments

Comments
 (0)