- Java 17
- Maven 3.9+
- JUnit 5, Rest-Assured, Allure
- Gatling Java
Struktura projekta
src/test/java/backend/
api/
UserSmokePositiveTests.java
UserSmokeNegativeTests.java
CalendarSmokePositiveTests.java
CalendarSmokeNegativeTests.java
ProviderSmokePositiveTests.java
ProviderSmokeNegativeTests.java
helpers/
models/
performance/
UserLoadSimulation.java
PerformanceCleanup.java
BaseTest.java
mvn clean test; mvn allure:serve
mvn clean test-compile gatling:test
Performance Scenario
Kreira stotine korisnika kroz više pristupa (ramp-up, konstantan load i peak opterećenje). Svi korisnici koriste jedan hard-kodovani masterCalendarId. Nakon završetka kreiranja, pokreće se automatski cleanup (PerformanceCleanup) koji briše sve korisnike. Rezultati se nalaze u: target/gatling/-/index.html
Uz komandu mvn clean test; mvn allure:serve stranica sa rezultatima se odmah prikazuje u browseru Rezultati: target/allure-results/ i target/site/allure-maven-plugin/ Ima par palih testova kojI daju status code 500 umesto 400 ili 404, mozemo diskutovati na razgovoru. Tokom kreiranja korisnika sa nevalidnim payload-om (name dužine veće od dozvoljene)** i sa kalendarom,** API vraća HTTP 500 Bad Request. Međutim, nakon tog neuspešnog pokušaja i posle cleanUp-a, u bazi svc-calendar ostaje zapis u tabeli user_calendars koji se odnosi na nepostojećeg korisnika.
- JAVA_HOME i MAVEN_HOME ne smeju sadržati whitespace (razmake u putanji)
- Cleanup za performance testove se pokreće automatski nakon Gatling testa, zapravo je deo scenarija koji čeka 100 sekundi kako bi Create User scenario bio gotov.
- Cleanup za functional testove se izvrsava u AfterAll metodi u BaseTest klasi (za usere i kalendare), kao i u ostalim AfterAll/AfterEach metodama (za meetinge i evente)
Greške tipa: System property (jdk.java.options, ... ) has a value that contains a whitespace and can't be propagated on Windows ili ForkException – Gatling failed
Putanja JAVA_HOME ili MAVEN_HOME pokazuje na folder sa razmakom, npr.: C:\Program Files\Java\jdk-17
- Premestanje JDK u folder bez razmaka, npr.: C:\test\java\jdk-17