Fully parametrized performance scenarios based on Gatling with Scala.
1. execute command with sample parametrization:`gradle clean gatlingRun-simulations.CloseModel_ConstantConcurrentUsers \
-DUSERS=10 \
-DBASE_URL=http://XXXX.com \
-DDURATION=10`
- see the report on build/reports/gatling
In stormrage-gatling
- grafana - docker-compose-monitor file for grafana Configuration
- influxdb - docker-compose-monitor file for influxdb Configuration
- redis_feeder - docker-compose file for redis feeder server Configuration
- src - gatling Framework code
- gatling - demo for docker-compose
- grafana_gatling - docker-compose file for grafana Configuration
- influxdb_gatling - docker-compose file for influxdb Configuration
- loki_gatling - docker-compose file for Loki Configuration include promtail config
- mmock - Monster-Mock Server Configuration
- nginx - Nginx Configuration for Gatling Report
- prometheus - docker-compose file for Prometheus Configuration
In Src
- resources - bodies(body json), data(csv feeder data), gatling.conf(gatling Configuration), logback-test.xml(log level), simulation.conf(user configuration files)
- simulations(Performance test setup and workload model), singleObjects(http common), util(common function), cases(http request api), scenario(Process scenario)
The lifecycle is as below:
- Gatling starts
- Simulation instance is created and all code not delayed in
before
andafter
hooks is execute (code inside a Scala class body is its constructor) before
hook is executed- Simulation runs
- Simulation terminates
after
hook is executed- HTML reports are generated if enabled
- Gatling shuts down
- Closed systems, where you control the concurrent number of users
- Open systems, where you control the arrival rate of users
Make sure to use the proper load model that matches the load your live system experiences.
![Gatling](Stormrage-Gatling%20Cloud.png "Gatling Architecture")- Add more steps
- Implement realtime solution with
InfluxDb
andGrafana
- Load tests analysis with aggregated data in
InfluxDb
displayed in comprehensive reports generated withGrafana
- Handle comparison in
Grafana
withJavaScript
- Load tests logs with
Loki
- Aggregated library with GRPC,MQTT etc