diff --git a/README.md b/README.md index 27edf4f49..fa14542bd 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,8 @@ running... ``` This will run the API for you, so no need to run it manually. +**If you are already running the API, stop it before running the load tests or the cleanup steps won't work.** +The load tests will also spin up (and clean up) a local test DB on port 5434 that should not interfere with the local dev DB. The `locustfile.py` that specifies the load test is located at [`./operations/locustfile.py`](./operations/locustfile.py). diff --git a/docker-compose.postgres-test.yml b/docker-compose.postgres-test.yml new file mode 100644 index 000000000..23c3b1804 --- /dev/null +++ b/docker-compose.postgres-test.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + postgresql-test: + image: postgres:16 + restart: unless-stopped + environment: + POSTGRES_DB: "intermediary-test" + POSTGRES_PASSWORD: "changeIT!" # pragma: allowlist secret + POSTGRES_USER: "intermediary" + ports: + - 5434:5432 + volumes: + - ti_postgres_test_data:/var/lib/postgresql/data + +volumes: + ti_postgres_test_data: diff --git a/load-execute.sh b/load-execute.sh index ca81fcd9a..812e701d5 100755 --- a/load-execute.sh +++ b/load-execute.sh @@ -4,8 +4,8 @@ set -e start_api() { echo 'Starting API' export DB_URL=localhost - export DB_PORT=5433 - export DB_NAME=intermediary + export DB_PORT=5434 + export DB_NAME=intermediary-test export DB_USER=intermediary export DB_PASS=changeIT! export DB_SSL=require @@ -16,14 +16,14 @@ start_api() { start_database() { echo 'Starting database' - docker compose -f docker-compose.postgres.yml up -d + docker compose -f docker-compose.postgres-test.yml up -d sleep 2 echo "Database started" } migrate_database() { echo 'Migrating database' - liquibase update --changelog-file ./etor/databaseMigrations/root.yml --url jdbc:postgresql://localhost:5433/intermediary --username intermediary --password 'changeIT!' --label-filter '!azure' + liquibase update --changelog-file ./etor/databaseMigrations/root.yml --url jdbc:postgresql://localhost:5434/intermediary-test --username intermediary --password 'changeIT!' --label-filter '!azure' echo "Database migrated" } @@ -54,9 +54,9 @@ cleanup() { kill "${API_PID}" echo "PID ${API_PID} killed" echo "Stopping and deleting database" - docker stop trusted-intermediary-postgresql-1 - docker rm -f trusted-intermediary-postgresql-1 - docker volume rm trusted-intermediary_ti_postgres_data + docker stop trusted-intermediary-postgresql-test-1 + docker rm -f trusted-intermediary-postgresql-test-1 + docker volume rm trusted-intermediary_ti_postgres_test_data echo "Database stopped and deleted" }