Jmeter plans for some end to end tests and the associated scripts to run them. Those tests must be run in a controlled platform which won't be disturbed during the tests execution.
The project can run the same JMeter plan against multiple scenarios:
- Non-regression tests: executed everyday to detect regressions
- Performance tests: to test the nominal case and obtain the nominal response times
- Load tests: to test how much load the platform can handle
- Fork this project to make all your modifications
- Add into the folder
scripts/jmx_plans/
all the JMeter plans you want to test - Link the JMeter plans into the file
scripts/plan.jmx
- Add all the different workflows at
src/main/kotlin/com/com/end2end/serivce/RequestsResultsAnalyzer.kt
- Implement the way to retrieve the VM metrics at add the output at
scripts/vm_output.csv
- Run the first time to obtain the reference data, and move the reference data to the folder
scripts/plot-reference/
- Add the regexes to plot the different graphs at
scripts/plot.sh
- Implement the way the results are uploaded into your favorite storage system and use it at
src/main/kotlin/com/com/end2end/Application.kt
- List all the VM services you want to check at
src/main/kotlin/com/com/end2end/serivce/VMResultsAnalyzer.kt
- Implement the continuous delivery pipeline script
scripts/run.sh nr
The load used for those kind of tests is just one user at a time. All the workflows will be run sequentially.
scripts/run.sh perf
## obtain the VM metrics at this point
scripts/plot.sh
gradle run
The load used for those kind of tests is the nominal (adapt it at scripts/run.sh
)
All the workflows will be run in parallel.
scripts/run.sh load
## obtain the VM metrics at this point
scripts/plot.sh
gradle run
The load used for those kind of tests is very high (adapt it at scripts/run.sh
)
All the workflows will be run in parallel.