Hi Angelo, ich glaube das wir hier gut weiterkommen sind. Bitte Frage schießen, lg zoni
Hallo Angelo,
Ja du hast Recht, testen geht mit der public-rest-api super.
(1)
Ursprünglich haben wir tatsächlich mit IntelliJ http File getestet,
welche nicht nur in IntelliJ exekutiert werden konnten,
sondern auch mittels maven.
Das war im Repo https://gitlab.com/CoCommunity/coco-projects/co-public-rest-api-test/
Ein Beispiel findest du hier:
https://gitlab.com/CoCommunity/coco-projects/co-public-rest-api-test/-/blob/develop/co-rest-tests/src/desktop/desktop-identities.http
Wie du sehen kannst wird in den ersten 12 Zeilen vom Keycloak ein access-token abgeholt
und in einer Javascript Variable access_token gespeichert.
Welche dann beim ersten Test in den Zeile 14-24 als Authorization Header übergeben wird.
Damit du einen Token vom Keycloak bekommst, brauchst du die
- auth-server-url (bei euch: https://campus.tum.de/tumonline/co/public/sec/auth/realms/CAMPUSonline)
- einen Testclient, den man im Keycloak anlegen muss, und dem man die entsprechenden Scopes geben muss
=> client_id, client_secret
(2)
Wir sind dann aber dazu übergegangen, nicht die HTTP Files zu verwenden,
sondern Quarkus als Testframework zu nutzen.
Hier findest du im der Public REST API anleihen, wie man das machen kann.
https://gitlab.com/CoCommunity/co-public-rest-api/-/tree/develop/pub-rest-api-testing
z.B. ein Test für Semester API:
https://gitlab.com/CoCommunity/co-public-rest-api/-/blob/develop/pub-rest-api-testing/pub-rest-test-semester/src/main/java/at/campusonline/pub/rest/test/semester/semesters/SemestersTestSuite.java
welcher wiederum von RestAssured angestoßen wird.
Man muss nur den Quarkus im Folder
https://gitlab.com/CoCommunity/co-public-rest-api/-/tree/develop/pub-rest-api-testing/pub-rest-test-semester
starten.
Das .env-template kopieren cp .env-template .env
https://gitlab.com/CoCommunity/co-public-rest-api/-/blob/develop/pub-rest-api-testing/pub-rest-test-semester/.env-template
Und die Werte in der .env Datei anpassen.
Wenn du willst kann ich dir in einer VK das mal zeigen :-)
lg zoni