|
| 1 | +# Hub Santé load testing |
| 2 | + |
| 3 | +## Description |
| 4 | + |
| 5 | +TODO : |
| 6 | + |
| 7 | +- [] Lister les scénarios implémentés et avec quelle charge |
| 8 | + |
| 9 | +## Utilisation en local |
| 10 | + |
| 11 | +### Prérequis |
| 12 | + |
| 13 | +- Java 21 |
| 14 | +- Droits de connexion : |
| 15 | + - Disposer du certificat client associé à l'utilisateur des tmc |
| 16 | + - Génerer un trustStore avec la root CA IGC Santé (TEST/PROD en fonction de l'environnement visé) |
| 17 | + |
| 18 | +### Environnement |
| 19 | + |
| 20 | +- Dans `tools/tmc`, uppliquer le fichier `.env.template` en le renommant `.env` : |
| 21 | + |
| 22 | +```bash |
| 23 | +cp .env.template .env |
| 24 | +``` |
| 25 | + |
| 26 | +- Remplir le fichier `.env` en référençant |
| 27 | + - les paths **absolus** du certificat et du truststore (respectivement `CERTIFICATE_PATH` et `TRUST_STORE_PASSWORD`) |
| 28 | + - les mots de passe associés (respectivement `KEY_PASSPHRASE` et `TRUST_STORE_PASSWORD`) |
| 29 | + - le host du server RabbitMQ visé (`RABBITMQ_HOST`) |
| 30 | + - le port du server RabbitMQ visé (`RABBITMQ_PORT`) |
| 31 | + - le nom de l'exchange visé pour la publication des messages sur le server RabbitMQ (`EXCHANGE_NAME`) |
| 32 | + |
| 33 | +Note : l'exposition des variables d'environnement via fichier `.env` est géré en dev local par la librairie [dotenv-java](https://github.com/cdimascio/dotenv-java). |
| 34 | + |
| 35 | +### Lancement des tests |
| 36 | + |
| 37 | +Pour lancer la simulation `PublishExample` utiliser la commande : |
| 38 | + |
| 39 | +```bash |
| 40 | +./gradlew gatlingRun --simulation example.PublishExample |
| 41 | +``` |
| 42 | + |
| 43 | +## Architecture technique |
| 44 | + |
| 45 | +Sur Confluence sont disponibles [l'expression de besoin](https://ans-esante.atlassian.net/wiki/spaces/HUB/pages/1256292572/Expression+de+besoin) et la [stratégie technique](https://ans-esante.atlassian.net/wiki/spaces/HUB/pages/1257865233/Strat+gie+Technique) retenue pour l'implémentation des tests de montée en charge sur le Hub Santé. |
| 46 | + |
| 47 | +Le document de stratégie technique contient notamment un ADR sur le choix de Gatling par rapport aux autres offres disponibles sur le marché. |
| 48 | + |
| 49 | +Note : la version de Gatling utilisée ici est la `3.11.3`. Il en est ainsi car il s'agit la version la plus récente utilisable avec le plugin [gatling-amqp](https://github.com/galax-io/gatling-amqp-plugin). |
| 50 | + |
| 51 | +## Archive : Gatling default readme |
| 52 | + |
| 53 | +Gatling plugin for Gradle - Java demo project |
| 54 | + |
| 55 | +============================================= |
| 56 | + |
| 57 | +A simple showcase of a Gradle project using the Gatling plugin for Gradle. Refer to the plugin documentation |
| 58 | +[on the Gatling website](https://gatling.io/docs/current/extensions/gradle_plugin/) for usage. |
| 59 | + |
| 60 | +This project includes: |
| 61 | + |
| 62 | +- Gradle Wrapper, so you don't need to install Gradle (a JDK must be installed and $JAVA_HOME configured) |
| 63 | +- minimal `build.gradle` leveraging Gradle wrapper |
| 64 | +- latest version of `io.gatling.gradle` plugin applied |
| 65 | +- sample [Simulation](https://gatling.io/docs/gatling/reference/current/general/concepts/#simulation) class, |
| 66 | +demonstrating sufficient Gatling functionality |
| 67 | +- proper source file layout |
0 commit comments