├── .gitignore
├── README.md
├── perf-test-with-gatling
├── build.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── reports
│ └── gatling
│ │ ├── bootloadsimulation-1520240033559
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── all_sessions.js
│ │ │ ├── assertions.json
│ │ │ ├── assertions.xml
│ │ │ ├── bootstrap.min.js
│ │ │ ├── gatling.js
│ │ │ ├── global_stats.json
│ │ │ ├── highcharts-more.js
│ │ │ ├── highstock.js
│ │ │ ├── jquery.min.js
│ │ │ ├── menu.js
│ │ │ ├── moment.min.js
│ │ │ ├── stats.js
│ │ │ ├── stats.json
│ │ │ ├── theme.js
│ │ │ └── unpack.js
│ │ ├── req_add-person-test-ac713.html
│ │ ├── simulation.log
│ │ └── style
│ │ │ ├── arrow_down.png
│ │ │ ├── arrow_down_black.png
│ │ │ ├── arrow_right.png
│ │ │ ├── arrow_right_black.png
│ │ │ ├── bootstrap.min.css
│ │ │ ├── cible.png
│ │ │ ├── favicon.ico
│ │ │ ├── fond-degrade.gif
│ │ │ ├── fond-lueur.gif
│ │ │ ├── little_arrow_right.png
│ │ │ ├── logo-gatling.jpg
│ │ │ ├── logo.png
│ │ │ ├── sortable.png
│ │ │ ├── sorted-down.png
│ │ │ ├── sorted-up.png
│ │ │ ├── stat-fleche-bas.png
│ │ │ ├── stat-fond.png
│ │ │ ├── stat-l-roue.png
│ │ │ ├── stat-l-temps.png
│ │ │ └── style.css
│ │ ├── bootloadsimulation-1520240493472
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── all_sessions.js
│ │ │ ├── assertions.json
│ │ │ ├── assertions.xml
│ │ │ ├── bootstrap.min.js
│ │ │ ├── gatling.js
│ │ │ ├── global_stats.json
│ │ │ ├── highcharts-more.js
│ │ │ ├── highstock.js
│ │ │ ├── jquery.min.js
│ │ │ ├── menu.js
│ │ │ ├── moment.min.js
│ │ │ ├── stats.js
│ │ │ ├── stats.json
│ │ │ ├── theme.js
│ │ │ └── unpack.js
│ │ ├── req_add-person-test-ac713.html
│ │ ├── simulation.log
│ │ └── style
│ │ │ ├── arrow_down.png
│ │ │ ├── arrow_down_black.png
│ │ │ ├── arrow_right.png
│ │ │ ├── arrow_right_black.png
│ │ │ ├── bootstrap.min.css
│ │ │ ├── cible.png
│ │ │ ├── favicon.ico
│ │ │ ├── fond-degrade.gif
│ │ │ ├── fond-lueur.gif
│ │ │ ├── little_arrow_right.png
│ │ │ ├── logo-gatling.jpg
│ │ │ ├── logo.png
│ │ │ ├── sortable.png
│ │ │ ├── sorted-down.png
│ │ │ ├── sorted-up.png
│ │ │ ├── stat-fleche-bas.png
│ │ │ ├── stat-fond.png
│ │ │ ├── stat-l-roue.png
│ │ │ ├── stat-l-temps.png
│ │ │ └── style.css
│ │ ├── bootloadsimulation-1520241352996
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── all_sessions.js
│ │ │ ├── assertions.json
│ │ │ ├── assertions.xml
│ │ │ ├── bootstrap.min.js
│ │ │ ├── gatling.js
│ │ │ ├── global_stats.json
│ │ │ ├── highcharts-more.js
│ │ │ ├── highstock.js
│ │ │ ├── jquery.min.js
│ │ │ ├── menu.js
│ │ │ ├── moment.min.js
│ │ │ ├── stats.js
│ │ │ ├── stats.json
│ │ │ ├── theme.js
│ │ │ └── unpack.js
│ │ ├── req_add-person-test-ac713.html
│ │ ├── simulation.log
│ │ └── style
│ │ │ ├── arrow_down.png
│ │ │ ├── arrow_down_black.png
│ │ │ ├── arrow_right.png
│ │ │ ├── arrow_right_black.png
│ │ │ ├── bootstrap.min.css
│ │ │ ├── cible.png
│ │ │ ├── favicon.ico
│ │ │ ├── fond-degrade.gif
│ │ │ ├── fond-lueur.gif
│ │ │ ├── little_arrow_right.png
│ │ │ ├── logo-gatling.jpg
│ │ │ ├── logo.png
│ │ │ ├── sortable.png
│ │ │ ├── sorted-down.png
│ │ │ ├── sorted-up.png
│ │ │ ├── stat-fleche-bas.png
│ │ │ ├── stat-fond.png
│ │ │ ├── stat-l-roue.png
│ │ │ ├── stat-l-temps.png
│ │ │ └── style.css
│ │ ├── bootloadsimulation-1520241881803
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── all_sessions.js
│ │ │ ├── assertions.json
│ │ │ ├── assertions.xml
│ │ │ ├── bootstrap.min.js
│ │ │ ├── gatling.js
│ │ │ ├── global_stats.json
│ │ │ ├── highcharts-more.js
│ │ │ ├── highstock.js
│ │ │ ├── jquery.min.js
│ │ │ ├── menu.js
│ │ │ ├── moment.min.js
│ │ │ ├── stats.js
│ │ │ ├── stats.json
│ │ │ ├── theme.js
│ │ │ └── unpack.js
│ │ ├── req_add-person-test-ac713.html
│ │ ├── simulation.log
│ │ └── style
│ │ │ ├── arrow_down.png
│ │ │ ├── arrow_down_black.png
│ │ │ ├── arrow_right.png
│ │ │ ├── arrow_right_black.png
│ │ │ ├── bootstrap.min.css
│ │ │ ├── cible.png
│ │ │ ├── favicon.ico
│ │ │ ├── fond-degrade.gif
│ │ │ ├── fond-lueur.gif
│ │ │ ├── little_arrow_right.png
│ │ │ ├── logo-gatling.jpg
│ │ │ ├── logo.png
│ │ │ ├── sortable.png
│ │ │ ├── sorted-down.png
│ │ │ ├── sorted-up.png
│ │ │ ├── stat-fleche-bas.png
│ │ │ ├── stat-fond.png
│ │ │ ├── stat-l-roue.png
│ │ │ ├── stat-l-temps.png
│ │ │ └── style.css
│ │ ├── bootloadsimulation-1520242082281
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── all_sessions.js
│ │ │ ├── assertions.json
│ │ │ ├── assertions.xml
│ │ │ ├── bootstrap.min.js
│ │ │ ├── gatling.js
│ │ │ ├── global_stats.json
│ │ │ ├── highcharts-more.js
│ │ │ ├── highstock.js
│ │ │ ├── jquery.min.js
│ │ │ ├── menu.js
│ │ │ ├── moment.min.js
│ │ │ ├── stats.js
│ │ │ ├── stats.json
│ │ │ ├── theme.js
│ │ │ └── unpack.js
│ │ ├── req_add-person-test-ac713.html
│ │ ├── simulation.log
│ │ └── style
│ │ │ ├── arrow_down.png
│ │ │ ├── arrow_down_black.png
│ │ │ ├── arrow_right.png
│ │ │ ├── arrow_right_black.png
│ │ │ ├── bootstrap.min.css
│ │ │ ├── cible.png
│ │ │ ├── favicon.ico
│ │ │ ├── fond-degrade.gif
│ │ │ ├── fond-lueur.gif
│ │ │ ├── little_arrow_right.png
│ │ │ ├── logo-gatling.jpg
│ │ │ ├── logo.png
│ │ │ ├── sortable.png
│ │ │ ├── sorted-down.png
│ │ │ ├── sorted-up.png
│ │ │ ├── stat-fleche-bas.png
│ │ │ ├── stat-fond.png
│ │ │ ├── stat-l-roue.png
│ │ │ ├── stat-l-temps.png
│ │ │ └── style.css
│ │ └── bootloadsimulation-1520242453415
│ │ ├── index.html
│ │ ├── js
│ │ ├── all_sessions.js
│ │ ├── assertions.json
│ │ ├── assertions.xml
│ │ ├── bootstrap.min.js
│ │ ├── gatling.js
│ │ ├── global_stats.json
│ │ ├── highcharts-more.js
│ │ ├── highstock.js
│ │ ├── jquery.min.js
│ │ ├── menu.js
│ │ ├── moment.min.js
│ │ ├── stats.js
│ │ ├── stats.json
│ │ ├── theme.js
│ │ └── unpack.js
│ │ ├── req_add-person-test-ac713.html
│ │ ├── simulation.log
│ │ └── style
│ │ ├── arrow_down.png
│ │ ├── arrow_down_black.png
│ │ ├── arrow_right.png
│ │ ├── arrow_right_black.png
│ │ ├── bootstrap.min.css
│ │ ├── cible.png
│ │ ├── favicon.ico
│ │ ├── fond-degrade.gif
│ │ ├── fond-lueur.gif
│ │ ├── little_arrow_right.png
│ │ ├── logo-gatling.jpg
│ │ ├── logo.png
│ │ ├── sortable.png
│ │ ├── sorted-down.png
│ │ ├── sorted-up.png
│ │ ├── stat-fleche-bas.png
│ │ ├── stat-fond.png
│ │ ├── stat-l-roue.png
│ │ ├── stat-l-temps.png
│ │ └── style.css
├── settings.gradle
└── src
│ └── test
│ └── scala
│ └── BootLoadSimulation.scala
├── person-registration-slow-service
├── .gitignore
├── .mvn
│ └── wrapper
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
│ ├── main
│ ├── kotlin
│ │ └── com
│ │ │ └── xyzz
│ │ │ └── gsdd
│ │ │ └── personregistrationslowservice
│ │ │ ├── PersonRegistrationSlowServiceApplication.kt
│ │ │ ├── controllers
│ │ │ └── RegistrationController.kt
│ │ │ └── models
│ │ │ └── Person.kt
│ └── resources
│ │ └── application.properties
│ └── test
│ └── kotlin
│ └── com
│ └── xyzz
│ └── gsdd
│ └── personregistrationslowservice
│ ├── PersonRegistrationSlowServiceApplicationTests.kt
│ └── controllers
│ └── RegistrationControllerTest.kt
├── sample-reactive-spring-boot-2
├── .gitignore
├── .mvn
│ └── wrapper
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
│ ├── main
│ ├── kotlin
│ │ └── com
│ │ │ └── xyzz
│ │ │ └── gsdd
│ │ │ └── samplereactivespringboot2
│ │ │ ├── SampleReactiveSpringBoot2Application.kt
│ │ │ ├── controllers
│ │ │ └── PersonController.kt
│ │ │ ├── models
│ │ │ └── Person.kt
│ │ │ └── services
│ │ │ └── PersonRegistrationService.kt
│ └── resources
│ │ └── application.properties
│ └── test
│ └── kotlin
│ └── com
│ └── xyzz
│ └── gsdd
│ └── samplereactivespringboot2
│ ├── SampleReactiveSpringBoot2ApplicationTests.kt
│ ├── controllers
│ └── PersonControllerTest.kt
│ └── services
│ └── PersonRegistrationServiceTest.kt
├── sample-spring-boot-1
├── .gitignore
├── .mvn
│ └── wrapper
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
│ ├── main
│ ├── kotlin
│ │ └── com
│ │ │ └── xyzz
│ │ │ └── gsdd
│ │ │ └── samplespringboot1
│ │ │ ├── SampleSpringBoot1Application.kt
│ │ │ ├── controllers
│ │ │ └── PersonController.kt
│ │ │ ├── models
│ │ │ └── Person.kt
│ │ │ └── services
│ │ │ └── PersonRegistrationService.kt
│ └── resources
│ │ └── application.properties
│ └── test
│ └── kotlin
│ └── com
│ └── xyzz
│ └── gsdd
│ └── samplespringboot1
│ ├── SampleSpringBoot1ApplicationTests.kt
│ ├── controllers
│ └── PersonControllerTest.kt
│ └── services
│ └── PersonRegistrationServiceTest.kt
└── sample-spring-boot-2
├── .gitignore
├── .mvn
└── wrapper
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
├── main
├── kotlin
│ └── com
│ │ └── xyzz
│ │ └── gsdd
│ │ └── samplespringboot2
│ │ ├── SampleSpringBoot2Application.kt
│ │ ├── controllers
│ │ └── PersonController.kt
│ │ ├── models
│ │ └── Person.kt
│ │ └── services
│ │ └── PersonRegistrationService.kt
└── resources
│ └── application.properties
└── test
└── kotlin
└── com
└── xyzz
└── gsdd
└── samplespringboot2
├── SampleSpringBoot2ApplicationTests.kt
├── controllers
└── PersonControllerTest.kt
└── services
└── PersonRegistrationServiceTest.kt
/.gitignore:
--------------------------------------------------------------------------------
1 | build
2 | out
3 | .gradle
4 |
5 | ### IntelliJ IDEA ###
6 | .idea
7 | *.iws
8 | *.iml
9 | *.ipr
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # spring-boot-1-vs-2-performance
2 |
3 | The aim of the project is to analyze the performance of spring-boot web against the spring-boot web-reactive framework. We are comparing:
4 | * Spring-boot web - 1.5.10.RELEASE
5 | * spring-boot web - 2.0.0.RELEASE
6 | * spring-boot reactive-web - 2.0.0.RELEASE
7 |
8 | For testing, we have a rest endpoint `POST /persons` that accepts a json `Person` object and returns an object with UUID.
9 | **[Gatlin](https://gatling.io/)** is used to run the tests and generate report.
10 |
11 | ### Start the app with
12 | ```
13 | mvn spring-boot:run
14 | ```
15 |
16 | ### Start the backing service
17 |
18 | To run the benchmark, you'll need the backing service at the beginning.
19 |
20 | ```bash
21 | cd person-registration-slow-service
22 | mvn spring-boot:run
23 | ```
24 |
25 | ### Run tests with
26 | ```
27 | ./gradlew loadTest -D SIM_USERS=5000
28 | ```
29 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'scala'
2 |
3 | repositories {
4 | mavenCentral()
5 | }
6 |
7 | group 'com.xyzz.gsdd'
8 | version '1.0-SNAPSHOT'
9 | dependencies {
10 | compile 'org.scala-lang:scala-library:2.12.4'
11 | compile 'io.gatling:gatling-app:2.3.0'
12 | compile 'io.gatling.highcharts:gatling-charts-highcharts:2.3.0'
13 | }
14 |
15 | task loadTest(type: JavaExec) {
16 | description = 'Run gatling tests'
17 | new File("${buildDir}/reports/gatling").mkdirs()
18 |
19 | systemProperties System.getProperties()
20 |
21 | classpath = sourceSets.test.runtimeClasspath + configurations.testCompile + configurations.compile
22 |
23 | main = "io.gatling.app.Gatling"
24 | args = ['-s', 'BootLoadSimulation', // -- simulation
25 | '-rf', "${buildDir}/reports/gatling" //-- results-folder
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/perf-test-with-gatling/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Mar 01 11:33:47 CET 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
7 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS=
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/js/all_sessions.js:
--------------------------------------------------------------------------------
1 | allUsersData = {
2 |
3 | color: '#FF9D00',
4 | name: 'All Users',
5 | data: [
6 | [1520240034000,141],[1520240035000,243],[1520240036000,285],[1520240037000,241],[1520240038000,254],[1520240039000,250],[1520240040000,264],[1520240041000,332],[1520240042000,275],[1520240043000,275],[1520240044000,292],[1520240045000,268],[1520240046000,286],[1520240047000,288],[1520240048000,318],[1520240049000,345],[1520240050000,327],[1520240051000,380],[1520240052000,378],[1520240053000,270],[1520240054000,110]
7 | ],
8 | tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
9 | , zIndex: 20
10 | , yAxis: 1
11 | };
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/js/assertions.json:
--------------------------------------------------------------------------------
1 | {
2 | "simulation": "BootLoadSimulation",
3 | "simulationId": "bootloadsimulation",
4 | "start": 1520240033559,
5 | "description": "",
6 | "scenarios": ["BootLoadSimulation"],
7 | "assertions": [
8 |
9 | ]
10 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/js/assertions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/js/gatling.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011-2014 eBusiness Information, Groupe Excilys (www.ebusinessinformation.fr)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | (function ($) {
17 | $.fn.expandable = function () {
18 | var scope = this;
19 |
20 | this.find('.expand-button:not([class*=hidden])').addClass('collapse').click(function () {
21 | var $this = $(this);
22 |
23 | if ($this.hasClass('expand'))
24 | $this.expand(scope);
25 | else
26 | $this.collapse(scope);
27 | });
28 |
29 | this.find('.expand-all-button').click(function () {
30 | $(this).expandAll(scope);
31 | });
32 |
33 | this.find('.collapse-all-button').click(function () {
34 | $(this).collapseAll(scope);
35 | });
36 |
37 | this.collapseAll(this);
38 |
39 | return this;
40 | };
41 |
42 | $.fn.expand = function (scope, recursive) {
43 | return this.each(function () {
44 | var $this = $(this);
45 |
46 | if (recursive) {
47 | scope.find('.child-of-' + $this.attr('id') + ' .expand-button.expand').expand(scope, true);
48 | scope.find('.child-of-' + $this.attr('id') + ' .expand-button.collapse').expand(scope, true);
49 | }
50 |
51 | if ($this.hasClass('expand')) {
52 | scope.find('.child-of-' + $this.attr('id')).toggle(true);
53 | $this.toggleClass('expand').toggleClass('collapse');
54 | }
55 | });
56 | };
57 |
58 | $.fn.expandAll = function (scope) {
59 | $('.child-of-ROOT .expand-button.expand').expand(scope, true);
60 | $('.child-of-ROOT .expand-button.collapse').expand(scope, true);
61 | };
62 |
63 | $.fn.collapse = function (scope) {
64 | return this.each(function () {
65 | var $this = $(this);
66 |
67 | scope.find('.child-of-' + $this.attr('id') + ' .expand-button.collapse').collapse(scope);
68 | scope.find('.child-of-' + $this.attr('id')).toggle(false);
69 | $this.toggleClass('expand').toggleClass('collapse');
70 | });
71 | };
72 |
73 | $.fn.collapseAll = function (scope) {
74 | $('.child-of-ROOT .expand-button.collapse').collapse(scope);
75 | };
76 |
77 | $.fn.sortable = function (target) {
78 | var table = this;
79 |
80 | this.find('thead .sortable').click( function () {
81 | var $this = $(this);
82 |
83 | if ($this.hasClass('sorted-down')) {
84 | var desc = false;
85 | var style = 'sorted-up';
86 | }
87 | else {
88 | var desc = true;
89 | var style = 'sorted-down';
90 | }
91 |
92 | $(target).sortTable($this.attr('id'), desc);
93 |
94 | table.find('thead .sortable').removeClass('sorted-up sorted-down');
95 | $this.addClass(style);
96 |
97 | return false;
98 | });
99 |
100 | return this;
101 | };
102 |
103 | $.fn.sortTable = function (col, desc) {
104 | function getValue(line) {
105 | var cell = $(line).find('.' + col);
106 |
107 | if (cell.hasClass('value'))
108 | var value = cell.text();
109 | else
110 | var value = cell.find('.value').text();
111 |
112 | return parseInt(value);
113 | }
114 |
115 | function sortLines (lines, group) {
116 | var notErrorTable = col.search("error") == -1;
117 | var linesToSort = notErrorTable ? lines.filter('.child-of-' + group) : lines;
118 |
119 | var sortedLines = linesToSort.sort(function (a, b) {
120 | return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b);
121 | }).toArray();
122 |
123 | var result = [];
124 | $.each(sortedLines, function (i, line) {
125 | result.push(line);
126 | if (notErrorTable)
127 | result = result.concat(sortLines(lines, $(line).attr('id')));
128 | });
129 |
130 | return result;
131 | }
132 |
133 | this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT'));
134 |
135 | return this;
136 | };
137 | })(jQuery);
138 |
139 |
140 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/js/global_stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Global Information",
3 | "numberOfRequests": {
4 | "total": 10000,
5 | "ok": 10000,
6 | "ko": 0
7 | },
8 | "minResponseTime": {
9 | "total": 202,
10 | "ok": 202,
11 | "ko": 0
12 | },
13 | "maxResponseTime": {
14 | "total": 1053,
15 | "ok": 1053,
16 | "ko": 0
17 | },
18 | "meanResponseTime": {
19 | "total": 331,
20 | "ok": 331,
21 | "ko": 0
22 | },
23 | "standardDeviation": {
24 | "total": 108,
25 | "ok": 108,
26 | "ko": 0
27 | },
28 | "percentiles1": {
29 | "total": 302,
30 | "ok": 302,
31 | "ko": 0
32 | },
33 | "percentiles2": {
34 | "total": 382,
35 | "ok": 382,
36 | "ko": 0
37 | },
38 | "percentiles3": {
39 | "total": 552,
40 | "ok": 552,
41 | "ko": 0
42 | },
43 | "percentiles4": {
44 | "total": 700,
45 | "ok": 700,
46 | "ko": 0
47 | },
48 | "group1": {
49 | "name": "t < 800 ms",
50 | "count": 9977,
51 | "percentage": 100
52 | },
53 | "group2": {
54 | "name": "800 ms < t < 1200 ms",
55 | "count": 23,
56 | "percentage": 0
57 | },
58 | "group3": {
59 | "name": "t > 1200 ms",
60 | "count": 0,
61 | "percentage": 0
62 | },
63 | "group4": {
64 | "name": "failed",
65 | "count": 0,
66 | "percentage": 0
67 | },
68 | "meanNumberOfRequestsPerSecond": {
69 | "total": 476.1904761904762,
70 | "ok": 476.1904761904762,
71 | "ko": 0
72 | }
73 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/js/menu.js:
--------------------------------------------------------------------------------
1 |
2 | function getItemLink(item){
3 | return item.pathFormatted + '.html';
4 | }
5 |
6 | function setDetailsLinkUrl(){
7 | $.each(stats.contents, function (name, data) {
8 | $('#details_link').attr('href', getItemLink(data));
9 | return false;
10 | });
11 | }
12 |
13 | var MENU_ITEM_MAX_LENGTH = 50;
14 |
15 | function menuItem(item, level, parent, group) {
16 | if (group)
17 | var style = 'group';
18 | else
19 | var style = '';
20 |
21 | if (item.name.length > MENU_ITEM_MAX_LENGTH) {
22 | var title = ' title="' + item.name + '"';
23 | var displayName = item.name.substr(0, MENU_ITEM_MAX_LENGTH) + '...';
24 | }
25 | else {
26 | var title = '';
27 | var displayName = item.name;
28 | }
29 |
30 | if (parent) {
31 | if (level == 0)
32 | var childOfRoot = 'child-of-ROOT ';
33 | else
34 | var childOfRoot = '';
35 |
36 | var style = ' class="' + childOfRoot + 'child-of-menu-' + parent + '"';
37 | } else
38 | var style = '';
39 |
40 | if (group)
41 | var expandButton = ' ';
42 | else
43 | var expandButton = ' ';
44 |
45 | return '
';
46 | }
47 |
48 | function menuItemsForGroup(group, level, parent) {
49 | var items = '';
50 |
51 | if (level > 0)
52 | items += menuItem(group, level - 1, parent, true);
53 |
54 | $.each(group.contents, function (contentName, content) {
55 | if (content.type == 'GROUP')
56 | items += menuItemsForGroup(content, level + 1, group.pathFormatted);
57 | else if (content.type == 'REQUEST')
58 | items += menuItem(content, level, group.pathFormatted);
59 | });
60 |
61 | return items;
62 | }
63 |
64 | function setDetailsMenu(){
65 | $('.nav ul').append(menuItemsForGroup(stats, 0));
66 |
67 | $('.nav').expandable();
68 | }
69 |
70 | function setGlobalMenu(){
71 | $('.nav ul').append(' \
72 | \
73 | ');
74 | }
75 |
76 | function getLink(link){
77 | var a = link.split('/');
78 | return (a.length<=1)? link : a[a.length-1];
79 | }
80 |
81 | function setActiveMenu(){
82 | $('.nav a').each(function(){
83 | if(!$(this).hasClass('expand-button') && $(this).attr('href') == getLink(window.location.pathname)){
84 | $(this).parents('li').addClass('on');
85 | return false;
86 | }
87 | });
88 | }
89 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/js/stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "GROUP",
3 | "name": "Global Information",
4 | "path": "",
5 | "pathFormatted": "group_missing-name-b06d1",
6 | "stats": {
7 | "name": "Global Information",
8 | "numberOfRequests": {
9 | "total": 10000,
10 | "ok": 10000,
11 | "ko": 0
12 | },
13 | "minResponseTime": {
14 | "total": 202,
15 | "ok": 202,
16 | "ko": 0
17 | },
18 | "maxResponseTime": {
19 | "total": 1053,
20 | "ok": 1053,
21 | "ko": 0
22 | },
23 | "meanResponseTime": {
24 | "total": 331,
25 | "ok": 331,
26 | "ko": 0
27 | },
28 | "standardDeviation": {
29 | "total": 108,
30 | "ok": 108,
31 | "ko": 0
32 | },
33 | "percentiles1": {
34 | "total": 302,
35 | "ok": 302,
36 | "ko": 0
37 | },
38 | "percentiles2": {
39 | "total": 382,
40 | "ok": 382,
41 | "ko": 0
42 | },
43 | "percentiles3": {
44 | "total": 552,
45 | "ok": 552,
46 | "ko": 0
47 | },
48 | "percentiles4": {
49 | "total": 700,
50 | "ok": 700,
51 | "ko": 0
52 | },
53 | "group1": {
54 | "name": "t < 800 ms",
55 | "count": 9977,
56 | "percentage": 100
57 | },
58 | "group2": {
59 | "name": "800 ms < t < 1200 ms",
60 | "count": 23,
61 | "percentage": 0
62 | },
63 | "group3": {
64 | "name": "t > 1200 ms",
65 | "count": 0,
66 | "percentage": 0
67 | },
68 | "group4": {
69 | "name": "failed",
70 | "count": 0,
71 | "percentage": 0
72 | },
73 | "meanNumberOfRequestsPerSecond": {
74 | "total": 476.1904761904762,
75 | "ok": 476.1904761904762,
76 | "ko": 0
77 | }
78 | },
79 | "contents": {
80 | "req_add-person-test-ac713": {
81 | "type": "REQUEST",
82 | "name": "add-person-test",
83 | "path": "add-person-test",
84 | "pathFormatted": "req_add-person-test-ac713",
85 | "stats": {
86 | "name": "add-person-test",
87 | "numberOfRequests": {
88 | "total": 10000,
89 | "ok": 10000,
90 | "ko": 0
91 | },
92 | "minResponseTime": {
93 | "total": 202,
94 | "ok": 202,
95 | "ko": 0
96 | },
97 | "maxResponseTime": {
98 | "total": 1053,
99 | "ok": 1053,
100 | "ko": 0
101 | },
102 | "meanResponseTime": {
103 | "total": 331,
104 | "ok": 331,
105 | "ko": 0
106 | },
107 | "standardDeviation": {
108 | "total": 108,
109 | "ok": 108,
110 | "ko": 0
111 | },
112 | "percentiles1": {
113 | "total": 302,
114 | "ok": 302,
115 | "ko": 0
116 | },
117 | "percentiles2": {
118 | "total": 382,
119 | "ok": 382,
120 | "ko": 0
121 | },
122 | "percentiles3": {
123 | "total": 552,
124 | "ok": 552,
125 | "ko": 0
126 | },
127 | "percentiles4": {
128 | "total": 700,
129 | "ok": 700,
130 | "ko": 0
131 | },
132 | "group1": {
133 | "name": "t < 800 ms",
134 | "count": 9977,
135 | "percentage": 100
136 | },
137 | "group2": {
138 | "name": "800 ms < t < 1200 ms",
139 | "count": 23,
140 | "percentage": 0
141 | },
142 | "group3": {
143 | "name": "t > 1200 ms",
144 | "count": 0,
145 | "percentage": 0
146 | },
147 | "group4": {
148 | "name": "failed",
149 | "count": 0,
150 | "percentage": 0
151 | },
152 | "meanNumberOfRequestsPerSecond": {
153 | "total": 476.1904761904762,
154 | "ok": 476.1904761904762,
155 | "ko": 0
156 | }
157 | }
158 | }
159 | }
160 |
161 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/js/theme.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011-2014 eBusiness Information, Groupe Excilys (www.ebusinessinformation.fr)
3 | *
4 | * Licensed under the Gatling Highcharts License
5 | */
6 | Highcharts.theme = {
7 | chart: {
8 | backgroundColor: '#e6e5e0',
9 | borderWidth: 0,
10 | borderRadius: 8,
11 | plotBackgroundColor: null,
12 | plotShadow: false,
13 | plotBorderWidth: 0
14 | },
15 | xAxis: {
16 | gridLineWidth: 0,
17 | lineColor: '#666',
18 | tickColor: '#666',
19 | labels: {
20 | style: {
21 | color: '#666'
22 | }
23 | },
24 | title: {
25 | style: {
26 | color: '#666'
27 | }
28 | }
29 | },
30 | yAxis: {
31 | alternateGridColor: null,
32 | minorTickInterval: null,
33 | gridLineColor: '#999',
34 | lineWidth: 0,
35 | tickWidth: 0,
36 | labels: {
37 | style: {
38 | color: '#666',
39 | fontWeight: 'bold'
40 | }
41 | },
42 | title: {
43 | style: {
44 | color: '#666',
45 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
46 | }
47 | }
48 | },
49 | labels: {
50 | style: {
51 | color: '#CCC'
52 | }
53 | },
54 |
55 |
56 | rangeSelector: {
57 | buttonTheme: {
58 | fill: '#cfc9c6',
59 | stroke: '#000000',
60 | style: {
61 | color: '#34332e',
62 | fontWeight: 'bold',
63 | borderColor: '#b2b2a9'
64 | },
65 | states: {
66 | hover: {
67 | fill: '#92918C',
68 | stroke: '#000000',
69 | style: {
70 | color: '#34332e',
71 | fontWeight: 'bold',
72 | borderColor: '#8b897d'
73 | }
74 | },
75 | select: {
76 | fill: '#E37400',
77 | stroke: '#000000',
78 | style: {
79 | color: '#FFF'
80 | }
81 | }
82 | }
83 | },
84 | inputStyle: {
85 | backgroundColor: '#333',
86 | color: 'silver'
87 | },
88 | labelStyle: {
89 | color: '#8b897d'
90 | }
91 | },
92 |
93 | navigator: {
94 | handles: {
95 | backgroundColor: '#e6e5e0',
96 | borderColor: '#92918C'
97 | },
98 | outlineColor: '#92918C',
99 | outlineWidth: 1,
100 | maskFill: 'rgba(146, 145, 140, 0.5)',
101 | series: {
102 | color: '#4572A7',
103 | lineColor: '#4572A7'
104 | }
105 | },
106 |
107 | scrollbar: {
108 | buttonBackgroundColor: '#e6e5e0',
109 | buttonBorderWidth: 1,
110 | buttonBorderColor: '#92918C',
111 | buttonArrowColor: '#92918C',
112 | buttonBorderRadius: 2,
113 |
114 | barBorderWidth: 1,
115 | barBorderRadius: 0,
116 | barBackgroundColor: '#92918C',
117 | barBorderColor: '#92918C',
118 |
119 | rifleColor: '#92918C',
120 |
121 | trackBackgroundColor: '#b0b0a8',
122 | trackBorderWidth: 1,
123 | trackBorderColor: '#b0b0a8'
124 | }
125 | };
126 |
127 | Highcharts.setOptions(Highcharts.theme);
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/js/unpack.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var unpack = function (array) {
4 | var findNbSeries = function (array) {
5 | var currentPlotPack;
6 | var length = array.length;
7 |
8 | for (var i = 0; i < length; i++) {
9 | currentPlotPack = array[i][1];
10 | if(currentPlotPack !== null) {
11 | return currentPlotPack.length;
12 | }
13 | }
14 | return 0;
15 | };
16 |
17 | var i, j;
18 | var nbPlots = array.length;
19 | var nbSeries = findNbSeries(array);
20 |
21 | // Prepare unpacked array
22 | var unpackedArray = new Array(nbSeries);
23 |
24 | for (i = 0; i < nbSeries; i++) {
25 | unpackedArray[i] = new Array(nbPlots);
26 | }
27 |
28 | // Unpack the array
29 | for (i = 0; i < nbPlots; i++) {
30 | var timestamp = array[i][0];
31 | var values = array[i][1];
32 | for (j = 0; j < nbSeries; j++) {
33 | unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]];
34 | }
35 | }
36 |
37 | return unpackedArray;
38 | };
39 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/arrow_down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/arrow_down_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/arrow_down_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/arrow_right_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/arrow_right_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/bootstrap.min.css:
--------------------------------------------------------------------------------
1 | .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
2 | .clearfix:after{clear:both;}
3 | .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
4 | .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
5 | .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
6 | .tooltip.top{margin-top:-3px;}
7 | .tooltip.right{margin-left:3px;}
8 | .tooltip.bottom{margin-top:3px;}
9 | .tooltip.left{margin-left:-3px;}
10 | .tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
11 | .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
12 | .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
13 | .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
14 | .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
15 | .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
16 | .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;}
17 | .popover.right{margin-left:10px;}
18 | .popover.bottom{margin-top:10px;}
19 | .popover.left{margin-left:-10px;}
20 | .popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
21 | .popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;}
22 | .popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;}
23 | .popover .arrow:after{content:"";z-index:-1;}
24 | .popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;}
25 | .popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;}
26 | .popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;}
27 | .popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;}
28 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/cible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/cible.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/favicon.ico
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/fond-degrade.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/fond-degrade.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/fond-lueur.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/fond-lueur.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/little_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/little_arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/logo-gatling.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/logo-gatling.jpg
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/logo.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/sortable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/sortable.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/sorted-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/sorted-down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/sorted-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/sorted-up.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/stat-fleche-bas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/stat-fleche-bas.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/stat-fond.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/stat-fond.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/stat-l-roue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/stat-l-roue.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/stat-l-temps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240033559/style/stat-l-temps.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/js/all_sessions.js:
--------------------------------------------------------------------------------
1 | allUsersData = {
2 |
3 | color: '#FF9D00',
4 | name: 'All Users',
5 | data: [
6 | [1520240494000,262],[1520240495000,426],[1520240496000,412],[1520240497000,329],[1520240498000,379],[1520240499000,445],[1520240500000,404],[1520240501000,399],[1520240502000,448],[1520240503000,444],[1520240504000,484],[1520240505000,551],[1520240506000,378],[1520240507000,37]
7 | ],
8 | tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
9 | , zIndex: 20
10 | , yAxis: 1
11 | };
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/js/assertions.json:
--------------------------------------------------------------------------------
1 | {
2 | "simulation": "BootLoadSimulation",
3 | "simulationId": "bootloadsimulation",
4 | "start": 1520240493472,
5 | "description": "",
6 | "scenarios": ["BootLoadSimulation"],
7 | "assertions": [
8 |
9 | ]
10 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/js/assertions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/js/gatling.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011-2014 eBusiness Information, Groupe Excilys (www.ebusinessinformation.fr)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | (function ($) {
17 | $.fn.expandable = function () {
18 | var scope = this;
19 |
20 | this.find('.expand-button:not([class*=hidden])').addClass('collapse').click(function () {
21 | var $this = $(this);
22 |
23 | if ($this.hasClass('expand'))
24 | $this.expand(scope);
25 | else
26 | $this.collapse(scope);
27 | });
28 |
29 | this.find('.expand-all-button').click(function () {
30 | $(this).expandAll(scope);
31 | });
32 |
33 | this.find('.collapse-all-button').click(function () {
34 | $(this).collapseAll(scope);
35 | });
36 |
37 | this.collapseAll(this);
38 |
39 | return this;
40 | };
41 |
42 | $.fn.expand = function (scope, recursive) {
43 | return this.each(function () {
44 | var $this = $(this);
45 |
46 | if (recursive) {
47 | scope.find('.child-of-' + $this.attr('id') + ' .expand-button.expand').expand(scope, true);
48 | scope.find('.child-of-' + $this.attr('id') + ' .expand-button.collapse').expand(scope, true);
49 | }
50 |
51 | if ($this.hasClass('expand')) {
52 | scope.find('.child-of-' + $this.attr('id')).toggle(true);
53 | $this.toggleClass('expand').toggleClass('collapse');
54 | }
55 | });
56 | };
57 |
58 | $.fn.expandAll = function (scope) {
59 | $('.child-of-ROOT .expand-button.expand').expand(scope, true);
60 | $('.child-of-ROOT .expand-button.collapse').expand(scope, true);
61 | };
62 |
63 | $.fn.collapse = function (scope) {
64 | return this.each(function () {
65 | var $this = $(this);
66 |
67 | scope.find('.child-of-' + $this.attr('id') + ' .expand-button.collapse').collapse(scope);
68 | scope.find('.child-of-' + $this.attr('id')).toggle(false);
69 | $this.toggleClass('expand').toggleClass('collapse');
70 | });
71 | };
72 |
73 | $.fn.collapseAll = function (scope) {
74 | $('.child-of-ROOT .expand-button.collapse').collapse(scope);
75 | };
76 |
77 | $.fn.sortable = function (target) {
78 | var table = this;
79 |
80 | this.find('thead .sortable').click( function () {
81 | var $this = $(this);
82 |
83 | if ($this.hasClass('sorted-down')) {
84 | var desc = false;
85 | var style = 'sorted-up';
86 | }
87 | else {
88 | var desc = true;
89 | var style = 'sorted-down';
90 | }
91 |
92 | $(target).sortTable($this.attr('id'), desc);
93 |
94 | table.find('thead .sortable').removeClass('sorted-up sorted-down');
95 | $this.addClass(style);
96 |
97 | return false;
98 | });
99 |
100 | return this;
101 | };
102 |
103 | $.fn.sortTable = function (col, desc) {
104 | function getValue(line) {
105 | var cell = $(line).find('.' + col);
106 |
107 | if (cell.hasClass('value'))
108 | var value = cell.text();
109 | else
110 | var value = cell.find('.value').text();
111 |
112 | return parseInt(value);
113 | }
114 |
115 | function sortLines (lines, group) {
116 | var notErrorTable = col.search("error") == -1;
117 | var linesToSort = notErrorTable ? lines.filter('.child-of-' + group) : lines;
118 |
119 | var sortedLines = linesToSort.sort(function (a, b) {
120 | return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b);
121 | }).toArray();
122 |
123 | var result = [];
124 | $.each(sortedLines, function (i, line) {
125 | result.push(line);
126 | if (notErrorTable)
127 | result = result.concat(sortLines(lines, $(line).attr('id')));
128 | });
129 |
130 | return result;
131 | }
132 |
133 | this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT'));
134 |
135 | return this;
136 | };
137 | })(jQuery);
138 |
139 |
140 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/js/global_stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Global Information",
3 | "numberOfRequests": {
4 | "total": 10000,
5 | "ok": 10000,
6 | "ko": 0
7 | },
8 | "minResponseTime": {
9 | "total": 201,
10 | "ok": 201,
11 | "ko": 0
12 | },
13 | "maxResponseTime": {
14 | "total": 859,
15 | "ok": 859,
16 | "ko": 0
17 | },
18 | "meanResponseTime": {
19 | "total": 301,
20 | "ok": 301,
21 | "ko": 0
22 | },
23 | "standardDeviation": {
24 | "total": 96,
25 | "ok": 96,
26 | "ko": 0
27 | },
28 | "percentiles1": {
29 | "total": 273,
30 | "ok": 273,
31 | "ko": 0
32 | },
33 | "percentiles2": {
34 | "total": 337,
35 | "ok": 337,
36 | "ko": 0
37 | },
38 | "percentiles3": {
39 | "total": 495,
40 | "ok": 495,
41 | "ko": 0
42 | },
43 | "percentiles4": {
44 | "total": 650,
45 | "ok": 650,
46 | "ko": 0
47 | },
48 | "group1": {
49 | "name": "t < 800 ms",
50 | "count": 9992,
51 | "percentage": 100
52 | },
53 | "group2": {
54 | "name": "800 ms < t < 1200 ms",
55 | "count": 8,
56 | "percentage": 0
57 | },
58 | "group3": {
59 | "name": "t > 1200 ms",
60 | "count": 0,
61 | "percentage": 0
62 | },
63 | "group4": {
64 | "name": "failed",
65 | "count": 0,
66 | "percentage": 0
67 | },
68 | "meanNumberOfRequestsPerSecond": {
69 | "total": 714.2857142857143,
70 | "ok": 714.2857142857143,
71 | "ko": 0
72 | }
73 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/js/menu.js:
--------------------------------------------------------------------------------
1 |
2 | function getItemLink(item){
3 | return item.pathFormatted + '.html';
4 | }
5 |
6 | function setDetailsLinkUrl(){
7 | $.each(stats.contents, function (name, data) {
8 | $('#details_link').attr('href', getItemLink(data));
9 | return false;
10 | });
11 | }
12 |
13 | var MENU_ITEM_MAX_LENGTH = 50;
14 |
15 | function menuItem(item, level, parent, group) {
16 | if (group)
17 | var style = 'group';
18 | else
19 | var style = '';
20 |
21 | if (item.name.length > MENU_ITEM_MAX_LENGTH) {
22 | var title = ' title="' + item.name + '"';
23 | var displayName = item.name.substr(0, MENU_ITEM_MAX_LENGTH) + '...';
24 | }
25 | else {
26 | var title = '';
27 | var displayName = item.name;
28 | }
29 |
30 | if (parent) {
31 | if (level == 0)
32 | var childOfRoot = 'child-of-ROOT ';
33 | else
34 | var childOfRoot = '';
35 |
36 | var style = ' class="' + childOfRoot + 'child-of-menu-' + parent + '"';
37 | } else
38 | var style = '';
39 |
40 | if (group)
41 | var expandButton = ' ';
42 | else
43 | var expandButton = ' ';
44 |
45 | return '';
46 | }
47 |
48 | function menuItemsForGroup(group, level, parent) {
49 | var items = '';
50 |
51 | if (level > 0)
52 | items += menuItem(group, level - 1, parent, true);
53 |
54 | $.each(group.contents, function (contentName, content) {
55 | if (content.type == 'GROUP')
56 | items += menuItemsForGroup(content, level + 1, group.pathFormatted);
57 | else if (content.type == 'REQUEST')
58 | items += menuItem(content, level, group.pathFormatted);
59 | });
60 |
61 | return items;
62 | }
63 |
64 | function setDetailsMenu(){
65 | $('.nav ul').append(menuItemsForGroup(stats, 0));
66 |
67 | $('.nav').expandable();
68 | }
69 |
70 | function setGlobalMenu(){
71 | $('.nav ul').append(' \
72 | \
73 | ');
74 | }
75 |
76 | function getLink(link){
77 | var a = link.split('/');
78 | return (a.length<=1)? link : a[a.length-1];
79 | }
80 |
81 | function setActiveMenu(){
82 | $('.nav a').each(function(){
83 | if(!$(this).hasClass('expand-button') && $(this).attr('href') == getLink(window.location.pathname)){
84 | $(this).parents('li').addClass('on');
85 | return false;
86 | }
87 | });
88 | }
89 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/js/stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "GROUP",
3 | "name": "Global Information",
4 | "path": "",
5 | "pathFormatted": "group_missing-name-b06d1",
6 | "stats": {
7 | "name": "Global Information",
8 | "numberOfRequests": {
9 | "total": 10000,
10 | "ok": 10000,
11 | "ko": 0
12 | },
13 | "minResponseTime": {
14 | "total": 201,
15 | "ok": 201,
16 | "ko": 0
17 | },
18 | "maxResponseTime": {
19 | "total": 859,
20 | "ok": 859,
21 | "ko": 0
22 | },
23 | "meanResponseTime": {
24 | "total": 301,
25 | "ok": 301,
26 | "ko": 0
27 | },
28 | "standardDeviation": {
29 | "total": 96,
30 | "ok": 96,
31 | "ko": 0
32 | },
33 | "percentiles1": {
34 | "total": 273,
35 | "ok": 273,
36 | "ko": 0
37 | },
38 | "percentiles2": {
39 | "total": 337,
40 | "ok": 337,
41 | "ko": 0
42 | },
43 | "percentiles3": {
44 | "total": 495,
45 | "ok": 495,
46 | "ko": 0
47 | },
48 | "percentiles4": {
49 | "total": 650,
50 | "ok": 650,
51 | "ko": 0
52 | },
53 | "group1": {
54 | "name": "t < 800 ms",
55 | "count": 9992,
56 | "percentage": 100
57 | },
58 | "group2": {
59 | "name": "800 ms < t < 1200 ms",
60 | "count": 8,
61 | "percentage": 0
62 | },
63 | "group3": {
64 | "name": "t > 1200 ms",
65 | "count": 0,
66 | "percentage": 0
67 | },
68 | "group4": {
69 | "name": "failed",
70 | "count": 0,
71 | "percentage": 0
72 | },
73 | "meanNumberOfRequestsPerSecond": {
74 | "total": 714.2857142857143,
75 | "ok": 714.2857142857143,
76 | "ko": 0
77 | }
78 | },
79 | "contents": {
80 | "req_add-person-test-ac713": {
81 | "type": "REQUEST",
82 | "name": "add-person-test",
83 | "path": "add-person-test",
84 | "pathFormatted": "req_add-person-test-ac713",
85 | "stats": {
86 | "name": "add-person-test",
87 | "numberOfRequests": {
88 | "total": 10000,
89 | "ok": 10000,
90 | "ko": 0
91 | },
92 | "minResponseTime": {
93 | "total": 201,
94 | "ok": 201,
95 | "ko": 0
96 | },
97 | "maxResponseTime": {
98 | "total": 859,
99 | "ok": 859,
100 | "ko": 0
101 | },
102 | "meanResponseTime": {
103 | "total": 301,
104 | "ok": 301,
105 | "ko": 0
106 | },
107 | "standardDeviation": {
108 | "total": 96,
109 | "ok": 96,
110 | "ko": 0
111 | },
112 | "percentiles1": {
113 | "total": 272,
114 | "ok": 273,
115 | "ko": 0
116 | },
117 | "percentiles2": {
118 | "total": 337,
119 | "ok": 337,
120 | "ko": 0
121 | },
122 | "percentiles3": {
123 | "total": 495,
124 | "ok": 495,
125 | "ko": 0
126 | },
127 | "percentiles4": {
128 | "total": 650,
129 | "ok": 650,
130 | "ko": 0
131 | },
132 | "group1": {
133 | "name": "t < 800 ms",
134 | "count": 9992,
135 | "percentage": 100
136 | },
137 | "group2": {
138 | "name": "800 ms < t < 1200 ms",
139 | "count": 8,
140 | "percentage": 0
141 | },
142 | "group3": {
143 | "name": "t > 1200 ms",
144 | "count": 0,
145 | "percentage": 0
146 | },
147 | "group4": {
148 | "name": "failed",
149 | "count": 0,
150 | "percentage": 0
151 | },
152 | "meanNumberOfRequestsPerSecond": {
153 | "total": 714.2857142857143,
154 | "ok": 714.2857142857143,
155 | "ko": 0
156 | }
157 | }
158 | }
159 | }
160 |
161 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/js/theme.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011-2014 eBusiness Information, Groupe Excilys (www.ebusinessinformation.fr)
3 | *
4 | * Licensed under the Gatling Highcharts License
5 | */
6 | Highcharts.theme = {
7 | chart: {
8 | backgroundColor: '#e6e5e0',
9 | borderWidth: 0,
10 | borderRadius: 8,
11 | plotBackgroundColor: null,
12 | plotShadow: false,
13 | plotBorderWidth: 0
14 | },
15 | xAxis: {
16 | gridLineWidth: 0,
17 | lineColor: '#666',
18 | tickColor: '#666',
19 | labels: {
20 | style: {
21 | color: '#666'
22 | }
23 | },
24 | title: {
25 | style: {
26 | color: '#666'
27 | }
28 | }
29 | },
30 | yAxis: {
31 | alternateGridColor: null,
32 | minorTickInterval: null,
33 | gridLineColor: '#999',
34 | lineWidth: 0,
35 | tickWidth: 0,
36 | labels: {
37 | style: {
38 | color: '#666',
39 | fontWeight: 'bold'
40 | }
41 | },
42 | title: {
43 | style: {
44 | color: '#666',
45 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
46 | }
47 | }
48 | },
49 | labels: {
50 | style: {
51 | color: '#CCC'
52 | }
53 | },
54 |
55 |
56 | rangeSelector: {
57 | buttonTheme: {
58 | fill: '#cfc9c6',
59 | stroke: '#000000',
60 | style: {
61 | color: '#34332e',
62 | fontWeight: 'bold',
63 | borderColor: '#b2b2a9'
64 | },
65 | states: {
66 | hover: {
67 | fill: '#92918C',
68 | stroke: '#000000',
69 | style: {
70 | color: '#34332e',
71 | fontWeight: 'bold',
72 | borderColor: '#8b897d'
73 | }
74 | },
75 | select: {
76 | fill: '#E37400',
77 | stroke: '#000000',
78 | style: {
79 | color: '#FFF'
80 | }
81 | }
82 | }
83 | },
84 | inputStyle: {
85 | backgroundColor: '#333',
86 | color: 'silver'
87 | },
88 | labelStyle: {
89 | color: '#8b897d'
90 | }
91 | },
92 |
93 | navigator: {
94 | handles: {
95 | backgroundColor: '#e6e5e0',
96 | borderColor: '#92918C'
97 | },
98 | outlineColor: '#92918C',
99 | outlineWidth: 1,
100 | maskFill: 'rgba(146, 145, 140, 0.5)',
101 | series: {
102 | color: '#4572A7',
103 | lineColor: '#4572A7'
104 | }
105 | },
106 |
107 | scrollbar: {
108 | buttonBackgroundColor: '#e6e5e0',
109 | buttonBorderWidth: 1,
110 | buttonBorderColor: '#92918C',
111 | buttonArrowColor: '#92918C',
112 | buttonBorderRadius: 2,
113 |
114 | barBorderWidth: 1,
115 | barBorderRadius: 0,
116 | barBackgroundColor: '#92918C',
117 | barBorderColor: '#92918C',
118 |
119 | rifleColor: '#92918C',
120 |
121 | trackBackgroundColor: '#b0b0a8',
122 | trackBorderWidth: 1,
123 | trackBorderColor: '#b0b0a8'
124 | }
125 | };
126 |
127 | Highcharts.setOptions(Highcharts.theme);
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/js/unpack.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var unpack = function (array) {
4 | var findNbSeries = function (array) {
5 | var currentPlotPack;
6 | var length = array.length;
7 |
8 | for (var i = 0; i < length; i++) {
9 | currentPlotPack = array[i][1];
10 | if(currentPlotPack !== null) {
11 | return currentPlotPack.length;
12 | }
13 | }
14 | return 0;
15 | };
16 |
17 | var i, j;
18 | var nbPlots = array.length;
19 | var nbSeries = findNbSeries(array);
20 |
21 | // Prepare unpacked array
22 | var unpackedArray = new Array(nbSeries);
23 |
24 | for (i = 0; i < nbSeries; i++) {
25 | unpackedArray[i] = new Array(nbPlots);
26 | }
27 |
28 | // Unpack the array
29 | for (i = 0; i < nbPlots; i++) {
30 | var timestamp = array[i][0];
31 | var values = array[i][1];
32 | for (j = 0; j < nbSeries; j++) {
33 | unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]];
34 | }
35 | }
36 |
37 | return unpackedArray;
38 | };
39 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/arrow_down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/arrow_down_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/arrow_down_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/arrow_right_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/arrow_right_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/bootstrap.min.css:
--------------------------------------------------------------------------------
1 | .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
2 | .clearfix:after{clear:both;}
3 | .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
4 | .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
5 | .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
6 | .tooltip.top{margin-top:-3px;}
7 | .tooltip.right{margin-left:3px;}
8 | .tooltip.bottom{margin-top:3px;}
9 | .tooltip.left{margin-left:-3px;}
10 | .tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
11 | .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
12 | .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
13 | .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
14 | .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
15 | .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
16 | .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;}
17 | .popover.right{margin-left:10px;}
18 | .popover.bottom{margin-top:10px;}
19 | .popover.left{margin-left:-10px;}
20 | .popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
21 | .popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;}
22 | .popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;}
23 | .popover .arrow:after{content:"";z-index:-1;}
24 | .popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;}
25 | .popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;}
26 | .popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;}
27 | .popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;}
28 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/cible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/cible.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/favicon.ico
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/fond-degrade.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/fond-degrade.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/fond-lueur.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/fond-lueur.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/little_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/little_arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/logo-gatling.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/logo-gatling.jpg
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/logo.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/sortable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/sortable.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/sorted-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/sorted-down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/sorted-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/sorted-up.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/stat-fleche-bas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/stat-fleche-bas.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/stat-fond.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/stat-fond.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/stat-l-roue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/stat-l-roue.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/stat-l-temps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520240493472/style/stat-l-temps.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/js/all_sessions.js:
--------------------------------------------------------------------------------
1 | allUsersData = {
2 |
3 | color: '#FF9D00',
4 | name: 'All Users',
5 | data: [
6 | [1520241354000,314],[1520241355000,491],[1520241356000,435],[1520241357000,422],[1520241358000,372],[1520241359000,347],[1520241360000,416],[1520241361000,559],[1520241362000,507],[1520241363000,462],[1520241364000,458],[1520241365000,487],[1520241366000,509],[1520241367000,483],[1520241368000,502],[1520241369000,478],[1520241370000,430],[1520241371000,493],[1520241372000,576],[1520241373000,567],[1520241374000,608],[1520241375000,614],[1520241376000,339],[1520241377000,7]
7 | ],
8 | tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
9 | , zIndex: 20
10 | , yAxis: 1
11 | };
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/js/assertions.json:
--------------------------------------------------------------------------------
1 | {
2 | "simulation": "BootLoadSimulation",
3 | "simulationId": "bootloadsimulation",
4 | "start": 1520241352996,
5 | "description": "",
6 | "scenarios": ["BootLoadSimulation"],
7 | "assertions": [
8 |
9 | ]
10 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/js/assertions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/js/gatling.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011-2014 eBusiness Information, Groupe Excilys (www.ebusinessinformation.fr)
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | (function ($) {
17 | $.fn.expandable = function () {
18 | var scope = this;
19 |
20 | this.find('.expand-button:not([class*=hidden])').addClass('collapse').click(function () {
21 | var $this = $(this);
22 |
23 | if ($this.hasClass('expand'))
24 | $this.expand(scope);
25 | else
26 | $this.collapse(scope);
27 | });
28 |
29 | this.find('.expand-all-button').click(function () {
30 | $(this).expandAll(scope);
31 | });
32 |
33 | this.find('.collapse-all-button').click(function () {
34 | $(this).collapseAll(scope);
35 | });
36 |
37 | this.collapseAll(this);
38 |
39 | return this;
40 | };
41 |
42 | $.fn.expand = function (scope, recursive) {
43 | return this.each(function () {
44 | var $this = $(this);
45 |
46 | if (recursive) {
47 | scope.find('.child-of-' + $this.attr('id') + ' .expand-button.expand').expand(scope, true);
48 | scope.find('.child-of-' + $this.attr('id') + ' .expand-button.collapse').expand(scope, true);
49 | }
50 |
51 | if ($this.hasClass('expand')) {
52 | scope.find('.child-of-' + $this.attr('id')).toggle(true);
53 | $this.toggleClass('expand').toggleClass('collapse');
54 | }
55 | });
56 | };
57 |
58 | $.fn.expandAll = function (scope) {
59 | $('.child-of-ROOT .expand-button.expand').expand(scope, true);
60 | $('.child-of-ROOT .expand-button.collapse').expand(scope, true);
61 | };
62 |
63 | $.fn.collapse = function (scope) {
64 | return this.each(function () {
65 | var $this = $(this);
66 |
67 | scope.find('.child-of-' + $this.attr('id') + ' .expand-button.collapse').collapse(scope);
68 | scope.find('.child-of-' + $this.attr('id')).toggle(false);
69 | $this.toggleClass('expand').toggleClass('collapse');
70 | });
71 | };
72 |
73 | $.fn.collapseAll = function (scope) {
74 | $('.child-of-ROOT .expand-button.collapse').collapse(scope);
75 | };
76 |
77 | $.fn.sortable = function (target) {
78 | var table = this;
79 |
80 | this.find('thead .sortable').click( function () {
81 | var $this = $(this);
82 |
83 | if ($this.hasClass('sorted-down')) {
84 | var desc = false;
85 | var style = 'sorted-up';
86 | }
87 | else {
88 | var desc = true;
89 | var style = 'sorted-down';
90 | }
91 |
92 | $(target).sortTable($this.attr('id'), desc);
93 |
94 | table.find('thead .sortable').removeClass('sorted-up sorted-down');
95 | $this.addClass(style);
96 |
97 | return false;
98 | });
99 |
100 | return this;
101 | };
102 |
103 | $.fn.sortTable = function (col, desc) {
104 | function getValue(line) {
105 | var cell = $(line).find('.' + col);
106 |
107 | if (cell.hasClass('value'))
108 | var value = cell.text();
109 | else
110 | var value = cell.find('.value').text();
111 |
112 | return parseInt(value);
113 | }
114 |
115 | function sortLines (lines, group) {
116 | var notErrorTable = col.search("error") == -1;
117 | var linesToSort = notErrorTable ? lines.filter('.child-of-' + group) : lines;
118 |
119 | var sortedLines = linesToSort.sort(function (a, b) {
120 | return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b);
121 | }).toArray();
122 |
123 | var result = [];
124 | $.each(sortedLines, function (i, line) {
125 | result.push(line);
126 | if (notErrorTable)
127 | result = result.concat(sortLines(lines, $(line).attr('id')));
128 | });
129 |
130 | return result;
131 | }
132 |
133 | this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT'));
134 |
135 | return this;
136 | };
137 | })(jQuery);
138 |
139 |
140 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/js/global_stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Global Information",
3 | "numberOfRequests": {
4 | "total": 20000,
5 | "ok": 20000,
6 | "ko": 0
7 | },
8 | "minResponseTime": {
9 | "total": 201,
10 | "ok": 201,
11 | "ko": 0
12 | },
13 | "maxResponseTime": {
14 | "total": 1111,
15 | "ok": 1111,
16 | "ko": 0
17 | },
18 | "meanResponseTime": {
19 | "total": 291,
20 | "ok": 291,
21 | "ko": 0
22 | },
23 | "standardDeviation": {
24 | "total": 100,
25 | "ok": 100,
26 | "ko": 0
27 | },
28 | "percentiles1": {
29 | "total": 260,
30 | "ok": 260,
31 | "ko": 0
32 | },
33 | "percentiles2": {
34 | "total": 317,
35 | "ok": 317,
36 | "ko": 0
37 | },
38 | "percentiles3": {
39 | "total": 480,
40 | "ok": 480,
41 | "ko": 0
42 | },
43 | "percentiles4": {
44 | "total": 716,
45 | "ok": 716,
46 | "ko": 0
47 | },
48 | "group1": {
49 | "name": "t < 800 ms",
50 | "count": 19891,
51 | "percentage": 99
52 | },
53 | "group2": {
54 | "name": "800 ms < t < 1200 ms",
55 | "count": 109,
56 | "percentage": 1
57 | },
58 | "group3": {
59 | "name": "t > 1200 ms",
60 | "count": 0,
61 | "percentage": 0
62 | },
63 | "group4": {
64 | "name": "failed",
65 | "count": 0,
66 | "percentage": 0
67 | },
68 | "meanNumberOfRequestsPerSecond": {
69 | "total": 833.3333333333334,
70 | "ok": 833.3333333333334,
71 | "ko": 0
72 | }
73 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/js/menu.js:
--------------------------------------------------------------------------------
1 |
2 | function getItemLink(item){
3 | return item.pathFormatted + '.html';
4 | }
5 |
6 | function setDetailsLinkUrl(){
7 | $.each(stats.contents, function (name, data) {
8 | $('#details_link').attr('href', getItemLink(data));
9 | return false;
10 | });
11 | }
12 |
13 | var MENU_ITEM_MAX_LENGTH = 50;
14 |
15 | function menuItem(item, level, parent, group) {
16 | if (group)
17 | var style = 'group';
18 | else
19 | var style = '';
20 |
21 | if (item.name.length > MENU_ITEM_MAX_LENGTH) {
22 | var title = ' title="' + item.name + '"';
23 | var displayName = item.name.substr(0, MENU_ITEM_MAX_LENGTH) + '...';
24 | }
25 | else {
26 | var title = '';
27 | var displayName = item.name;
28 | }
29 |
30 | if (parent) {
31 | if (level == 0)
32 | var childOfRoot = 'child-of-ROOT ';
33 | else
34 | var childOfRoot = '';
35 |
36 | var style = ' class="' + childOfRoot + 'child-of-menu-' + parent + '"';
37 | } else
38 | var style = '';
39 |
40 | if (group)
41 | var expandButton = ' ';
42 | else
43 | var expandButton = ' ';
44 |
45 | return '';
46 | }
47 |
48 | function menuItemsForGroup(group, level, parent) {
49 | var items = '';
50 |
51 | if (level > 0)
52 | items += menuItem(group, level - 1, parent, true);
53 |
54 | $.each(group.contents, function (contentName, content) {
55 | if (content.type == 'GROUP')
56 | items += menuItemsForGroup(content, level + 1, group.pathFormatted);
57 | else if (content.type == 'REQUEST')
58 | items += menuItem(content, level, group.pathFormatted);
59 | });
60 |
61 | return items;
62 | }
63 |
64 | function setDetailsMenu(){
65 | $('.nav ul').append(menuItemsForGroup(stats, 0));
66 |
67 | $('.nav').expandable();
68 | }
69 |
70 | function setGlobalMenu(){
71 | $('.nav ul').append(' \
72 | \
73 | ');
74 | }
75 |
76 | function getLink(link){
77 | var a = link.split('/');
78 | return (a.length<=1)? link : a[a.length-1];
79 | }
80 |
81 | function setActiveMenu(){
82 | $('.nav a').each(function(){
83 | if(!$(this).hasClass('expand-button') && $(this).attr('href') == getLink(window.location.pathname)){
84 | $(this).parents('li').addClass('on');
85 | return false;
86 | }
87 | });
88 | }
89 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/js/stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "GROUP",
3 | "name": "Global Information",
4 | "path": "",
5 | "pathFormatted": "group_missing-name-b06d1",
6 | "stats": {
7 | "name": "Global Information",
8 | "numberOfRequests": {
9 | "total": 20000,
10 | "ok": 20000,
11 | "ko": 0
12 | },
13 | "minResponseTime": {
14 | "total": 201,
15 | "ok": 201,
16 | "ko": 0
17 | },
18 | "maxResponseTime": {
19 | "total": 1111,
20 | "ok": 1111,
21 | "ko": 0
22 | },
23 | "meanResponseTime": {
24 | "total": 291,
25 | "ok": 291,
26 | "ko": 0
27 | },
28 | "standardDeviation": {
29 | "total": 100,
30 | "ok": 100,
31 | "ko": 0
32 | },
33 | "percentiles1": {
34 | "total": 260,
35 | "ok": 260,
36 | "ko": 0
37 | },
38 | "percentiles2": {
39 | "total": 317,
40 | "ok": 317,
41 | "ko": 0
42 | },
43 | "percentiles3": {
44 | "total": 480,
45 | "ok": 480,
46 | "ko": 0
47 | },
48 | "percentiles4": {
49 | "total": 716,
50 | "ok": 716,
51 | "ko": 0
52 | },
53 | "group1": {
54 | "name": "t < 800 ms",
55 | "count": 19891,
56 | "percentage": 99
57 | },
58 | "group2": {
59 | "name": "800 ms < t < 1200 ms",
60 | "count": 109,
61 | "percentage": 1
62 | },
63 | "group3": {
64 | "name": "t > 1200 ms",
65 | "count": 0,
66 | "percentage": 0
67 | },
68 | "group4": {
69 | "name": "failed",
70 | "count": 0,
71 | "percentage": 0
72 | },
73 | "meanNumberOfRequestsPerSecond": {
74 | "total": 833.3333333333334,
75 | "ok": 833.3333333333334,
76 | "ko": 0
77 | }
78 | },
79 | "contents": {
80 | "req_add-person-test-ac713": {
81 | "type": "REQUEST",
82 | "name": "add-person-test",
83 | "path": "add-person-test",
84 | "pathFormatted": "req_add-person-test-ac713",
85 | "stats": {
86 | "name": "add-person-test",
87 | "numberOfRequests": {
88 | "total": 20000,
89 | "ok": 20000,
90 | "ko": 0
91 | },
92 | "minResponseTime": {
93 | "total": 201,
94 | "ok": 201,
95 | "ko": 0
96 | },
97 | "maxResponseTime": {
98 | "total": 1111,
99 | "ok": 1111,
100 | "ko": 0
101 | },
102 | "meanResponseTime": {
103 | "total": 291,
104 | "ok": 291,
105 | "ko": 0
106 | },
107 | "standardDeviation": {
108 | "total": 100,
109 | "ok": 100,
110 | "ko": 0
111 | },
112 | "percentiles1": {
113 | "total": 260,
114 | "ok": 260,
115 | "ko": 0
116 | },
117 | "percentiles2": {
118 | "total": 317,
119 | "ok": 317,
120 | "ko": 0
121 | },
122 | "percentiles3": {
123 | "total": 480,
124 | "ok": 480,
125 | "ko": 0
126 | },
127 | "percentiles4": {
128 | "total": 716,
129 | "ok": 716,
130 | "ko": 0
131 | },
132 | "group1": {
133 | "name": "t < 800 ms",
134 | "count": 19891,
135 | "percentage": 99
136 | },
137 | "group2": {
138 | "name": "800 ms < t < 1200 ms",
139 | "count": 109,
140 | "percentage": 1
141 | },
142 | "group3": {
143 | "name": "t > 1200 ms",
144 | "count": 0,
145 | "percentage": 0
146 | },
147 | "group4": {
148 | "name": "failed",
149 | "count": 0,
150 | "percentage": 0
151 | },
152 | "meanNumberOfRequestsPerSecond": {
153 | "total": 833.3333333333334,
154 | "ok": 833.3333333333334,
155 | "ko": 0
156 | }
157 | }
158 | }
159 | }
160 |
161 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/js/theme.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011-2014 eBusiness Information, Groupe Excilys (www.ebusinessinformation.fr)
3 | *
4 | * Licensed under the Gatling Highcharts License
5 | */
6 | Highcharts.theme = {
7 | chart: {
8 | backgroundColor: '#e6e5e0',
9 | borderWidth: 0,
10 | borderRadius: 8,
11 | plotBackgroundColor: null,
12 | plotShadow: false,
13 | plotBorderWidth: 0
14 | },
15 | xAxis: {
16 | gridLineWidth: 0,
17 | lineColor: '#666',
18 | tickColor: '#666',
19 | labels: {
20 | style: {
21 | color: '#666'
22 | }
23 | },
24 | title: {
25 | style: {
26 | color: '#666'
27 | }
28 | }
29 | },
30 | yAxis: {
31 | alternateGridColor: null,
32 | minorTickInterval: null,
33 | gridLineColor: '#999',
34 | lineWidth: 0,
35 | tickWidth: 0,
36 | labels: {
37 | style: {
38 | color: '#666',
39 | fontWeight: 'bold'
40 | }
41 | },
42 | title: {
43 | style: {
44 | color: '#666',
45 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
46 | }
47 | }
48 | },
49 | labels: {
50 | style: {
51 | color: '#CCC'
52 | }
53 | },
54 |
55 |
56 | rangeSelector: {
57 | buttonTheme: {
58 | fill: '#cfc9c6',
59 | stroke: '#000000',
60 | style: {
61 | color: '#34332e',
62 | fontWeight: 'bold',
63 | borderColor: '#b2b2a9'
64 | },
65 | states: {
66 | hover: {
67 | fill: '#92918C',
68 | stroke: '#000000',
69 | style: {
70 | color: '#34332e',
71 | fontWeight: 'bold',
72 | borderColor: '#8b897d'
73 | }
74 | },
75 | select: {
76 | fill: '#E37400',
77 | stroke: '#000000',
78 | style: {
79 | color: '#FFF'
80 | }
81 | }
82 | }
83 | },
84 | inputStyle: {
85 | backgroundColor: '#333',
86 | color: 'silver'
87 | },
88 | labelStyle: {
89 | color: '#8b897d'
90 | }
91 | },
92 |
93 | navigator: {
94 | handles: {
95 | backgroundColor: '#e6e5e0',
96 | borderColor: '#92918C'
97 | },
98 | outlineColor: '#92918C',
99 | outlineWidth: 1,
100 | maskFill: 'rgba(146, 145, 140, 0.5)',
101 | series: {
102 | color: '#4572A7',
103 | lineColor: '#4572A7'
104 | }
105 | },
106 |
107 | scrollbar: {
108 | buttonBackgroundColor: '#e6e5e0',
109 | buttonBorderWidth: 1,
110 | buttonBorderColor: '#92918C',
111 | buttonArrowColor: '#92918C',
112 | buttonBorderRadius: 2,
113 |
114 | barBorderWidth: 1,
115 | barBorderRadius: 0,
116 | barBackgroundColor: '#92918C',
117 | barBorderColor: '#92918C',
118 |
119 | rifleColor: '#92918C',
120 |
121 | trackBackgroundColor: '#b0b0a8',
122 | trackBorderWidth: 1,
123 | trackBorderColor: '#b0b0a8'
124 | }
125 | };
126 |
127 | Highcharts.setOptions(Highcharts.theme);
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/js/unpack.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var unpack = function (array) {
4 | var findNbSeries = function (array) {
5 | var currentPlotPack;
6 | var length = array.length;
7 |
8 | for (var i = 0; i < length; i++) {
9 | currentPlotPack = array[i][1];
10 | if(currentPlotPack !== null) {
11 | return currentPlotPack.length;
12 | }
13 | }
14 | return 0;
15 | };
16 |
17 | var i, j;
18 | var nbPlots = array.length;
19 | var nbSeries = findNbSeries(array);
20 |
21 | // Prepare unpacked array
22 | var unpackedArray = new Array(nbSeries);
23 |
24 | for (i = 0; i < nbSeries; i++) {
25 | unpackedArray[i] = new Array(nbPlots);
26 | }
27 |
28 | // Unpack the array
29 | for (i = 0; i < nbPlots; i++) {
30 | var timestamp = array[i][0];
31 | var values = array[i][1];
32 | for (j = 0; j < nbSeries; j++) {
33 | unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]];
34 | }
35 | }
36 |
37 | return unpackedArray;
38 | };
39 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/arrow_down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/arrow_down_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/arrow_down_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/arrow_right_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/arrow_right_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/bootstrap.min.css:
--------------------------------------------------------------------------------
1 | .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
2 | .clearfix:after{clear:both;}
3 | .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
4 | .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
5 | .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
6 | .tooltip.top{margin-top:-3px;}
7 | .tooltip.right{margin-left:3px;}
8 | .tooltip.bottom{margin-top:3px;}
9 | .tooltip.left{margin-left:-3px;}
10 | .tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
11 | .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
12 | .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
13 | .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
14 | .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
15 | .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
16 | .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;}
17 | .popover.right{margin-left:10px;}
18 | .popover.bottom{margin-top:10px;}
19 | .popover.left{margin-left:-10px;}
20 | .popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
21 | .popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;}
22 | .popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;}
23 | .popover .arrow:after{content:"";z-index:-1;}
24 | .popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;}
25 | .popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;}
26 | .popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;}
27 | .popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;}
28 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/cible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/cible.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/favicon.ico
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/fond-degrade.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/fond-degrade.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/fond-lueur.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/fond-lueur.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/little_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/little_arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/logo-gatling.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/logo-gatling.jpg
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/logo.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/sortable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/sortable.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/sorted-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/sorted-down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/sorted-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/sorted-up.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/stat-fleche-bas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/stat-fleche-bas.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/stat-fond.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/stat-fond.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/stat-l-roue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/stat-l-roue.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/stat-l-temps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241352996/style/stat-l-temps.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/js/all_sessions.js:
--------------------------------------------------------------------------------
1 | allUsersData = {
2 |
3 | color: '#FF9D00',
4 | name: 'All Users',
5 | data: [
6 | [1520241883000,254],[1520241884000,457],[1520241885000,385],[1520241886000,339],[1520241887000,404],[1520241888000,467],[1520241889000,447],[1520241890000,473],[1520241891000,537],[1520241892000,557],[1520241893000,448],[1520241894000,440],[1520241895000,450],[1520241896000,455],[1520241897000,499],[1520241898000,523],[1520241899000,605],[1520241900000,733],[1520241901000,869],[1520241902000,1024],[1520241903000,1056],[1520241904000,1020],[1520241905000,1068],[1520241906000,1007],[1520241907000,901],[1520241908000,872],[1520241909000,784],[1520241910000,659],[1520241911000,598],[1520241912000,512],[1520241913000,570],[1520241914000,615],[1520241915000,686],[1520241916000,684],[1520241917000,688],[1520241918000,760],[1520241919000,706],[1520241920000,668],[1520241921000,606],[1520241922000,518],[1520241923000,298]
7 | ],
8 | tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
9 | , zIndex: 20
10 | , yAxis: 1
11 | };
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/js/assertions.json:
--------------------------------------------------------------------------------
1 | {
2 | "simulation": "BootLoadSimulation",
3 | "simulationId": "bootloadsimulation",
4 | "start": 1520241881803,
5 | "description": "",
6 | "scenarios": ["BootLoadSimulation"],
7 | "assertions": [
8 |
9 | ]
10 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/js/assertions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/js/global_stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Global Information",
3 | "numberOfRequests": {
4 | "total": 40000,
5 | "ok": 40000,
6 | "ko": 0
7 | },
8 | "minResponseTime": {
9 | "total": 201,
10 | "ok": 201,
11 | "ko": 0
12 | },
13 | "maxResponseTime": {
14 | "total": 1883,
15 | "ok": 1883,
16 | "ko": 0
17 | },
18 | "meanResponseTime": {
19 | "total": 390,
20 | "ok": 390,
21 | "ko": 0
22 | },
23 | "standardDeviation": {
24 | "total": 232,
25 | "ok": 232,
26 | "ko": 0
27 | },
28 | "percentiles1": {
29 | "total": 315,
30 | "ok": 315,
31 | "ko": 0
32 | },
33 | "percentiles2": {
34 | "total": 422,
35 | "ok": 422,
36 | "ko": 0
37 | },
38 | "percentiles3": {
39 | "total": 865,
40 | "ok": 865,
41 | "ko": 0
42 | },
43 | "percentiles4": {
44 | "total": 1392,
45 | "ok": 1392,
46 | "ko": 0
47 | },
48 | "group1": {
49 | "name": "t < 800 ms",
50 | "count": 37659,
51 | "percentage": 94
52 | },
53 | "group2": {
54 | "name": "800 ms < t < 1200 ms",
55 | "count": 1422,
56 | "percentage": 4
57 | },
58 | "group3": {
59 | "name": "t > 1200 ms",
60 | "count": 919,
61 | "percentage": 2
62 | },
63 | "group4": {
64 | "name": "failed",
65 | "count": 0,
66 | "percentage": 0
67 | },
68 | "meanNumberOfRequestsPerSecond": {
69 | "total": 975.609756097561,
70 | "ok": 975.609756097561,
71 | "ko": 0
72 | }
73 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/js/menu.js:
--------------------------------------------------------------------------------
1 |
2 | function getItemLink(item){
3 | return item.pathFormatted + '.html';
4 | }
5 |
6 | function setDetailsLinkUrl(){
7 | $.each(stats.contents, function (name, data) {
8 | $('#details_link').attr('href', getItemLink(data));
9 | return false;
10 | });
11 | }
12 |
13 | var MENU_ITEM_MAX_LENGTH = 50;
14 |
15 | function menuItem(item, level, parent, group) {
16 | if (group)
17 | var style = 'group';
18 | else
19 | var style = '';
20 |
21 | if (item.name.length > MENU_ITEM_MAX_LENGTH) {
22 | var title = ' title="' + item.name + '"';
23 | var displayName = item.name.substr(0, MENU_ITEM_MAX_LENGTH) + '...';
24 | }
25 | else {
26 | var title = '';
27 | var displayName = item.name;
28 | }
29 |
30 | if (parent) {
31 | if (level == 0)
32 | var childOfRoot = 'child-of-ROOT ';
33 | else
34 | var childOfRoot = '';
35 |
36 | var style = ' class="' + childOfRoot + 'child-of-menu-' + parent + '"';
37 | } else
38 | var style = '';
39 |
40 | if (group)
41 | var expandButton = ' ';
42 | else
43 | var expandButton = ' ';
44 |
45 | return '';
46 | }
47 |
48 | function menuItemsForGroup(group, level, parent) {
49 | var items = '';
50 |
51 | if (level > 0)
52 | items += menuItem(group, level - 1, parent, true);
53 |
54 | $.each(group.contents, function (contentName, content) {
55 | if (content.type == 'GROUP')
56 | items += menuItemsForGroup(content, level + 1, group.pathFormatted);
57 | else if (content.type == 'REQUEST')
58 | items += menuItem(content, level, group.pathFormatted);
59 | });
60 |
61 | return items;
62 | }
63 |
64 | function setDetailsMenu(){
65 | $('.nav ul').append(menuItemsForGroup(stats, 0));
66 |
67 | $('.nav').expandable();
68 | }
69 |
70 | function setGlobalMenu(){
71 | $('.nav ul').append(' \
72 | \
73 | ');
74 | }
75 |
76 | function getLink(link){
77 | var a = link.split('/');
78 | return (a.length<=1)? link : a[a.length-1];
79 | }
80 |
81 | function setActiveMenu(){
82 | $('.nav a').each(function(){
83 | if(!$(this).hasClass('expand-button') && $(this).attr('href') == getLink(window.location.pathname)){
84 | $(this).parents('li').addClass('on');
85 | return false;
86 | }
87 | });
88 | }
89 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/js/stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "GROUP",
3 | "name": "Global Information",
4 | "path": "",
5 | "pathFormatted": "group_missing-name-b06d1",
6 | "stats": {
7 | "name": "Global Information",
8 | "numberOfRequests": {
9 | "total": 40000,
10 | "ok": 40000,
11 | "ko": 0
12 | },
13 | "minResponseTime": {
14 | "total": 201,
15 | "ok": 201,
16 | "ko": 0
17 | },
18 | "maxResponseTime": {
19 | "total": 1883,
20 | "ok": 1883,
21 | "ko": 0
22 | },
23 | "meanResponseTime": {
24 | "total": 390,
25 | "ok": 390,
26 | "ko": 0
27 | },
28 | "standardDeviation": {
29 | "total": 232,
30 | "ok": 232,
31 | "ko": 0
32 | },
33 | "percentiles1": {
34 | "total": 315,
35 | "ok": 315,
36 | "ko": 0
37 | },
38 | "percentiles2": {
39 | "total": 422,
40 | "ok": 422,
41 | "ko": 0
42 | },
43 | "percentiles3": {
44 | "total": 865,
45 | "ok": 865,
46 | "ko": 0
47 | },
48 | "percentiles4": {
49 | "total": 1392,
50 | "ok": 1392,
51 | "ko": 0
52 | },
53 | "group1": {
54 | "name": "t < 800 ms",
55 | "count": 37659,
56 | "percentage": 94
57 | },
58 | "group2": {
59 | "name": "800 ms < t < 1200 ms",
60 | "count": 1422,
61 | "percentage": 4
62 | },
63 | "group3": {
64 | "name": "t > 1200 ms",
65 | "count": 919,
66 | "percentage": 2
67 | },
68 | "group4": {
69 | "name": "failed",
70 | "count": 0,
71 | "percentage": 0
72 | },
73 | "meanNumberOfRequestsPerSecond": {
74 | "total": 975.609756097561,
75 | "ok": 975.609756097561,
76 | "ko": 0
77 | }
78 | },
79 | "contents": {
80 | "req_add-person-test-ac713": {
81 | "type": "REQUEST",
82 | "name": "add-person-test",
83 | "path": "add-person-test",
84 | "pathFormatted": "req_add-person-test-ac713",
85 | "stats": {
86 | "name": "add-person-test",
87 | "numberOfRequests": {
88 | "total": 40000,
89 | "ok": 40000,
90 | "ko": 0
91 | },
92 | "minResponseTime": {
93 | "total": 201,
94 | "ok": 201,
95 | "ko": 0
96 | },
97 | "maxResponseTime": {
98 | "total": 1883,
99 | "ok": 1883,
100 | "ko": 0
101 | },
102 | "meanResponseTime": {
103 | "total": 390,
104 | "ok": 390,
105 | "ko": 0
106 | },
107 | "standardDeviation": {
108 | "total": 232,
109 | "ok": 232,
110 | "ko": 0
111 | },
112 | "percentiles1": {
113 | "total": 315,
114 | "ok": 315,
115 | "ko": 0
116 | },
117 | "percentiles2": {
118 | "total": 422,
119 | "ok": 422,
120 | "ko": 0
121 | },
122 | "percentiles3": {
123 | "total": 865,
124 | "ok": 865,
125 | "ko": 0
126 | },
127 | "percentiles4": {
128 | "total": 1392,
129 | "ok": 1392,
130 | "ko": 0
131 | },
132 | "group1": {
133 | "name": "t < 800 ms",
134 | "count": 37659,
135 | "percentage": 94
136 | },
137 | "group2": {
138 | "name": "800 ms < t < 1200 ms",
139 | "count": 1422,
140 | "percentage": 4
141 | },
142 | "group3": {
143 | "name": "t > 1200 ms",
144 | "count": 919,
145 | "percentage": 2
146 | },
147 | "group4": {
148 | "name": "failed",
149 | "count": 0,
150 | "percentage": 0
151 | },
152 | "meanNumberOfRequestsPerSecond": {
153 | "total": 975.609756097561,
154 | "ok": 975.609756097561,
155 | "ko": 0
156 | }
157 | }
158 | }
159 | }
160 |
161 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/js/theme.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011-2014 eBusiness Information, Groupe Excilys (www.ebusinessinformation.fr)
3 | *
4 | * Licensed under the Gatling Highcharts License
5 | */
6 | Highcharts.theme = {
7 | chart: {
8 | backgroundColor: '#e6e5e0',
9 | borderWidth: 0,
10 | borderRadius: 8,
11 | plotBackgroundColor: null,
12 | plotShadow: false,
13 | plotBorderWidth: 0
14 | },
15 | xAxis: {
16 | gridLineWidth: 0,
17 | lineColor: '#666',
18 | tickColor: '#666',
19 | labels: {
20 | style: {
21 | color: '#666'
22 | }
23 | },
24 | title: {
25 | style: {
26 | color: '#666'
27 | }
28 | }
29 | },
30 | yAxis: {
31 | alternateGridColor: null,
32 | minorTickInterval: null,
33 | gridLineColor: '#999',
34 | lineWidth: 0,
35 | tickWidth: 0,
36 | labels: {
37 | style: {
38 | color: '#666',
39 | fontWeight: 'bold'
40 | }
41 | },
42 | title: {
43 | style: {
44 | color: '#666',
45 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
46 | }
47 | }
48 | },
49 | labels: {
50 | style: {
51 | color: '#CCC'
52 | }
53 | },
54 |
55 |
56 | rangeSelector: {
57 | buttonTheme: {
58 | fill: '#cfc9c6',
59 | stroke: '#000000',
60 | style: {
61 | color: '#34332e',
62 | fontWeight: 'bold',
63 | borderColor: '#b2b2a9'
64 | },
65 | states: {
66 | hover: {
67 | fill: '#92918C',
68 | stroke: '#000000',
69 | style: {
70 | color: '#34332e',
71 | fontWeight: 'bold',
72 | borderColor: '#8b897d'
73 | }
74 | },
75 | select: {
76 | fill: '#E37400',
77 | stroke: '#000000',
78 | style: {
79 | color: '#FFF'
80 | }
81 | }
82 | }
83 | },
84 | inputStyle: {
85 | backgroundColor: '#333',
86 | color: 'silver'
87 | },
88 | labelStyle: {
89 | color: '#8b897d'
90 | }
91 | },
92 |
93 | navigator: {
94 | handles: {
95 | backgroundColor: '#e6e5e0',
96 | borderColor: '#92918C'
97 | },
98 | outlineColor: '#92918C',
99 | outlineWidth: 1,
100 | maskFill: 'rgba(146, 145, 140, 0.5)',
101 | series: {
102 | color: '#4572A7',
103 | lineColor: '#4572A7'
104 | }
105 | },
106 |
107 | scrollbar: {
108 | buttonBackgroundColor: '#e6e5e0',
109 | buttonBorderWidth: 1,
110 | buttonBorderColor: '#92918C',
111 | buttonArrowColor: '#92918C',
112 | buttonBorderRadius: 2,
113 |
114 | barBorderWidth: 1,
115 | barBorderRadius: 0,
116 | barBackgroundColor: '#92918C',
117 | barBorderColor: '#92918C',
118 |
119 | rifleColor: '#92918C',
120 |
121 | trackBackgroundColor: '#b0b0a8',
122 | trackBorderWidth: 1,
123 | trackBorderColor: '#b0b0a8'
124 | }
125 | };
126 |
127 | Highcharts.setOptions(Highcharts.theme);
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/js/unpack.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var unpack = function (array) {
4 | var findNbSeries = function (array) {
5 | var currentPlotPack;
6 | var length = array.length;
7 |
8 | for (var i = 0; i < length; i++) {
9 | currentPlotPack = array[i][1];
10 | if(currentPlotPack !== null) {
11 | return currentPlotPack.length;
12 | }
13 | }
14 | return 0;
15 | };
16 |
17 | var i, j;
18 | var nbPlots = array.length;
19 | var nbSeries = findNbSeries(array);
20 |
21 | // Prepare unpacked array
22 | var unpackedArray = new Array(nbSeries);
23 |
24 | for (i = 0; i < nbSeries; i++) {
25 | unpackedArray[i] = new Array(nbPlots);
26 | }
27 |
28 | // Unpack the array
29 | for (i = 0; i < nbPlots; i++) {
30 | var timestamp = array[i][0];
31 | var values = array[i][1];
32 | for (j = 0; j < nbSeries; j++) {
33 | unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]];
34 | }
35 | }
36 |
37 | return unpackedArray;
38 | };
39 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/arrow_down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/arrow_down_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/arrow_down_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/arrow_right_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/arrow_right_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/bootstrap.min.css:
--------------------------------------------------------------------------------
1 | .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
2 | .clearfix:after{clear:both;}
3 | .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
4 | .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
5 | .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
6 | .tooltip.top{margin-top:-3px;}
7 | .tooltip.right{margin-left:3px;}
8 | .tooltip.bottom{margin-top:3px;}
9 | .tooltip.left{margin-left:-3px;}
10 | .tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
11 | .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
12 | .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
13 | .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
14 | .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
15 | .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
16 | .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;}
17 | .popover.right{margin-left:10px;}
18 | .popover.bottom{margin-top:10px;}
19 | .popover.left{margin-left:-10px;}
20 | .popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
21 | .popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;}
22 | .popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;}
23 | .popover .arrow:after{content:"";z-index:-1;}
24 | .popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;}
25 | .popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;}
26 | .popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;}
27 | .popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;}
28 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/cible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/cible.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/favicon.ico
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/fond-degrade.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/fond-degrade.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/fond-lueur.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/fond-lueur.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/little_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/little_arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/logo-gatling.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/logo-gatling.jpg
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/logo.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/sortable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/sortable.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/sorted-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/sorted-down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/sorted-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/sorted-up.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/stat-fleche-bas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/stat-fleche-bas.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/stat-fond.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/stat-fond.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/stat-l-roue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/stat-l-roue.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/stat-l-temps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520241881803/style/stat-l-temps.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/js/all_sessions.js:
--------------------------------------------------------------------------------
1 | allUsersData = {
2 |
3 | color: '#FF9D00',
4 | name: 'All Users',
5 | data: [
6 | [1520242083000,312],[1520242084000,456],[1520242085000,498],[1520242086000,392],[1520242087000,379],[1520242088000,345],[1520242089000,327],[1520242090000,386],[1520242091000,435],[1520242092000,421],[1520242093000,414],[1520242094000,410],[1520242095000,422],[1520242096000,640],[1520242097000,673],[1520242098000,743],[1520242099000,754],[1520242100000,631],[1520242101000,620],[1520242102000,569],[1520242103000,615],[1520242104000,670],[1520242105000,1073],[1520242106000,1248],[1520242107000,1143],[1520242108000,1015],[1520242109000,798],[1520242110000,398]
7 | ],
8 | tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
9 | , zIndex: 20
10 | , yAxis: 1
11 | };
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/js/assertions.json:
--------------------------------------------------------------------------------
1 | {
2 | "simulation": "BootLoadSimulation",
3 | "simulationId": "bootloadsimulation",
4 | "start": 1520242082281,
5 | "description": "",
6 | "scenarios": ["BootLoadSimulation"],
7 | "assertions": [
8 |
9 | ]
10 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/js/assertions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/js/global_stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Global Information",
3 | "numberOfRequests": {
4 | "total": 20000,
5 | "ok": 20000,
6 | "ko": 0
7 | },
8 | "minResponseTime": {
9 | "total": 202,
10 | "ok": 202,
11 | "ko": 0
12 | },
13 | "maxResponseTime": {
14 | "total": 1703,
15 | "ok": 1703,
16 | "ko": 0
17 | },
18 | "meanResponseTime": {
19 | "total": 578,
20 | "ok": 578,
21 | "ko": 0
22 | },
23 | "standardDeviation": {
24 | "total": 285,
25 | "ok": 285,
26 | "ko": 0
27 | },
28 | "percentiles1": {
29 | "total": 495,
30 | "ok": 495,
31 | "ko": 0
32 | },
33 | "percentiles2": {
34 | "total": 778,
35 | "ok": 778,
36 | "ko": 0
37 | },
38 | "percentiles3": {
39 | "total": 1129,
40 | "ok": 1129,
41 | "ko": 0
42 | },
43 | "percentiles4": {
44 | "total": 1215,
45 | "ok": 1215,
46 | "ko": 0
47 | },
48 | "group1": {
49 | "name": "t < 800 ms",
50 | "count": 15251,
51 | "percentage": 76
52 | },
53 | "group2": {
54 | "name": "800 ms < t < 1200 ms",
55 | "count": 4502,
56 | "percentage": 23
57 | },
58 | "group3": {
59 | "name": "t > 1200 ms",
60 | "count": 247,
61 | "percentage": 1
62 | },
63 | "group4": {
64 | "name": "failed",
65 | "count": 0,
66 | "percentage": 0
67 | },
68 | "meanNumberOfRequestsPerSecond": {
69 | "total": 714.2857142857143,
70 | "ok": 714.2857142857143,
71 | "ko": 0
72 | }
73 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/js/menu.js:
--------------------------------------------------------------------------------
1 |
2 | function getItemLink(item){
3 | return item.pathFormatted + '.html';
4 | }
5 |
6 | function setDetailsLinkUrl(){
7 | $.each(stats.contents, function (name, data) {
8 | $('#details_link').attr('href', getItemLink(data));
9 | return false;
10 | });
11 | }
12 |
13 | var MENU_ITEM_MAX_LENGTH = 50;
14 |
15 | function menuItem(item, level, parent, group) {
16 | if (group)
17 | var style = 'group';
18 | else
19 | var style = '';
20 |
21 | if (item.name.length > MENU_ITEM_MAX_LENGTH) {
22 | var title = ' title="' + item.name + '"';
23 | var displayName = item.name.substr(0, MENU_ITEM_MAX_LENGTH) + '...';
24 | }
25 | else {
26 | var title = '';
27 | var displayName = item.name;
28 | }
29 |
30 | if (parent) {
31 | if (level == 0)
32 | var childOfRoot = 'child-of-ROOT ';
33 | else
34 | var childOfRoot = '';
35 |
36 | var style = ' class="' + childOfRoot + 'child-of-menu-' + parent + '"';
37 | } else
38 | var style = '';
39 |
40 | if (group)
41 | var expandButton = ' ';
42 | else
43 | var expandButton = ' ';
44 |
45 | return '';
46 | }
47 |
48 | function menuItemsForGroup(group, level, parent) {
49 | var items = '';
50 |
51 | if (level > 0)
52 | items += menuItem(group, level - 1, parent, true);
53 |
54 | $.each(group.contents, function (contentName, content) {
55 | if (content.type == 'GROUP')
56 | items += menuItemsForGroup(content, level + 1, group.pathFormatted);
57 | else if (content.type == 'REQUEST')
58 | items += menuItem(content, level, group.pathFormatted);
59 | });
60 |
61 | return items;
62 | }
63 |
64 | function setDetailsMenu(){
65 | $('.nav ul').append(menuItemsForGroup(stats, 0));
66 |
67 | $('.nav').expandable();
68 | }
69 |
70 | function setGlobalMenu(){
71 | $('.nav ul').append(' \
72 | \
73 | ');
74 | }
75 |
76 | function getLink(link){
77 | var a = link.split('/');
78 | return (a.length<=1)? link : a[a.length-1];
79 | }
80 |
81 | function setActiveMenu(){
82 | $('.nav a').each(function(){
83 | if(!$(this).hasClass('expand-button') && $(this).attr('href') == getLink(window.location.pathname)){
84 | $(this).parents('li').addClass('on');
85 | return false;
86 | }
87 | });
88 | }
89 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/js/stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "GROUP",
3 | "name": "Global Information",
4 | "path": "",
5 | "pathFormatted": "group_missing-name-b06d1",
6 | "stats": {
7 | "name": "Global Information",
8 | "numberOfRequests": {
9 | "total": 20000,
10 | "ok": 20000,
11 | "ko": 0
12 | },
13 | "minResponseTime": {
14 | "total": 202,
15 | "ok": 202,
16 | "ko": 0
17 | },
18 | "maxResponseTime": {
19 | "total": 1703,
20 | "ok": 1703,
21 | "ko": 0
22 | },
23 | "meanResponseTime": {
24 | "total": 578,
25 | "ok": 578,
26 | "ko": 0
27 | },
28 | "standardDeviation": {
29 | "total": 285,
30 | "ok": 285,
31 | "ko": 0
32 | },
33 | "percentiles1": {
34 | "total": 495,
35 | "ok": 495,
36 | "ko": 0
37 | },
38 | "percentiles2": {
39 | "total": 778,
40 | "ok": 778,
41 | "ko": 0
42 | },
43 | "percentiles3": {
44 | "total": 1129,
45 | "ok": 1129,
46 | "ko": 0
47 | },
48 | "percentiles4": {
49 | "total": 1215,
50 | "ok": 1215,
51 | "ko": 0
52 | },
53 | "group1": {
54 | "name": "t < 800 ms",
55 | "count": 15251,
56 | "percentage": 76
57 | },
58 | "group2": {
59 | "name": "800 ms < t < 1200 ms",
60 | "count": 4502,
61 | "percentage": 23
62 | },
63 | "group3": {
64 | "name": "t > 1200 ms",
65 | "count": 247,
66 | "percentage": 1
67 | },
68 | "group4": {
69 | "name": "failed",
70 | "count": 0,
71 | "percentage": 0
72 | },
73 | "meanNumberOfRequestsPerSecond": {
74 | "total": 714.2857142857143,
75 | "ok": 714.2857142857143,
76 | "ko": 0
77 | }
78 | },
79 | "contents": {
80 | "req_add-person-test-ac713": {
81 | "type": "REQUEST",
82 | "name": "add-person-test",
83 | "path": "add-person-test",
84 | "pathFormatted": "req_add-person-test-ac713",
85 | "stats": {
86 | "name": "add-person-test",
87 | "numberOfRequests": {
88 | "total": 20000,
89 | "ok": 20000,
90 | "ko": 0
91 | },
92 | "minResponseTime": {
93 | "total": 202,
94 | "ok": 202,
95 | "ko": 0
96 | },
97 | "maxResponseTime": {
98 | "total": 1703,
99 | "ok": 1703,
100 | "ko": 0
101 | },
102 | "meanResponseTime": {
103 | "total": 578,
104 | "ok": 578,
105 | "ko": 0
106 | },
107 | "standardDeviation": {
108 | "total": 285,
109 | "ok": 285,
110 | "ko": 0
111 | },
112 | "percentiles1": {
113 | "total": 495,
114 | "ok": 495,
115 | "ko": 0
116 | },
117 | "percentiles2": {
118 | "total": 778,
119 | "ok": 778,
120 | "ko": 0
121 | },
122 | "percentiles3": {
123 | "total": 1129,
124 | "ok": 1129,
125 | "ko": 0
126 | },
127 | "percentiles4": {
128 | "total": 1215,
129 | "ok": 1215,
130 | "ko": 0
131 | },
132 | "group1": {
133 | "name": "t < 800 ms",
134 | "count": 15251,
135 | "percentage": 76
136 | },
137 | "group2": {
138 | "name": "800 ms < t < 1200 ms",
139 | "count": 4502,
140 | "percentage": 23
141 | },
142 | "group3": {
143 | "name": "t > 1200 ms",
144 | "count": 247,
145 | "percentage": 1
146 | },
147 | "group4": {
148 | "name": "failed",
149 | "count": 0,
150 | "percentage": 0
151 | },
152 | "meanNumberOfRequestsPerSecond": {
153 | "total": 714.2857142857143,
154 | "ok": 714.2857142857143,
155 | "ko": 0
156 | }
157 | }
158 | }
159 | }
160 |
161 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/js/theme.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011-2014 eBusiness Information, Groupe Excilys (www.ebusinessinformation.fr)
3 | *
4 | * Licensed under the Gatling Highcharts License
5 | */
6 | Highcharts.theme = {
7 | chart: {
8 | backgroundColor: '#e6e5e0',
9 | borderWidth: 0,
10 | borderRadius: 8,
11 | plotBackgroundColor: null,
12 | plotShadow: false,
13 | plotBorderWidth: 0
14 | },
15 | xAxis: {
16 | gridLineWidth: 0,
17 | lineColor: '#666',
18 | tickColor: '#666',
19 | labels: {
20 | style: {
21 | color: '#666'
22 | }
23 | },
24 | title: {
25 | style: {
26 | color: '#666'
27 | }
28 | }
29 | },
30 | yAxis: {
31 | alternateGridColor: null,
32 | minorTickInterval: null,
33 | gridLineColor: '#999',
34 | lineWidth: 0,
35 | tickWidth: 0,
36 | labels: {
37 | style: {
38 | color: '#666',
39 | fontWeight: 'bold'
40 | }
41 | },
42 | title: {
43 | style: {
44 | color: '#666',
45 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
46 | }
47 | }
48 | },
49 | labels: {
50 | style: {
51 | color: '#CCC'
52 | }
53 | },
54 |
55 |
56 | rangeSelector: {
57 | buttonTheme: {
58 | fill: '#cfc9c6',
59 | stroke: '#000000',
60 | style: {
61 | color: '#34332e',
62 | fontWeight: 'bold',
63 | borderColor: '#b2b2a9'
64 | },
65 | states: {
66 | hover: {
67 | fill: '#92918C',
68 | stroke: '#000000',
69 | style: {
70 | color: '#34332e',
71 | fontWeight: 'bold',
72 | borderColor: '#8b897d'
73 | }
74 | },
75 | select: {
76 | fill: '#E37400',
77 | stroke: '#000000',
78 | style: {
79 | color: '#FFF'
80 | }
81 | }
82 | }
83 | },
84 | inputStyle: {
85 | backgroundColor: '#333',
86 | color: 'silver'
87 | },
88 | labelStyle: {
89 | color: '#8b897d'
90 | }
91 | },
92 |
93 | navigator: {
94 | handles: {
95 | backgroundColor: '#e6e5e0',
96 | borderColor: '#92918C'
97 | },
98 | outlineColor: '#92918C',
99 | outlineWidth: 1,
100 | maskFill: 'rgba(146, 145, 140, 0.5)',
101 | series: {
102 | color: '#4572A7',
103 | lineColor: '#4572A7'
104 | }
105 | },
106 |
107 | scrollbar: {
108 | buttonBackgroundColor: '#e6e5e0',
109 | buttonBorderWidth: 1,
110 | buttonBorderColor: '#92918C',
111 | buttonArrowColor: '#92918C',
112 | buttonBorderRadius: 2,
113 |
114 | barBorderWidth: 1,
115 | barBorderRadius: 0,
116 | barBackgroundColor: '#92918C',
117 | barBorderColor: '#92918C',
118 |
119 | rifleColor: '#92918C',
120 |
121 | trackBackgroundColor: '#b0b0a8',
122 | trackBorderWidth: 1,
123 | trackBorderColor: '#b0b0a8'
124 | }
125 | };
126 |
127 | Highcharts.setOptions(Highcharts.theme);
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/js/unpack.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var unpack = function (array) {
4 | var findNbSeries = function (array) {
5 | var currentPlotPack;
6 | var length = array.length;
7 |
8 | for (var i = 0; i < length; i++) {
9 | currentPlotPack = array[i][1];
10 | if(currentPlotPack !== null) {
11 | return currentPlotPack.length;
12 | }
13 | }
14 | return 0;
15 | };
16 |
17 | var i, j;
18 | var nbPlots = array.length;
19 | var nbSeries = findNbSeries(array);
20 |
21 | // Prepare unpacked array
22 | var unpackedArray = new Array(nbSeries);
23 |
24 | for (i = 0; i < nbSeries; i++) {
25 | unpackedArray[i] = new Array(nbPlots);
26 | }
27 |
28 | // Unpack the array
29 | for (i = 0; i < nbPlots; i++) {
30 | var timestamp = array[i][0];
31 | var values = array[i][1];
32 | for (j = 0; j < nbSeries; j++) {
33 | unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]];
34 | }
35 | }
36 |
37 | return unpackedArray;
38 | };
39 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/arrow_down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/arrow_down_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/arrow_down_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/arrow_right_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/arrow_right_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/bootstrap.min.css:
--------------------------------------------------------------------------------
1 | .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
2 | .clearfix:after{clear:both;}
3 | .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
4 | .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
5 | .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
6 | .tooltip.top{margin-top:-3px;}
7 | .tooltip.right{margin-left:3px;}
8 | .tooltip.bottom{margin-top:3px;}
9 | .tooltip.left{margin-left:-3px;}
10 | .tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
11 | .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
12 | .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
13 | .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
14 | .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
15 | .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
16 | .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;}
17 | .popover.right{margin-left:10px;}
18 | .popover.bottom{margin-top:10px;}
19 | .popover.left{margin-left:-10px;}
20 | .popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
21 | .popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;}
22 | .popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;}
23 | .popover .arrow:after{content:"";z-index:-1;}
24 | .popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;}
25 | .popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;}
26 | .popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;}
27 | .popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;}
28 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/cible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/cible.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/favicon.ico
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/fond-degrade.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/fond-degrade.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/fond-lueur.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/fond-lueur.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/little_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/little_arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/logo-gatling.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/logo-gatling.jpg
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/logo.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/sortable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/sortable.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/sorted-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/sorted-down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/sorted-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/sorted-up.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/stat-fleche-bas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/stat-fleche-bas.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/stat-fond.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/stat-fond.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/stat-l-roue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/stat-l-roue.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/stat-l-temps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242082281/style/stat-l-temps.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/js/all_sessions.js:
--------------------------------------------------------------------------------
1 | allUsersData = {
2 |
3 | color: '#FF9D00',
4 | name: 'All Users',
5 | data: [
6 | [1520242454000,207],[1520242455000,400],[1520242456000,320],[1520242457000,270],[1520242458000,372],[1520242459000,549],[1520242460000,882],[1520242461000,1198],[1520242462000,1331],[1520242463000,1330],[1520242464000,1372],[1520242465000,1385],[1520242466000,1304],[1520242467000,1192],[1520242468000,1011],[1520242469000,890],[1520242470000,1055],[1520242471000,1073],[1520242472000,1073],[1520242473000,1076],[1520242474000,1228],[1520242475000,1424],[1520242476000,1483],[1520242477000,1559],[1520242478000,1649],[1520242479000,1691],[1520242480000,1899],[1520242481000,2256],[1520242482000,2285],[1520242483000,2416],[1520242484000,2609],[1520242485000,2519],[1520242486000,2738],[1520242487000,3148],[1520242488000,3673],[1520242489000,4237],[1520242490000,3952],[1520242491000,3700],[1520242492000,3501],[1520242493000,3303],[1520242494000,3243],[1520242495000,3164],[1520242496000,3061],[1520242497000,2790],[1520242498000,2702],[1520242499000,2515],[1520242500000,2345],[1520242501000,2188],[1520242502000,1555],[1520242504000,388]
7 | ],
8 | tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
9 | , zIndex: 20
10 | , yAxis: 1
11 | };
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/js/assertions.json:
--------------------------------------------------------------------------------
1 | {
2 | "simulation": "BootLoadSimulation",
3 | "simulationId": "bootloadsimulation",
4 | "start": 1520242453415,
5 | "description": "",
6 | "scenarios": ["BootLoadSimulation"],
7 | "assertions": [
8 |
9 | ]
10 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/js/assertions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/js/global_stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Global Information",
3 | "numberOfRequests": {
4 | "total": 40000,
5 | "ok": 39994,
6 | "ko": 6
7 | },
8 | "minResponseTime": {
9 | "total": 202,
10 | "ok": 202,
11 | "ko": 2443
12 | },
13 | "maxResponseTime": {
14 | "total": 5356,
15 | "ok": 5356,
16 | "ko": 4166
17 | },
18 | "meanResponseTime": {
19 | "total": 2102,
20 | "ok": 2101,
21 | "ko": 3216
22 | },
23 | "standardDeviation": {
24 | "total": 1304,
25 | "ok": 1304,
26 | "ko": 660
27 | },
28 | "percentiles1": {
29 | "total": 2093,
30 | "ok": 2093,
31 | "ko": 3151
32 | },
33 | "percentiles2": {
34 | "total": 3016,
35 | "ok": 3016,
36 | "ko": 3763
37 | },
38 | "percentiles3": {
39 | "total": 4547,
40 | "ok": 4547,
41 | "ko": 4104
42 | },
43 | "percentiles4": {
44 | "total": 5061,
45 | "ok": 5061,
46 | "ko": 4154
47 | },
48 | "group1": {
49 | "name": "t < 800 ms",
50 | "count": 7989,
51 | "percentage": 20
52 | },
53 | "group2": {
54 | "name": "800 ms < t < 1200 ms",
55 | "count": 4914,
56 | "percentage": 12
57 | },
58 | "group3": {
59 | "name": "t > 1200 ms",
60 | "count": 27091,
61 | "percentage": 68
62 | },
63 | "group4": {
64 | "name": "failed",
65 | "count": 6,
66 | "percentage": 0
67 | },
68 | "meanNumberOfRequestsPerSecond": {
69 | "total": 784.3137254901961,
70 | "ok": 784.1960784313726,
71 | "ko": 0.11764705882352941
72 | }
73 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/js/menu.js:
--------------------------------------------------------------------------------
1 |
2 | function getItemLink(item){
3 | return item.pathFormatted + '.html';
4 | }
5 |
6 | function setDetailsLinkUrl(){
7 | $.each(stats.contents, function (name, data) {
8 | $('#details_link').attr('href', getItemLink(data));
9 | return false;
10 | });
11 | }
12 |
13 | var MENU_ITEM_MAX_LENGTH = 50;
14 |
15 | function menuItem(item, level, parent, group) {
16 | if (group)
17 | var style = 'group';
18 | else
19 | var style = '';
20 |
21 | if (item.name.length > MENU_ITEM_MAX_LENGTH) {
22 | var title = ' title="' + item.name + '"';
23 | var displayName = item.name.substr(0, MENU_ITEM_MAX_LENGTH) + '...';
24 | }
25 | else {
26 | var title = '';
27 | var displayName = item.name;
28 | }
29 |
30 | if (parent) {
31 | if (level == 0)
32 | var childOfRoot = 'child-of-ROOT ';
33 | else
34 | var childOfRoot = '';
35 |
36 | var style = ' class="' + childOfRoot + 'child-of-menu-' + parent + '"';
37 | } else
38 | var style = '';
39 |
40 | if (group)
41 | var expandButton = ' ';
42 | else
43 | var expandButton = ' ';
44 |
45 | return '';
46 | }
47 |
48 | function menuItemsForGroup(group, level, parent) {
49 | var items = '';
50 |
51 | if (level > 0)
52 | items += menuItem(group, level - 1, parent, true);
53 |
54 | $.each(group.contents, function (contentName, content) {
55 | if (content.type == 'GROUP')
56 | items += menuItemsForGroup(content, level + 1, group.pathFormatted);
57 | else if (content.type == 'REQUEST')
58 | items += menuItem(content, level, group.pathFormatted);
59 | });
60 |
61 | return items;
62 | }
63 |
64 | function setDetailsMenu(){
65 | $('.nav ul').append(menuItemsForGroup(stats, 0));
66 |
67 | $('.nav').expandable();
68 | }
69 |
70 | function setGlobalMenu(){
71 | $('.nav ul').append(' \
72 | \
73 | ');
74 | }
75 |
76 | function getLink(link){
77 | var a = link.split('/');
78 | return (a.length<=1)? link : a[a.length-1];
79 | }
80 |
81 | function setActiveMenu(){
82 | $('.nav a').each(function(){
83 | if(!$(this).hasClass('expand-button') && $(this).attr('href') == getLink(window.location.pathname)){
84 | $(this).parents('li').addClass('on');
85 | return false;
86 | }
87 | });
88 | }
89 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/js/stats.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "GROUP",
3 | "name": "Global Information",
4 | "path": "",
5 | "pathFormatted": "group_missing-name-b06d1",
6 | "stats": {
7 | "name": "Global Information",
8 | "numberOfRequests": {
9 | "total": 40000,
10 | "ok": 39994,
11 | "ko": 6
12 | },
13 | "minResponseTime": {
14 | "total": 202,
15 | "ok": 202,
16 | "ko": 2443
17 | },
18 | "maxResponseTime": {
19 | "total": 5356,
20 | "ok": 5356,
21 | "ko": 4166
22 | },
23 | "meanResponseTime": {
24 | "total": 2102,
25 | "ok": 2101,
26 | "ko": 3216
27 | },
28 | "standardDeviation": {
29 | "total": 1304,
30 | "ok": 1304,
31 | "ko": 660
32 | },
33 | "percentiles1": {
34 | "total": 2093,
35 | "ok": 2093,
36 | "ko": 3151
37 | },
38 | "percentiles2": {
39 | "total": 3016,
40 | "ok": 3016,
41 | "ko": 3763
42 | },
43 | "percentiles3": {
44 | "total": 4547,
45 | "ok": 4547,
46 | "ko": 4104
47 | },
48 | "percentiles4": {
49 | "total": 5061,
50 | "ok": 5061,
51 | "ko": 4154
52 | },
53 | "group1": {
54 | "name": "t < 800 ms",
55 | "count": 7989,
56 | "percentage": 20
57 | },
58 | "group2": {
59 | "name": "800 ms < t < 1200 ms",
60 | "count": 4914,
61 | "percentage": 12
62 | },
63 | "group3": {
64 | "name": "t > 1200 ms",
65 | "count": 27091,
66 | "percentage": 68
67 | },
68 | "group4": {
69 | "name": "failed",
70 | "count": 6,
71 | "percentage": 0
72 | },
73 | "meanNumberOfRequestsPerSecond": {
74 | "total": 784.3137254901961,
75 | "ok": 784.1960784313726,
76 | "ko": 0.11764705882352941
77 | }
78 | },
79 | "contents": {
80 | "req_add-person-test-ac713": {
81 | "type": "REQUEST",
82 | "name": "add-person-test",
83 | "path": "add-person-test",
84 | "pathFormatted": "req_add-person-test-ac713",
85 | "stats": {
86 | "name": "add-person-test",
87 | "numberOfRequests": {
88 | "total": 40000,
89 | "ok": 39994,
90 | "ko": 6
91 | },
92 | "minResponseTime": {
93 | "total": 202,
94 | "ok": 202,
95 | "ko": 2443
96 | },
97 | "maxResponseTime": {
98 | "total": 5356,
99 | "ok": 5356,
100 | "ko": 4166
101 | },
102 | "meanResponseTime": {
103 | "total": 2102,
104 | "ok": 2101,
105 | "ko": 3216
106 | },
107 | "standardDeviation": {
108 | "total": 1304,
109 | "ok": 1304,
110 | "ko": 660
111 | },
112 | "percentiles1": {
113 | "total": 2093,
114 | "ok": 2093,
115 | "ko": 3151
116 | },
117 | "percentiles2": {
118 | "total": 3017,
119 | "ok": 3017,
120 | "ko": 3763
121 | },
122 | "percentiles3": {
123 | "total": 4547,
124 | "ok": 4547,
125 | "ko": 4104
126 | },
127 | "percentiles4": {
128 | "total": 5061,
129 | "ok": 5061,
130 | "ko": 4154
131 | },
132 | "group1": {
133 | "name": "t < 800 ms",
134 | "count": 7989,
135 | "percentage": 20
136 | },
137 | "group2": {
138 | "name": "800 ms < t < 1200 ms",
139 | "count": 4914,
140 | "percentage": 12
141 | },
142 | "group3": {
143 | "name": "t > 1200 ms",
144 | "count": 27091,
145 | "percentage": 68
146 | },
147 | "group4": {
148 | "name": "failed",
149 | "count": 6,
150 | "percentage": 0
151 | },
152 | "meanNumberOfRequestsPerSecond": {
153 | "total": 784.3137254901961,
154 | "ok": 784.1960784313726,
155 | "ko": 0.11764705882352941
156 | }
157 | }
158 | }
159 | }
160 |
161 | }
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/js/theme.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011-2014 eBusiness Information, Groupe Excilys (www.ebusinessinformation.fr)
3 | *
4 | * Licensed under the Gatling Highcharts License
5 | */
6 | Highcharts.theme = {
7 | chart: {
8 | backgroundColor: '#e6e5e0',
9 | borderWidth: 0,
10 | borderRadius: 8,
11 | plotBackgroundColor: null,
12 | plotShadow: false,
13 | plotBorderWidth: 0
14 | },
15 | xAxis: {
16 | gridLineWidth: 0,
17 | lineColor: '#666',
18 | tickColor: '#666',
19 | labels: {
20 | style: {
21 | color: '#666'
22 | }
23 | },
24 | title: {
25 | style: {
26 | color: '#666'
27 | }
28 | }
29 | },
30 | yAxis: {
31 | alternateGridColor: null,
32 | minorTickInterval: null,
33 | gridLineColor: '#999',
34 | lineWidth: 0,
35 | tickWidth: 0,
36 | labels: {
37 | style: {
38 | color: '#666',
39 | fontWeight: 'bold'
40 | }
41 | },
42 | title: {
43 | style: {
44 | color: '#666',
45 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
46 | }
47 | }
48 | },
49 | labels: {
50 | style: {
51 | color: '#CCC'
52 | }
53 | },
54 |
55 |
56 | rangeSelector: {
57 | buttonTheme: {
58 | fill: '#cfc9c6',
59 | stroke: '#000000',
60 | style: {
61 | color: '#34332e',
62 | fontWeight: 'bold',
63 | borderColor: '#b2b2a9'
64 | },
65 | states: {
66 | hover: {
67 | fill: '#92918C',
68 | stroke: '#000000',
69 | style: {
70 | color: '#34332e',
71 | fontWeight: 'bold',
72 | borderColor: '#8b897d'
73 | }
74 | },
75 | select: {
76 | fill: '#E37400',
77 | stroke: '#000000',
78 | style: {
79 | color: '#FFF'
80 | }
81 | }
82 | }
83 | },
84 | inputStyle: {
85 | backgroundColor: '#333',
86 | color: 'silver'
87 | },
88 | labelStyle: {
89 | color: '#8b897d'
90 | }
91 | },
92 |
93 | navigator: {
94 | handles: {
95 | backgroundColor: '#e6e5e0',
96 | borderColor: '#92918C'
97 | },
98 | outlineColor: '#92918C',
99 | outlineWidth: 1,
100 | maskFill: 'rgba(146, 145, 140, 0.5)',
101 | series: {
102 | color: '#4572A7',
103 | lineColor: '#4572A7'
104 | }
105 | },
106 |
107 | scrollbar: {
108 | buttonBackgroundColor: '#e6e5e0',
109 | buttonBorderWidth: 1,
110 | buttonBorderColor: '#92918C',
111 | buttonArrowColor: '#92918C',
112 | buttonBorderRadius: 2,
113 |
114 | barBorderWidth: 1,
115 | barBorderRadius: 0,
116 | barBackgroundColor: '#92918C',
117 | barBorderColor: '#92918C',
118 |
119 | rifleColor: '#92918C',
120 |
121 | trackBackgroundColor: '#b0b0a8',
122 | trackBorderWidth: 1,
123 | trackBorderColor: '#b0b0a8'
124 | }
125 | };
126 |
127 | Highcharts.setOptions(Highcharts.theme);
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/js/unpack.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var unpack = function (array) {
4 | var findNbSeries = function (array) {
5 | var currentPlotPack;
6 | var length = array.length;
7 |
8 | for (var i = 0; i < length; i++) {
9 | currentPlotPack = array[i][1];
10 | if(currentPlotPack !== null) {
11 | return currentPlotPack.length;
12 | }
13 | }
14 | return 0;
15 | };
16 |
17 | var i, j;
18 | var nbPlots = array.length;
19 | var nbSeries = findNbSeries(array);
20 |
21 | // Prepare unpacked array
22 | var unpackedArray = new Array(nbSeries);
23 |
24 | for (i = 0; i < nbSeries; i++) {
25 | unpackedArray[i] = new Array(nbPlots);
26 | }
27 |
28 | // Unpack the array
29 | for (i = 0; i < nbPlots; i++) {
30 | var timestamp = array[i][0];
31 | var values = array[i][1];
32 | for (j = 0; j < nbSeries; j++) {
33 | unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]];
34 | }
35 | }
36 |
37 | return unpackedArray;
38 | };
39 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/arrow_down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/arrow_down_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/arrow_down_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/arrow_right_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/arrow_right_black.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/bootstrap.min.css:
--------------------------------------------------------------------------------
1 | .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
2 | .clearfix:after{clear:both;}
3 | .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
4 | .input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
5 | .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
6 | .tooltip.top{margin-top:-3px;}
7 | .tooltip.right{margin-left:3px;}
8 | .tooltip.bottom{margin-top:3px;}
9 | .tooltip.left{margin-left:-3px;}
10 | .tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
11 | .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
12 | .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
13 | .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
14 | .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
15 | .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
16 | .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;}
17 | .popover.right{margin-left:10px;}
18 | .popover.bottom{margin-top:10px;}
19 | .popover.left{margin-left:-10px;}
20 | .popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
21 | .popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;}
22 | .popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;}
23 | .popover .arrow:after{content:"";z-index:-1;}
24 | .popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;}
25 | .popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;}
26 | .popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;}
27 | .popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;}
28 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/cible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/cible.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/favicon.ico
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/fond-degrade.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/fond-degrade.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/fond-lueur.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/fond-lueur.gif
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/little_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/little_arrow_right.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/logo-gatling.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/logo-gatling.jpg
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/logo.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/sortable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/sortable.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/sorted-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/sorted-down.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/sorted-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/sorted-up.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/stat-fleche-bas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/stat-fleche-bas.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/stat-fond.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/stat-fond.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/stat-l-roue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/stat-l-roue.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/stat-l-temps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/perf-test-with-gatling/reports/gatling/bootloadsimulation-1520242453415/style/stat-l-temps.png
--------------------------------------------------------------------------------
/perf-test-with-gatling/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'perf-test-with-gatling'
2 |
3 |
--------------------------------------------------------------------------------
/perf-test-with-gatling/src/test/scala/BootLoadSimulation.scala:
--------------------------------------------------------------------------------
1 | import io.gatling.core.Predef._
2 | import io.gatling.http.Predef._
3 |
4 | class BootLoadSimulation extends Simulation {
5 |
6 | private val baseUrl = "http://localhost:8080"
7 | private val endpoint = "/persons"
8 | private val contentType = "application/json"
9 | private val requestCount = 4
10 |
11 | private val simUsers = System.getProperty("SIM_USERS", "1").toInt
12 |
13 | private val httpConf = http
14 | .baseURL(baseUrl)
15 | .acceptHeader("application/json;charset=UTF-8")
16 |
17 | private val addPersonTest = repeat(requestCount) {
18 | exec(http("add-person-test")
19 | .post(endpoint)
20 | .header("Content-Type", contentType)
21 | .body(StringBody(
22 | s"""
23 | | {
24 | | "firstName": "test-firstName",
25 | | "lastName": "test-lastName"
26 | | }
27 | """.stripMargin
28 | )).check(status.is(201)))
29 | }
30 | private val scn = scenario("BootLoadSimulation")
31 | .exec(addPersonTest)
32 |
33 | setUp(scn.inject(atOnceUsers(simUsers))).protocols(httpConf)
34 | }
35 |
--------------------------------------------------------------------------------
/person-registration-slow-service/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 |
4 | ### STS ###
5 | .apt_generated
6 | .classpath
7 | .factorypath
8 | .project
9 | .settings
10 | .springBeans
11 |
12 | ### IntelliJ IDEA ###
13 | .idea
14 | *.iws
15 | *.iml
16 | *.ipr
17 |
18 | ### NetBeans ###
19 | nbproject/private/
20 | build/
21 | nbbuild/
22 | dist/
23 | nbdist/
24 | .nb-gradle/
--------------------------------------------------------------------------------
/person-registration-slow-service/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/person-registration-slow-service/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/person-registration-slow-service/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
2 |
--------------------------------------------------------------------------------
/person-registration-slow-service/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | com.xyzz.gsdd
7 | person-registration-slow-service
8 | 0.0.1-SNAPSHOT
9 | jar
10 |
11 | person-registration-slow-service
12 | Demo project for Spring Boot
13 |
14 |
15 | org.springframework.boot
16 | spring-boot-starter-parent
17 | 2.0.0.RELEASE
18 |
19 |
20 |
21 |
22 | UTF-8
23 | UTF-8
24 | 1.8
25 | 1.2.20
26 |
27 |
28 |
29 |
30 | org.springframework.boot
31 | spring-boot-starter-webflux
32 |
33 |
34 | com.fasterxml.jackson.module
35 | jackson-module-kotlin
36 |
37 |
38 | org.jetbrains.kotlin
39 | kotlin-stdlib-jdk8
40 |
41 |
42 | org.jetbrains.kotlin
43 | kotlin-reflect
44 |
45 |
46 |
47 | org.springframework.boot
48 | spring-boot-starter-test
49 | test
50 |
51 |
52 | io.projectreactor
53 | reactor-test
54 | test
55 |
56 |
57 |
58 |
59 | ${project.basedir}/src/main/kotlin
60 | ${project.basedir}/src/test/kotlin
61 |
62 |
63 | org.springframework.boot
64 | spring-boot-maven-plugin
65 |
66 |
67 | kotlin-maven-plugin
68 | org.jetbrains.kotlin
69 |
70 |
71 | -Xjsr305=strict
72 |
73 |
74 | spring
75 |
76 |
77 |
78 |
79 | org.jetbrains.kotlin
80 | kotlin-maven-allopen
81 | ${kotlin.version}
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/person-registration-slow-service/src/main/kotlin/com/xyzz/gsdd/personregistrationslowservice/PersonRegistrationSlowServiceApplication.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.personregistrationslowservice
2 |
3 | import org.springframework.boot.autoconfigure.SpringBootApplication
4 | import org.springframework.boot.runApplication
5 |
6 | @SpringBootApplication
7 | class PersonRegistrationSlowServiceApplication
8 |
9 | fun main(args: Array) {
10 | runApplication(*args)
11 | }
12 |
--------------------------------------------------------------------------------
/person-registration-slow-service/src/main/kotlin/com/xyzz/gsdd/personregistrationslowservice/controllers/RegistrationController.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.personregistrationslowservice.controllers
2 |
3 | import com.xyzz.gsdd.personregistrationslowservice.models.Person
4 | import org.springframework.http.HttpStatus.CREATED
5 | import org.springframework.web.bind.annotation.PostMapping
6 | import org.springframework.web.bind.annotation.RequestBody
7 | import org.springframework.web.bind.annotation.ResponseStatus
8 | import org.springframework.web.bind.annotation.RestController
9 | import reactor.core.publisher.Mono
10 | import java.time.Duration
11 | import java.util.UUID
12 |
13 | @RestController("/register")
14 | class RegistrationController {
15 |
16 | @PostMapping
17 | @ResponseStatus(CREATED)
18 | fun register(@RequestBody person: Mono): Mono {
19 | return person.delayElement(Duration.ofMillis(200)) // Mimic blocking nature
20 | .map { it.copy(id = UUID.randomUUID()) }
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/person-registration-slow-service/src/main/kotlin/com/xyzz/gsdd/personregistrationslowservice/models/Person.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.personregistrationslowservice.models
2 |
3 | import java.util.UUID
4 |
5 | data class Person(val firstName: String, val lastName: String, val id: UUID? = null)
6 |
--------------------------------------------------------------------------------
/person-registration-slow-service/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | server.port=8090
2 |
--------------------------------------------------------------------------------
/person-registration-slow-service/src/test/kotlin/com/xyzz/gsdd/personregistrationslowservice/PersonRegistrationSlowServiceApplicationTests.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.personregistrationslowservice
2 |
3 | import org.junit.Test
4 | import org.junit.runner.RunWith
5 | import org.springframework.boot.test.context.SpringBootTest
6 | import org.springframework.test.context.junit4.SpringRunner
7 |
8 | @RunWith(SpringRunner::class)
9 | @SpringBootTest
10 | class PersonRegistrationSlowServiceApplicationTests {
11 |
12 | @Test
13 | fun contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/person-registration-slow-service/src/test/kotlin/com/xyzz/gsdd/personregistrationslowservice/controllers/RegistrationControllerTest.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.personregistrationslowservice.controllers
2 |
3 | import com.xyzz.gsdd.personregistrationslowservice.models.Person
4 | import org.junit.Test
5 | import org.junit.runner.RunWith
6 | import org.springframework.beans.factory.annotation.Autowired
7 | import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest
8 | import org.springframework.http.MediaType.APPLICATION_JSON_UTF8
9 | import org.springframework.test.context.junit4.SpringRunner
10 | import org.springframework.test.web.reactive.server.WebTestClient
11 | import org.springframework.web.reactive.function.BodyInserters
12 |
13 | @RunWith(SpringRunner::class)
14 | @WebFluxTest(controllers = [RegistrationController::class])
15 | class RegistrationControllerTest {
16 | @Autowired
17 | lateinit var webTestClient: WebTestClient
18 |
19 | @Test
20 | fun `should register a person`() {
21 | val person = Person("firstName", "secondName")
22 |
23 | webTestClient.post().uri("/register")
24 | .contentType(APPLICATION_JSON_UTF8)
25 | .accept(APPLICATION_JSON_UTF8)
26 | .body(BodyInserters.fromObject(person))
27 | .exchange()
28 | .expectStatus().isCreated
29 | .expectBody()
30 | .jsonPath("firstName").isEqualTo(person.firstName)
31 | .jsonPath("lastName").isEqualTo(person.lastName)
32 | .jsonPath("id").isNotEmpty
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 |
4 | ### STS ###
5 | .apt_generated
6 | .classpath
7 | .factorypath
8 | .project
9 | .settings
10 | .springBeans
11 |
12 | ### IntelliJ IDEA ###
13 | .idea
14 | *.iws
15 | *.iml
16 | *.ipr
17 |
18 | ### NetBeans ###
19 | nbproject/private/
20 | build/
21 | nbbuild/
22 | dist/
23 | nbdist/
24 | .nb-gradle/
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/sample-reactive-spring-boot-2/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
2 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | com.xyzz.gsdd
7 | sample-reactive-spring-boot-2
8 | 0.0.1-SNAPSHOT
9 | jar
10 |
11 | sample-reactive-spring-boot-2
12 | Demo project for Spring Boot
13 |
14 |
15 | org.springframework.boot
16 | spring-boot-starter-parent
17 | 2.0.0.RELEASE
18 |
19 |
20 |
21 |
22 | UTF-8
23 | UTF-8
24 | 1.8
25 | 1.2.20
26 |
27 |
28 |
29 |
30 | org.springframework.boot
31 | spring-boot-starter-webflux
32 |
33 |
34 | com.fasterxml.jackson.module
35 | jackson-module-kotlin
36 |
37 |
38 | org.jetbrains.kotlin
39 | kotlin-stdlib-jdk8
40 |
41 |
42 | org.jetbrains.kotlin
43 | kotlin-reflect
44 |
45 |
46 |
47 | org.springframework.boot
48 | spring-boot-starter-test
49 | test
50 |
51 |
52 | io.projectreactor
53 | reactor-test
54 | test
55 |
56 |
57 | com.github.tomakehurst
58 | wiremock-standalone
59 | 2.6.0
60 | test
61 |
62 |
63 |
64 |
65 | ${project.basedir}/src/main/kotlin
66 | ${project.basedir}/src/test/kotlin
67 |
68 |
69 | org.springframework.boot
70 | spring-boot-maven-plugin
71 |
72 |
73 | kotlin-maven-plugin
74 | org.jetbrains.kotlin
75 |
76 |
77 | -Xjsr305=strict
78 |
79 |
80 | spring
81 |
82 |
83 |
84 |
85 | org.jetbrains.kotlin
86 | kotlin-maven-allopen
87 | ${kotlin.version}
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/src/main/kotlin/com/xyzz/gsdd/samplereactivespringboot2/SampleReactiveSpringBoot2Application.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplereactivespringboot2
2 |
3 | import org.springframework.boot.autoconfigure.SpringBootApplication
4 | import org.springframework.boot.runApplication
5 |
6 | @SpringBootApplication
7 | class SampleReactiveSpringBoot2Application
8 |
9 | fun main(args: Array) {
10 | runApplication(*args)
11 | }
12 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/src/main/kotlin/com/xyzz/gsdd/samplereactivespringboot2/controllers/PersonController.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplereactivespringboot2.controllers
2 |
3 | import com.xyzz.gsdd.samplereactivespringboot2.models.Person
4 | import com.xyzz.gsdd.samplereactivespringboot2.services.PersonRegistrationService
5 | import org.springframework.beans.factory.annotation.Autowired
6 | import org.springframework.http.HttpStatus.CREATED
7 | import org.springframework.web.bind.annotation.PostMapping
8 | import org.springframework.web.bind.annotation.RequestBody
9 | import org.springframework.web.bind.annotation.ResponseStatus
10 | import org.springframework.web.bind.annotation.RestController
11 | import reactor.core.publisher.Mono
12 |
13 | @RestController("/persons")
14 | class PersonController {
15 | @Autowired
16 | lateinit var personRegistrationService: PersonRegistrationService
17 |
18 | @PostMapping
19 | @ResponseStatus(CREATED)
20 | fun addPerson(@RequestBody person: Person): Mono {
21 | return personRegistrationService.addPerson(person)
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/src/main/kotlin/com/xyzz/gsdd/samplereactivespringboot2/models/Person.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplereactivespringboot2.models
2 |
3 | import java.util.UUID
4 |
5 | data class Person(val firstName: String, val lastName: String, val id: UUID? = null)
6 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/src/main/kotlin/com/xyzz/gsdd/samplereactivespringboot2/services/PersonRegistrationService.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplereactivespringboot2.services
2 |
3 | import com.xyzz.gsdd.samplereactivespringboot2.models.Person
4 | import org.springframework.beans.factory.annotation.Value
5 | import org.springframework.http.HttpHeaders.ACCEPT
6 | import org.springframework.http.HttpHeaders.CONTENT_TYPE
7 | import org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE
8 | import org.springframework.stereotype.Service
9 | import org.springframework.web.reactive.function.BodyInserters.fromObject
10 | import org.springframework.web.reactive.function.client.WebClient
11 | import reactor.core.publisher.Mono
12 |
13 | @Service
14 | class PersonRegistrationService(@Value("\${registration.service}") private val registrationServiceBaseUrl: String) {
15 |
16 | private val webClient = WebClient.builder().baseUrl(registrationServiceBaseUrl).build()
17 |
18 | fun addPerson(person: Person): Mono {
19 | return webClient.post()
20 | .uri("/register")
21 | .header(CONTENT_TYPE, APPLICATION_JSON_UTF8_VALUE)
22 | .header(ACCEPT, APPLICATION_JSON_UTF8_VALUE)
23 | .body(fromObject(person))
24 | .exchange()
25 | .flatMap { it.bodyToMono(Person::class.java) }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | registration.service=http://localhost:8090
2 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/src/test/kotlin/com/xyzz/gsdd/samplereactivespringboot2/SampleReactiveSpringBoot2ApplicationTests.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplereactivespringboot2
2 |
3 | import org.junit.Test
4 | import org.junit.runner.RunWith
5 | import org.springframework.boot.test.context.SpringBootTest
6 | import org.springframework.test.context.junit4.SpringRunner
7 |
8 | @RunWith(SpringRunner::class)
9 | @SpringBootTest
10 | class SampleReactiveSpringBoot2ApplicationTests {
11 |
12 | @Test
13 | fun contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/src/test/kotlin/com/xyzz/gsdd/samplereactivespringboot2/controllers/PersonControllerTest.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplereactivespringboot2.controllers
2 |
3 | import com.xyzz.gsdd.samplereactivespringboot2.models.Person
4 | import org.junit.Before
5 | import org.junit.Test
6 | import org.junit.runner.RunWith
7 | import org.springframework.boot.test.context.SpringBootTest
8 | import org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT
9 | import org.springframework.boot.web.server.LocalServerPort
10 | import org.springframework.http.HttpStatus.CREATED
11 | import org.springframework.http.MediaType.APPLICATION_JSON_UTF8
12 | import org.springframework.test.context.junit4.SpringRunner
13 | import org.springframework.web.reactive.function.client.WebClient
14 | import reactor.core.publisher.Mono
15 | import reactor.test.test
16 |
17 | @RunWith(SpringRunner::class)
18 | @SpringBootTest(webEnvironment = RANDOM_PORT)
19 | class PersonControllerTest {
20 | @LocalServerPort
21 | var port: Int? = null
22 |
23 | lateinit var webClient: WebClient
24 |
25 | @Before
26 | fun setUp() {
27 | webClient = WebClient.create("http://localhost:$port")
28 | }
29 |
30 | @Test
31 | fun `should add a Person`() {
32 | val person = Person("firstName", "lastName")
33 |
34 | webClient.post().uri("/persons")
35 | .accept(APPLICATION_JSON_UTF8)
36 | .body(Mono.just(person), Person::class.java)
37 | .exchange()
38 | .map { it.statusCode() }
39 | .test()
40 | .expectNext(CREATED)
41 | .verifyComplete()
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/sample-reactive-spring-boot-2/src/test/kotlin/com/xyzz/gsdd/samplereactivespringboot2/services/PersonRegistrationServiceTest.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplereactivespringboot2.services
2 |
3 | import com.github.tomakehurst.wiremock.client.WireMock.aResponse
4 | import com.github.tomakehurst.wiremock.client.WireMock.matching
5 | import com.github.tomakehurst.wiremock.client.WireMock.matchingJsonPath
6 | import com.github.tomakehurst.wiremock.client.WireMock.post
7 | import com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor
8 | import com.github.tomakehurst.wiremock.client.WireMock.stubFor
9 | import com.github.tomakehurst.wiremock.client.WireMock.urlMatching
10 | import com.github.tomakehurst.wiremock.client.WireMock.verify
11 | import com.github.tomakehurst.wiremock.junit.WireMockRule
12 | import com.xyzz.gsdd.samplereactivespringboot2.models.Person
13 | import org.junit.Rule
14 | import org.junit.Test
15 | import org.junit.runner.RunWith
16 | import org.springframework.beans.factory.annotation.Autowired
17 | import org.springframework.boot.test.context.SpringBootTest
18 | import org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE
19 | import org.springframework.test.context.junit4.SpringRunner
20 | import reactor.test.test
21 | import java.util.Objects.isNull
22 |
23 | @RunWith(SpringRunner::class)
24 | @SpringBootTest
25 | class PersonRegistrationServiceTest {
26 |
27 | @Autowired
28 | private lateinit var personRegistrationService: PersonRegistrationService
29 |
30 | @get:Rule
31 | val wireMockRule = WireMockRule(8090)
32 |
33 | @Test
34 | fun `should call registrationService`() {
35 | val person = Person("firstName", "lastName")
36 | stubFor(post("/register")
37 | .willReturn(
38 | aResponse()
39 | .withHeader("Content-Type", APPLICATION_JSON_UTF8_VALUE)
40 | .withBody("""{
41 | | "firstName": "${person.firstName}",
42 | | "lastName": "${person.lastName}",
43 | | "id": "ee0495d7-348f-44fc-968c-1d03104c0456"
44 | |}
45 | """.trimMargin())
46 | ))
47 |
48 | personRegistrationService.addPerson(person)
49 | .test()
50 | .assertNext {
51 | it.firstName.equals(person.firstName) && it.lastName.equals(person.lastName) && !isNull(it.id)
52 | }
53 | .verifyComplete()
54 |
55 | verify(postRequestedFor(urlMatching("/register"))
56 | .withRequestBody(matchingJsonPath("firstName"))
57 | .withRequestBody(matchingJsonPath("lastName"))
58 | .withHeader("Content-Type", matching(APPLICATION_JSON_UTF8_VALUE)))
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 |
4 | ### STS ###
5 | .apt_generated
6 | .classpath
7 | .factorypath
8 | .project
9 | .settings
10 | .springBeans
11 |
12 | ### IntelliJ IDEA ###
13 | .idea
14 | *.iws
15 | *.iml
16 | *.ipr
17 |
18 | ### NetBeans ###
19 | nbproject/private/
20 | build/
21 | nbbuild/
22 | dist/
23 | nbdist/
24 | .nb-gradle/
--------------------------------------------------------------------------------
/sample-spring-boot-1/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/sample-spring-boot-1/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/sample-spring-boot-1/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
2 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | com.xyzz.gsdd
7 | sample-spring-boot-1
8 | 0.0.1-SNAPSHOT
9 | jar
10 |
11 | sample-spring-boot-1
12 | Demo project for Spring Boot
13 |
14 |
15 | org.springframework.boot
16 | spring-boot-starter-parent
17 | 1.5.10.RELEASE
18 |
19 |
20 |
21 |
22 | UTF-8
23 | UTF-8
24 | 1.8
25 | 1.2.20
26 |
27 |
28 |
29 |
30 | org.springframework.boot
31 | spring-boot-starter-web
32 |
33 |
34 | com.fasterxml.jackson.module
35 | jackson-module-kotlin
36 | 2.9.2
37 |
38 |
39 | org.jetbrains.kotlin
40 | kotlin-stdlib-jdk8
41 | ${kotlin.version}
42 |
43 |
44 | org.jetbrains.kotlin
45 | kotlin-reflect
46 | ${kotlin.version}
47 |
48 |
49 |
50 | org.springframework.boot
51 | spring-boot-starter-test
52 | test
53 |
54 |
55 | com.github.tomakehurst
56 | wiremock-standalone
57 | 2.6.0
58 | test
59 |
60 |
61 |
62 |
63 | ${project.basedir}/src/main/kotlin
64 | ${project.basedir}/src/test/kotlin
65 |
66 |
67 | org.springframework.boot
68 | spring-boot-maven-plugin
69 |
70 |
71 | kotlin-maven-plugin
72 | org.jetbrains.kotlin
73 | ${kotlin.version}
74 |
75 |
76 | -Xjsr305=strict
77 |
78 |
79 | spring
80 |
81 | 1.8
82 |
83 |
84 |
85 | compile
86 | compile
87 |
88 | compile
89 |
90 |
91 |
92 | test-compile
93 | test-compile
94 |
95 | test-compile
96 |
97 |
98 |
99 |
100 |
101 | org.jetbrains.kotlin
102 | kotlin-maven-allopen
103 | ${kotlin.version}
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/src/main/kotlin/com/xyzz/gsdd/samplespringboot1/SampleSpringBoot1Application.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot1
2 |
3 | import org.springframework.boot.SpringApplication
4 | import org.springframework.boot.autoconfigure.SpringBootApplication
5 |
6 | @SpringBootApplication
7 | class SampleSpringBoot1Application
8 |
9 | fun main(args: Array) {
10 | SpringApplication.run(SampleSpringBoot1Application::class.java, *args)
11 | }
12 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/src/main/kotlin/com/xyzz/gsdd/samplespringboot1/controllers/PersonController.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot1.controllers
2 |
3 | import com.xyzz.gsdd.samplespringboot1.models.Person
4 | import com.xyzz.gsdd.samplespringboot1.services.PersonRegistrationService
5 | import org.springframework.beans.factory.annotation.Autowired
6 | import org.springframework.http.HttpStatus.CREATED
7 | import org.springframework.web.bind.annotation.PostMapping
8 | import org.springframework.web.bind.annotation.RequestBody
9 | import org.springframework.web.bind.annotation.ResponseStatus
10 | import org.springframework.web.bind.annotation.RestController
11 |
12 | @RestController("/persons")
13 | class PersonController {
14 | @Autowired
15 | lateinit var personRegistrationService: PersonRegistrationService
16 |
17 | @PostMapping
18 | @ResponseStatus(CREATED)
19 | fun addPerson(@RequestBody person: Person): Person {
20 | return personRegistrationService.addPerson(person)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/src/main/kotlin/com/xyzz/gsdd/samplespringboot1/models/Person.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot1.models
2 |
3 | import java.util.UUID
4 |
5 | data class Person(val firstName: String, val lastName: String, val id:UUID? = null)
6 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/src/main/kotlin/com/xyzz/gsdd/samplespringboot1/services/PersonRegistrationService.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot1.services
2 |
3 | import com.xyzz.gsdd.samplespringboot1.models.Person
4 | import org.springframework.beans.factory.annotation.Value
5 | import org.springframework.boot.web.client.RestTemplateBuilder
6 | import org.springframework.http.HttpEntity
7 | import org.springframework.stereotype.Service
8 |
9 | @Service
10 | class PersonRegistrationService(restTemplateBuilder: RestTemplateBuilder) {
11 | @Value("\${registration.service}")
12 | private lateinit var registrationServiceEndpoint: String
13 |
14 | private val restTemplate = restTemplateBuilder.build()
15 |
16 | fun addPerson(person: Person): Person {
17 | val nullablePerson = restTemplate.postForEntity("$registrationServiceEndpoint/register", HttpEntity(person),
18 | Person::class.java)
19 | return nullablePerson.body ?: person
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | registration.service=http://localhost:8090
2 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/src/test/kotlin/com/xyzz/gsdd/samplespringboot1/SampleSpringBoot1ApplicationTests.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot1
2 |
3 | import org.junit.Test
4 | import org.junit.runner.RunWith
5 | import org.springframework.boot.test.context.SpringBootTest
6 | import org.springframework.test.context.junit4.SpringRunner
7 |
8 | @RunWith(SpringRunner::class)
9 | @SpringBootTest
10 | class SampleSpringBoot1ApplicationTests {
11 |
12 | @Test
13 | fun contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/src/test/kotlin/com/xyzz/gsdd/samplespringboot1/controllers/PersonControllerTest.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot1.controllers
2 |
3 | import com.fasterxml.jackson.databind.ObjectMapper
4 | import com.fasterxml.jackson.module.kotlin.readValue
5 | import com.xyzz.gsdd.samplespringboot1.models.Person
6 | import org.assertj.core.api.Assertions.assertThat
7 | import org.junit.Test
8 | import org.junit.runner.RunWith
9 | import org.springframework.beans.factory.annotation.Autowired
10 | import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
11 | import org.springframework.http.MediaType.APPLICATION_JSON_UTF8
12 | import org.springframework.test.context.junit4.SpringRunner
13 | import org.springframework.test.web.servlet.MockMvc
14 | import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
15 | import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status
16 |
17 | @RunWith(SpringRunner::class)
18 | @WebMvcTest(controllers = [(PersonController::class)])
19 | class PersonControllerTest {
20 | @Autowired
21 | lateinit var mockMvc: MockMvc
22 | @Autowired
23 | lateinit var mapper: ObjectMapper
24 |
25 | @Test
26 | fun `adds a Person`() {
27 | val person = Person("firstName", "lastName")
28 |
29 | val result = mockMvc.perform(post("/persons")
30 | .content(mapper.writeValueAsString(person))
31 | .contentType(APPLICATION_JSON_UTF8)
32 | .accept(APPLICATION_JSON_UTF8))
33 | .andExpect(status().isCreated)
34 | .andReturn()
35 |
36 | val addedPerson = mapper.readValue(result.response.contentAsString)
37 | assertThat(addedPerson.firstName).isEqualTo(person.firstName)
38 | assertThat(addedPerson.lastName).isEqualTo(person.lastName)
39 | assertThat(addedPerson.id).isNotNull()
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/sample-spring-boot-1/src/test/kotlin/com/xyzz/gsdd/samplespringboot1/services/PersonRegistrationServiceTest.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot1.services
2 |
3 | import com.github.tomakehurst.wiremock.client.WireMock.aResponse
4 | import com.github.tomakehurst.wiremock.client.WireMock.post
5 | import com.github.tomakehurst.wiremock.client.WireMock.stubFor
6 | import com.github.tomakehurst.wiremock.junit.WireMockRule
7 | import com.xyzz.gsdd.samplespringboot1.models.Person
8 | import org.assertj.core.api.Assertions.assertThat
9 | import org.junit.Before
10 | import org.junit.Rule
11 | import org.junit.Test
12 | import org.junit.runner.RunWith
13 | import org.springframework.beans.factory.annotation.Autowired
14 | import org.springframework.boot.test.context.SpringBootTest
15 | import org.springframework.boot.web.client.RestTemplateBuilder
16 | import org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE
17 | import org.springframework.test.context.junit4.SpringRunner
18 | import org.springframework.web.client.RestTemplate
19 |
20 |
21 | @RunWith(SpringRunner::class)
22 | @SpringBootTest
23 | class PersonRegistrationServiceTest {
24 | @Autowired
25 | private lateinit var personRegistrationService: PersonRegistrationService
26 |
27 | private lateinit var restTemplate: RestTemplate
28 |
29 | @get:Rule
30 | val wireMockRule = WireMockRule(8090)
31 |
32 | @Before
33 | fun setUp() {
34 | restTemplate = RestTemplateBuilder().build()
35 | }
36 |
37 | @Test
38 | fun `should call registrationService`() {
39 | val person = Person("firstName", "lastName")
40 | stubFor(post("/register")
41 | .willReturn(
42 | aResponse()
43 | .withHeader("Content-Type", APPLICATION_JSON_UTF8_VALUE)
44 | .withBody("""{
45 | | "firstName": "${person.firstName}",
46 | | "lastName": "${person.lastName}",
47 | | "id": "ee0495d7-348f-44fc-968c-1d03104c0456"
48 | |}
49 | """.trimMargin())
50 | ))
51 |
52 | val result = personRegistrationService.addPerson(person)
53 |
54 | assertThat(result.firstName).isEqualTo(person.firstName)
55 | assertThat(result.lastName).isEqualTo(person.lastName)
56 | assertThat(result.id).isNotNull()
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 |
4 | ### STS ###
5 | .apt_generated
6 | .classpath
7 | .factorypath
8 | .project
9 | .settings
10 | .springBeans
11 |
12 | ### IntelliJ IDEA ###
13 | .idea
14 | *.iws
15 | *.iml
16 | *.ipr
17 |
18 | ### NetBeans ###
19 | nbproject/private/
20 | build/
21 | nbbuild/
22 | dist/
23 | nbdist/
24 | .nb-gradle/
--------------------------------------------------------------------------------
/sample-spring-boot-2/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raj-saxena/spring-boot-1-vs-2-performance/4a1867e145c8e5abb77b350fa400330380e619ee/sample-spring-boot-2/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/sample-spring-boot-2/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
2 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | com.xyzz.gsdd
7 | sample-spring-boot-2
8 | 0.0.1-SNAPSHOT
9 | jar
10 |
11 | sample-spring-boot-2
12 | Demo project for Spring Boot
13 |
14 |
15 | org.springframework.boot
16 | spring-boot-starter-parent
17 | 2.0.0.RELEASE
18 |
19 |
20 |
21 |
22 | UTF-8
23 | UTF-8
24 | 1.8
25 | 1.2.20
26 |
27 |
28 |
29 |
30 | org.springframework.boot
31 | spring-boot-starter-web
32 |
33 |
34 | com.fasterxml.jackson.module
35 | jackson-module-kotlin
36 |
37 |
38 | org.jetbrains.kotlin
39 | kotlin-stdlib-jdk8
40 |
41 |
42 | org.jetbrains.kotlin
43 | kotlin-reflect
44 |
45 |
46 |
47 | org.springframework.boot
48 | spring-boot-starter-test
49 | test
50 |
51 |
52 | com.github.tomakehurst
53 | wiremock-standalone
54 | 2.6.0
55 | test
56 |
57 |
58 |
59 |
60 | ${project.basedir}/src/main/kotlin
61 | ${project.basedir}/src/test/kotlin
62 |
63 |
64 | org.springframework.boot
65 | spring-boot-maven-plugin
66 |
67 |
68 | kotlin-maven-plugin
69 | org.jetbrains.kotlin
70 |
71 |
72 | -Xjsr305=strict
73 |
74 |
75 | spring
76 |
77 |
78 |
79 |
80 | org.jetbrains.kotlin
81 | kotlin-maven-allopen
82 | ${kotlin.version}
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/src/main/kotlin/com/xyzz/gsdd/samplespringboot2/SampleSpringBoot2Application.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot2
2 |
3 | import org.springframework.boot.autoconfigure.SpringBootApplication
4 | import org.springframework.boot.runApplication
5 |
6 | @SpringBootApplication
7 | class SampleSpringBoot2Application
8 |
9 | fun main(args: Array) {
10 | runApplication(*args)
11 | }
12 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/src/main/kotlin/com/xyzz/gsdd/samplespringboot2/controllers/PersonController.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot2.controllers
2 |
3 | import com.xyzz.gsdd.samplespringboot2.models.Person
4 | import com.xyzz.gsdd.samplespringboot2.services.PersonRegistrationService
5 | import org.springframework.beans.factory.annotation.Autowired
6 | import org.springframework.http.HttpStatus.CREATED
7 | import org.springframework.web.bind.annotation.PostMapping
8 | import org.springframework.web.bind.annotation.RequestBody
9 | import org.springframework.web.bind.annotation.ResponseStatus
10 | import org.springframework.web.bind.annotation.RestController
11 |
12 | @RestController("/persons")
13 | class PersonController {
14 | @Autowired
15 | lateinit var personRegistrationService: PersonRegistrationService
16 |
17 | @PostMapping
18 | @ResponseStatus(CREATED)
19 | fun addPerson(@RequestBody person: Person): Person {
20 | return personRegistrationService.addPerson(person)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/src/main/kotlin/com/xyzz/gsdd/samplespringboot2/models/Person.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot2.models
2 |
3 | import java.util.UUID
4 |
5 | data class Person(val firstName: String, val lastName: String, val id:UUID? = null)
6 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/src/main/kotlin/com/xyzz/gsdd/samplespringboot2/services/PersonRegistrationService.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot2.services
2 |
3 | import com.xyzz.gsdd.samplespringboot2.models.Person
4 | import org.springframework.beans.factory.annotation.Value
5 | import org.springframework.boot.web.client.RestTemplateBuilder
6 | import org.springframework.http.HttpEntity
7 | import org.springframework.stereotype.Service
8 |
9 | @Service
10 | class PersonRegistrationService(restTemplateBuilder: RestTemplateBuilder) {
11 | @Value("\${registration.service}")
12 | private lateinit var registrationServiceEndpoint: String
13 |
14 | private val restTemplate = restTemplateBuilder.build()
15 |
16 | fun addPerson(person: Person): Person {
17 | val nullablePerson = restTemplate.postForEntity("$registrationServiceEndpoint/register", HttpEntity(person),
18 | Person::class.java)
19 | return nullablePerson.body ?: person
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | registration.service=http://localhost:8090
2 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/src/test/kotlin/com/xyzz/gsdd/samplespringboot2/SampleSpringBoot2ApplicationTests.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot2
2 |
3 | import org.junit.Test
4 | import org.junit.runner.RunWith
5 | import org.springframework.boot.test.context.SpringBootTest
6 | import org.springframework.test.context.junit4.SpringRunner
7 |
8 | @RunWith(SpringRunner::class)
9 | @SpringBootTest
10 | class SampleSpringBoot2ApplicationTests {
11 |
12 | @Test
13 | fun contextLoads() {
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/src/test/kotlin/com/xyzz/gsdd/samplespringboot2/controllers/PersonControllerTest.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot2.controllers
2 |
3 | import com.fasterxml.jackson.databind.ObjectMapper
4 | import com.fasterxml.jackson.module.kotlin.readValue
5 | import com.xyzz.gsdd.samplespringboot2.models.Person
6 | import com.xyzz.gsdd.samplespringboot2.services.PersonRegistrationService
7 | import org.assertj.core.api.Assertions.assertThat
8 | import org.junit.Test
9 | import org.junit.runner.RunWith
10 | import org.mockito.BDDMockito.given
11 | import org.springframework.beans.factory.annotation.Autowired
12 | import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
13 | import org.springframework.boot.test.mock.mockito.MockBean
14 | import org.springframework.http.MediaType.APPLICATION_JSON_UTF8
15 | import org.springframework.test.context.junit4.SpringRunner
16 | import org.springframework.test.web.servlet.MockMvc
17 | import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
18 | import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status
19 | import java.util.UUID
20 |
21 | @RunWith(SpringRunner::class)
22 | @WebMvcTest(controllers = [(PersonController::class)])
23 | class PersonControllerTest {
24 | @MockBean
25 | lateinit var personRegistrationService: PersonRegistrationService
26 |
27 | @Autowired
28 | lateinit var mockMvc: MockMvc
29 | @Autowired
30 | lateinit var mapper: ObjectMapper
31 |
32 | @Test
33 | fun `adds a Person`() {
34 | val person = Person("firstName", "lastName")
35 | given(personRegistrationService.addPerson(person)).willReturn(person.copy(id = UUID.randomUUID()))
36 |
37 | val result = mockMvc.perform(post("/persons")
38 | .content(mapper.writeValueAsString(person))
39 | .contentType(APPLICATION_JSON_UTF8)
40 | .accept(APPLICATION_JSON_UTF8))
41 | .andExpect(status().isCreated)
42 | .andReturn()
43 |
44 | val addedPerson = mapper.readValue(result.response.contentAsString)
45 | assertThat(addedPerson.firstName).isEqualTo(person.firstName)
46 | assertThat(addedPerson.lastName).isEqualTo(person.lastName)
47 | assertThat(addedPerson.id).isNotNull()
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/sample-spring-boot-2/src/test/kotlin/com/xyzz/gsdd/samplespringboot2/services/PersonRegistrationServiceTest.kt:
--------------------------------------------------------------------------------
1 | package com.xyzz.gsdd.samplespringboot2.services
2 |
3 | import com.github.tomakehurst.wiremock.client.WireMock.aResponse
4 | import com.github.tomakehurst.wiremock.client.WireMock.matching
5 | import com.github.tomakehurst.wiremock.client.WireMock.matchingJsonPath
6 | import com.github.tomakehurst.wiremock.client.WireMock.post
7 | import com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor
8 | import com.github.tomakehurst.wiremock.client.WireMock.stubFor
9 | import com.github.tomakehurst.wiremock.client.WireMock.urlMatching
10 | import com.github.tomakehurst.wiremock.client.WireMock.verify
11 | import com.github.tomakehurst.wiremock.junit.WireMockRule
12 | import com.xyzz.gsdd.samplespringboot2.models.Person
13 | import org.assertj.core.api.Assertions.assertThat
14 | import org.junit.Rule
15 | import org.junit.Test
16 | import org.junit.runner.RunWith
17 | import org.springframework.beans.factory.annotation.Autowired
18 | import org.springframework.boot.test.context.SpringBootTest
19 | import org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE
20 | import org.springframework.test.context.junit4.SpringRunner
21 |
22 |
23 | @RunWith(SpringRunner::class)
24 | @SpringBootTest
25 | class PersonRegistrationServiceTest {
26 | @Autowired
27 | private lateinit var personRegistrationService: PersonRegistrationService
28 |
29 | @get:Rule
30 | val wireMockRule = WireMockRule(8090)
31 |
32 | @Test
33 | fun `should call registrationService`() {
34 | val person = Person("firstName", "lastName")
35 | stubFor(post("/register")
36 | .willReturn(
37 | aResponse()
38 | .withHeader("Content-Type", APPLICATION_JSON_UTF8_VALUE)
39 | .withBody("""{
40 | | "firstName": "${person.firstName}",
41 | | "lastName": "${person.lastName}",
42 | | "id": "ee0495d7-348f-44fc-968c-1d03104c0456"
43 | |}
44 | """.trimMargin())
45 | ))
46 |
47 | val result = personRegistrationService.addPerson(person)
48 |
49 | assertThat(result.firstName).isEqualTo(person.firstName)
50 | assertThat(result.lastName).isEqualTo(person.lastName)
51 | assertThat(result.id).isNotNull()
52 |
53 | verify(postRequestedFor(urlMatching("/register"))
54 | .withRequestBody(matchingJsonPath("firstName"))
55 | .withRequestBody(matchingJsonPath("lastName"))
56 | .withHeader("Content-Type", matching(APPLICATION_JSON_UTF8_VALUE)))
57 | }
58 | }
59 |
--------------------------------------------------------------------------------