diff --git a/gatling-loadtest-demo/.cache-tests b/gatling-loadtest-demo/.cache-tests
new file mode 100644
index 0000000000..31b0015eef
--- /dev/null
+++ b/gatling-loadtest-demo/.cache-tests
@@ -0,0 +1,166 @@
+format version: 5
+output mode:
+1 items
+0 -> multiple
+output directories:
+2 items
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\resources -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes
+compile options:
+8 items
+0 -> -javabootclasspath
+1 -> C:\develop\Java\jdk1.8.0_77\jre\lib\resources.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\rt.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\jsse.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\jce.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\charsets.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\jfr.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\access-bridge-64.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\cldrdata.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\dnsns.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\jaccess.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\jfxrt.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\localedata.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\nashorn.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\sunec.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\sunjce_provider.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\sunmscapi.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\sunpkcs11.jar;C:\develop\Java\jdk1.8.0_77\jre\lib\ext\zipfs.jar
+2 -> -javaextdirs
+3 ->
+4 -> -bootclasspath
+5 -> C:\develop\IDE\sts-bundle\sts-3.7.3.RELEASE\plugins\org.scala-lang.scala-library_2.11.8.v20160304-115712-1706a37eb8.jar
+6 -> -encoding
+7 -> UTF-8
+javac options:
+0 items
+compiler version:
+1 items
+0 -> 2.11.8
+compile order:
+1 items
+0 -> Mixed
+name hashing:
+1 items
+0 -> false
+products:
+9 items
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Engine$.class
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Engine$delayedInit$body.class
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Engine.class
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\IDEPathHelper$.class
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\IDEPathHelper.class
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\org\baeldung\RecordedSimulation.class
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Recorder$.class
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Recorder$delayedInit$body.class
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Recorder.class
+binary dependencies:
+15 items
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-app\2.2.0\gatling-app-2.2.0.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-core\2.2.0\gatling-core-2.2.0.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> C:\develop\IDE\sts-bundle\sts-3.7.3.RELEASE\plugins\org.scala-lang.scala-library_2.11.8.v20160304-115712-1706a37eb8.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> C:\develop\Java\jdk1.8.0_77\jre\lib\rt.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala -> C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-commons\2.2.0\gatling-commons-2.2.0.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala -> C:\develop\Java\jdk1.8.0_77\jre\lib\rt.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala -> C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-commons\2.2.0\gatling-commons-2.2.0.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala -> C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-core\2.2.0\gatling-core-2.2.0.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala -> C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-http\2.2.0\gatling-http-2.2.0.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala -> C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-jdbc\2.2.0\gatling-jdbc-2.2.0.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala -> C:\develop\IDE\sts-bundle\sts-3.7.3.RELEASE\plugins\org.scala-lang.scala-library_2.11.8.v20160304-115712-1706a37eb8.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala -> C:\develop\Java\jdk1.8.0_77\jre\lib\rt.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-recorder\2.2.0\gatling-recorder-2.2.0.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> C:\develop\IDE\sts-bundle\sts-3.7.3.RELEASE\plugins\org.scala-lang.scala-library_2.11.8.v20160304-115712-1706a37eb8.jar
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> C:\develop\Java\jdk1.8.0_77\jre\lib\rt.jar
+direct source dependencies:
+2 items
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala
+direct external dependencies:
+0 items
+public inherited source dependencies:
+0 items
+public inherited external dependencies:
+0 items
+member reference internal dependencies:
+0 items
+member reference external dependencies:
+0 items
+inheritance internal dependencies:
+0 items
+inheritance external dependencies:
+0 items
+class names:
+9 items
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> Engine
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> Engine$
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> Engine$delayedInit$body
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala -> IDEPathHelper
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala -> IDEPathHelper$
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala -> org.baeldung.RecordedSimulation
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> Recorder
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> Recorder$
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> Recorder$delayedInit$body
+used names:
+0 items
+product stamps:
+9 items
+C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Engine$.class -> lastModified(1464356690978)
+C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Engine$delayedInit$body.class -> lastModified(1464356690989)
+C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Engine.class -> lastModified(1464356690863)
+C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\IDEPathHelper$.class -> lastModified(1464356691030)
+C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\IDEPathHelper.class -> lastModified(1464356691005)
+C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\org\baeldung\RecordedSimulation.class -> lastModified(1464356691072)
+C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Recorder$.class -> lastModified(1464356691045)
+C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Recorder$delayedInit$body.class -> lastModified(1464356691049)
+C:\develop\git\tutorials\gatling-loadtest-demo\target\test-classes\Recorder.class -> lastModified(1464356691034)
+source stamps:
+4 items
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala -> hash(e98bacf89a84be65d2a131fa7e072d4f6ebef89d)
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala -> hash(20255b66020a40c67db52f8248fab7e3250fc940)
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala -> hash(1d4aab935ed26aa3fee62aff5bc9d1d2dbc3f776)
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala -> hash(667da8a9d712f988ed7b14bdfa7b293c76ac3b61)
+binary stamps:
+8 items
+C:\develop\IDE\sts-bundle\sts-3.7.3.RELEASE\plugins\org.scala-lang.scala-library_2.11.8.v20160304-115712-1706a37eb8.jar -> lastModified(1463581376873)
+C:\develop\Java\jdk1.8.0_77\jre\lib\rt.jar -> lastModified(1460466041763)
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-app\2.2.0\gatling-app-2.2.0.jar -> lastModified(1463577683111)
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-commons\2.2.0\gatling-commons-2.2.0.jar -> lastModified(1463577434095)
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-core\2.2.0\gatling-core-2.2.0.jar -> lastModified(1463577425041)
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-http\2.2.0\gatling-http-2.2.0.jar -> lastModified(1463577691216)
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-jdbc\2.2.0\gatling-jdbc-2.2.0.jar -> lastModified(1463577767127)
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-recorder\2.2.0\gatling-recorder-2.2.0.jar -> lastModified(1463577812366)
+class names:
+8 items
+C:\develop\IDE\sts-bundle\sts-3.7.3.RELEASE\plugins\org.scala-lang.scala-library_2.11.8.v20160304-115712-1706a37eb8.jar -> scala.reflect.ClassTag$
+C:\develop\Java\jdk1.8.0_77\jre\lib\rt.jar -> java.lang.Object
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-app\2.2.0\gatling-app-2.2.0.jar -> io.gatling.app.Gatling$
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-commons\2.2.0\gatling-commons-2.2.0.jar -> io.gatling.commons.util.TypeCaster$
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-core\2.2.0\gatling-core-2.2.0.jar -> io.gatling.core.scenario.Simulation
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-http\2.2.0\gatling-http-2.2.0.jar -> io.gatling.http.protocol.HttpProtocolBuilder
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-jdbc\2.2.0\gatling-jdbc-2.2.0.jar -> io.gatling.jdbc.Predef$
+C:\Users\Ivan Paolillo\.m2\repository\io\gatling\gatling-recorder\2.2.0\gatling-recorder-2.2.0.jar -> io.gatling.recorder.GatlingRecorder$
+internal apis:
+4 items
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala ->
+rO0ABXNyABB4c2J0aS5hcGkuU291cmNlFlpwRASfbtoCAAZJAAdhcGlIYXNoWgAIaGFzTWFjcm9MABhfaW50ZXJuYWxPbmx5X25hbWVIYXNoZXN0ACRMeHNidGkvYXBpL19pbnRlcm5hbE9ubHlfTmFtZUhhc2hlcztMAANhcGl0ABVMeHNidGkvYXBpL1NvdXJjZUFQSTtMAAtjb21waWxhdGlvbnQAF0x4c2J0aS9hcGkvQ29tcGlsYXRpb247WwAEaGFzaHQAAltCeHA7lBuUAHNyACJ4c2J0aS5hcGkuX2ludGVybmFsT25seV9OYW1lSGFzaGVzVNq+mfrU7EwCAAJbAA9pbXBsaWNpdE1lbWJlcnN0ACNbTHhzYnRpL2FwaS9faW50ZXJuYWxPbmx5X05hbWVIYXNoO1sADnJlZ3VsYXJNZW1iZXJzcQB+AAd4cHVyACNbTHhzYnRpLmFwaS5faW50ZXJuYWxPbmx5X05hbWVIYXNoO0lagLbdlov0AgAAeHAAAAAAdXEAfgAJAAAAAHNyABN4c2J0aS5hcGkuU291cmNlQVBJuV6n+SkjOKQCAAJbAAtkZWZpbml0aW9uc3QAF1tMeHNidGkvYXBpL0RlZmluaXRpb247WwAIcGFja2FnZXN0ABRbTHhzYnRpL2FwaS9QYWNrYWdlO3hwdXIAF1tMeHNidGkuYXBpLkRlZmluaXRpb247iMlc57TjXg4CAAB4cAAAAAFzcgATeHNidGkuYXBpLkNsYXNzTGlrZYM0HKHfsJdsAgAETAAOZGVmaW5pdGlvblR5cGV0ABpMeHNidGkvYXBpL0RlZmluaXRpb25UeXBlO1sAEHNhdmVkQW5ub3RhdGlvbnN0ABNbTGphdmEvbGFuZy9TdHJpbmc7TAAIc2VsZlR5cGV0ABBMeHNidGkvYXBpL0xhenk7TAAJc3RydWN0dXJlcQB+ABV4cgAheHNidGkuYXBpLlBhcmFtZXRlcml6ZWREZWZpbml0aW9u+RFusdVQPOICAAFbAA50eXBlUGFyYW1ldGVyc3QAGltMeHNidGkvYXBpL1R5cGVQYXJhbWV0ZXI7eHIAFHhzYnRpLmFwaS5EZWZpbml0aW9uhyob6HFC40YCAARMAAZhY2Nlc3N0ABJMeHNidGkvYXBpL0FjY2VzcztbAAthbm5vdGF0aW9uc3QAF1tMeHNidGkvYXBpL0Fubm90YXRpb247TAAJbW9kaWZpZXJzdAAVTHhzYnRpL2FwaS9Nb2RpZmllcnM7TAAEbmFtZXQAEkxqYXZhL2xhbmcvU3RyaW5nO3hwc3IAEHhzYnRpLmFwaS5QdWJsaWO6WD2ubC1gQgIAAHhyABB4c2J0aS5hcGkuQWNjZXNz3WKa+B1jMUgCAAB4cHVyABdbTHhzYnRpLmFwaS5Bbm5vdGF0aW9uO+uX6xkQ9o1IAgAAeHAAAAAAc3IAE3hzYnRpLmFwaS5Nb2RpZmllcnPHERMhaZzcJAIAAUIABWZsYWdzeHAAdAAGRW5naW5ldXIAGltMeHNidGkuYXBpLlR5cGVQYXJhbWV0ZXI72W0mDyid8rYCAAB4cAAAAAB+cgAYeHNidGkuYXBpLkRlZmluaXRpb25UeXBlAAAAAAAAAAASAAB4cgAOamF2YS5sYW5nLkVudW0AAAAAAAAAABIAAHhwdAAGTW9kdWxldXIAE1tMamF2YS5sYW5nLlN0cmluZzut0lbn6R17RwIAAHhwAAAAAnQAEHNjYWxhLmRlcHJlY2F0ZWR0ABpzY2FsYS5kZXByZWNhdGVkT3ZlcnJpZGluZ3NyABN4c2J0aS5TYWZlTGF6eSRJbXBsO5FPEfRFTMkCAANaAAhiaXRtYXAkMEwAAl90dAASTGphdmEvbGFuZy9PYmplY3Q7TAAEZXZhbHQAEUxzY2FsYS9GdW5jdGlvbjA7eHIAFnhzYnRpLmFwaS5BYnN0cmFjdExhennTd7UBX7vnoAIAAHhwAXNyABN4c2J0aS5hcGkuRW1wdHlUeXBlvP2eRkk7iSQCAAB4cgAUeHNidGkuYXBpLlNpbXBsZVR5cGVyeGKIISO/QAIAAHhyAA54c2J0aS5hcGkuVHlwZT9q2SEWSarKAgAAeHBwc3EAfgAwAXNyABN4c2J0aS5hcGkuU3RydWN0dXJlqar5gJNv2AACAANMAAhkZWNsYXJlZHEAfgAVTAAJaW5oZXJpdGVkcQB+ABVMAAdwYXJlbnRzcQB+ABV4cQB+ADdzcQB+ADABdXEAfgAQAAAAAHBzcQB+ADABdXEAfgAQAAAAAXNyAA14c2J0aS5hcGkuRGVmUr6f4ny0NmkCAAJMAApyZXR1cm5UeXBldAAQTHhzYnRpL2FwaS9UeXBlO1sAD3ZhbHVlUGFyYW1ldGVyc3QAGltMeHNidGkvYXBpL1BhcmFtZXRlckxpc3Q7eHEAfgAWcQB+ACB1cQB+ACEAAAABc3IAFHhzYnRpLmFwaS5Bbm5vdGF0aW9u3g6BovZcCrICAAJbAAlhcmd1bWVudHN0AB9bTHhzYnRpL2FwaS9Bbm5vdGF0aW9uQXJndW1lbnQ7TAAEYmFzZXEAfgBBeHB1cgAfW0x4c2J0aS5hcGkuQW5ub3RhdGlvbkFyZ3VtZW50O1Gdpo84JQ94AgAAeHAAAAABc3IAHHhzYnRpLmFwaS5Bbm5vdGF0aW9uQXJndW1lbnTWRbHYAxsXfAIAAkwABG5hbWVxAH4AHEwABXZhbHVlcQB+ABx4cHQAAHQAKigibWFpbiBzaG91bGQgbm90IGJlIG92ZXJyaWRkZW4iLCIyLjExLjAiKXNyABR4c2J0aS5hcGkuUHJvamVjdGlvbvPSjVTpRaQtAgACTAACaWRxAH4AHEwABnByZWZpeHQAFkx4c2J0aS9hcGkvU2ltcGxlVHlwZTt4cQB+ADZ0ABRkZXByZWNhdGVkT3ZlcnJpZGluZ3NyABN4c2J0aS5hcGkuU2luZ2xldG9u/Kdf+M9W5EYCAAFMAARwYXRodAAQTHhzYnRpL2FwaS9QYXRoO3hxAH4ANnNyAA54c2J0aS5hcGkuUGF0aJs9XAjOpSeEAgABWwAKY29tcG9uZW50c3QAGltMeHNidGkvYXBpL1BhdGhDb21wb25lbnQ7eHB1cgAaW0x4c2J0aS5hcGkuUGF0aENvbXBvbmVudDtD2gl0LWcWdAIAAHhwAAAAAnNyAAx4c2J0aS5hcGkuSWSYMmyLN1PEQAIAAUwAAmlkcQB+ABx4cgAXeHNidGkuYXBpLlBhdGhDb21wb25lbnRfmiJbLoafvAIAAHhwdAAFc2NhbGFzcgAOeHNidGkuYXBpLlRoaXPbCe2mzFpAXAIAAHhxAH4AW3NxAH4AIwB0AARtYWludXEAfgAmAAAAAHNxAH4ATnQABFVuaXRxAH4AVHVyABpbTHhzYnRpLmFwaS5QYXJhbWV0ZXJMaXN0O/XTOh3ys3DuAgAAeHAAAAABc3IAF3hzYnRpLmFwaS5QYXJhbWV0ZXJMaXN01sW8HGRJdOMCAAJaAAppc0ltcGxpY2l0WwAKcGFyYW1ldGVyc3QAHFtMeHNidGkvYXBpL01ldGhvZFBhcmFtZXRlcjt4cAB1cgAcW0x4c2J0aS5hcGkuTWV0aG9kUGFyYW1ldGVyO8+4xV2l3bVtAgAAeHAAAAABc3IAGXhzYnRpLmFwaS5NZXRob2RQYXJhbWV0ZXIfRa4X00mw6gIABFoACmhhc0RlZmF1bHRMAAhtb2RpZmllcnQAHUx4c2J0aS9hcGkvUGFyYW1ldGVyTW9kaWZpZXI7TAAEbmFtZXEAfgAcTAADdHBlcQB+AEF4cAB+cgAbeHNidGkuYXBpLlBhcmFtZXRlck1vZGlmaWVyAAAAAAAAAAASAAB4cQB+ACl0AAVQbGFpbnQABGFyZ3NzcgAXeHNidGkuYXBpLlBhcmFtZXRlcml6ZWQWbO5pA8m7fwIAAkwACGJhc2VUeXBlcQB+AE9bAA10eXBlQXJndW1lbnRzdAARW0x4c2J0aS9hcGkvVHlwZTt4cQB+ADZzcQB+AE50AAVBcnJheXEAfgBUdXIAEVtMeHNidGkuYXBpLlR5cGU7dP+lWnv56UECAAB4cAAAAAFzcQB+AE50AAZTdHJpbmdzcQB+AFJzcQB+AFV1cQB+AFgAAAADc3EAfgBadAAEamF2YXNxAH4AWnQABGxhbmdxAH4AX3BzcQB+ADABdXEAfgB4AAAABHNxAH4ATnQAA0FwcHEAfgBUc3EAfgBOdAALRGVsYXllZEluaXRxAH4AVHNxAH4ATnQABk9iamVjdHEAfgB8c3EAfgBOdAADQW55cQB+AFRwcHVyABRbTHhzYnRpLmFwaS5QYWNrYWdlO1sTGTdwpyehAgAAeHAAAAAAc3IAFXhzYnRpLmFwaS5Db21waWxhdGlvbu364MNq6KBCAgACSgAJc3RhcnRUaW1lWwAHb3V0cHV0c3QAGltMeHNidGkvYXBpL091dHB1dFNldHRpbmc7eHAAAAFU8nXEpnVyABpbTHhzYnRpLmFwaS5PdXRwdXRTZXR0aW5nO39qwvOnh6VCAgAAeHAAAAACc3IAF3hzYnRpLmFwaS5PdXRwdXRTZXR0aW5netmaR3T7HXsCAAJMAA9vdXRwdXREaXJlY3RvcnlxAH4AHEwAD3NvdXJjZURpcmVjdG9yeXEAfgAceHB0AEJDOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AD1DOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHNjYWxhc3EAfgCUdABCQzpcZGV2ZWxvcFxnaXRcdHV0b3JpYWxzXGdhdGxpbmctbG9hZHRlc3QtZGVtb1x0YXJnZXRcdGVzdC1jbGFzc2VzdABBQzpcZGV2ZWxvcFxnaXRcdHV0b3JpYWxzXGdhdGxpbmctbG9hZHRlc3QtZGVtb1xzcmNcdGVzdFxyZXNvdXJjZXN1cgACW0Ks8xf4BghU4AIAAHhwAAAAFOmLrPiahL5l0qEx+n4HLU9uvvid
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala ->
+rO0ABXNyABB4c2J0aS5hcGkuU291cmNlFlpwRASfbtoCAAZJAAdhcGlIYXNoWgAIaGFzTWFjcm9MABhfaW50ZXJuYWxPbmx5X25hbWVIYXNoZXN0ACRMeHNidGkvYXBpL19pbnRlcm5hbE9ubHlfTmFtZUhhc2hlcztMAANhcGl0ABVMeHNidGkvYXBpL1NvdXJjZUFQSTtMAAtjb21waWxhdGlvbnQAF0x4c2J0aS9hcGkvQ29tcGlsYXRpb247WwAEaGFzaHQAAltCeHCXMg60AHNyACJ4c2J0aS5hcGkuX2ludGVybmFsT25seV9OYW1lSGFzaGVzVNq+mfrU7EwCAAJbAA9pbXBsaWNpdE1lbWJlcnN0ACNbTHhzYnRpL2FwaS9faW50ZXJuYWxPbmx5X05hbWVIYXNoO1sADnJlZ3VsYXJNZW1iZXJzcQB+AAd4cHVyACNbTHhzYnRpLmFwaS5faW50ZXJuYWxPbmx5X05hbWVIYXNoO0lagLbdlov0AgAAeHAAAAAAdXEAfgAJAAAAAHNyABN4c2J0aS5hcGkuU291cmNlQVBJuV6n+SkjOKQCAAJbAAtkZWZpbml0aW9uc3QAF1tMeHNidGkvYXBpL0RlZmluaXRpb247WwAIcGFja2FnZXN0ABRbTHhzYnRpL2FwaS9QYWNrYWdlO3hwdXIAF1tMeHNidGkuYXBpLkRlZmluaXRpb247iMlc57TjXg4CAAB4cAAAAAFzcgATeHNidGkuYXBpLkNsYXNzTGlrZYM0HKHfsJdsAgAETAAOZGVmaW5pdGlvblR5cGV0ABpMeHNidGkvYXBpL0RlZmluaXRpb25UeXBlO1sAEHNhdmVkQW5ub3RhdGlvbnN0ABNbTGphdmEvbGFuZy9TdHJpbmc7TAAIc2VsZlR5cGV0ABBMeHNidGkvYXBpL0xhenk7TAAJc3RydWN0dXJlcQB+ABV4cgAheHNidGkuYXBpLlBhcmFtZXRlcml6ZWREZWZpbml0aW9u+RFusdVQPOICAAFbAA50eXBlUGFyYW1ldGVyc3QAGltMeHNidGkvYXBpL1R5cGVQYXJhbWV0ZXI7eHIAFHhzYnRpLmFwaS5EZWZpbml0aW9uhyob6HFC40YCAARMAAZhY2Nlc3N0ABJMeHNidGkvYXBpL0FjY2VzcztbAAthbm5vdGF0aW9uc3QAF1tMeHNidGkvYXBpL0Fubm90YXRpb247TAAJbW9kaWZpZXJzdAAVTHhzYnRpL2FwaS9Nb2RpZmllcnM7TAAEbmFtZXQAEkxqYXZhL2xhbmcvU3RyaW5nO3hwc3IAEHhzYnRpLmFwaS5QdWJsaWO6WD2ubC1gQgIAAHhyABB4c2J0aS5hcGkuQWNjZXNz3WKa+B1jMUgCAAB4cHVyABdbTHhzYnRpLmFwaS5Bbm5vdGF0aW9uO+uX6xkQ9o1IAgAAeHAAAAAAc3IAE3hzYnRpLmFwaS5Nb2RpZmllcnPHERMhaZzcJAIAAUIABWZsYWdzeHAAdAANSURFUGF0aEhlbHBlcnVyABpbTHhzYnRpLmFwaS5UeXBlUGFyYW1ldGVyO9ltJg8onfK2AgAAeHAAAAAAfnIAGHhzYnRpLmFwaS5EZWZpbml0aW9uVHlwZQAAAAAAAAAAEgAAeHIADmphdmEubGFuZy5FbnVtAAAAAAAAAAASAAB4cHQABk1vZHVsZXVyABNbTGphdmEubGFuZy5TdHJpbmc7rdJW5+kde0cCAAB4cAAAAABzcgATeHNidGkuU2FmZUxhenkkSW1wbDuRTxH0RUzJAgADWgAIYml0bWFwJDBMAAJfdHQAEkxqYXZhL2xhbmcvT2JqZWN0O0wABGV2YWx0ABFMc2NhbGEvRnVuY3Rpb24wO3hyABZ4c2J0aS5hcGkuQWJzdHJhY3RMYXp503e1AV+756ACAAB4cAFzcgATeHNidGkuYXBpLkVtcHR5VHlwZbz9nkZJO4kkAgAAeHIAFHhzYnRpLmFwaS5TaW1wbGVUeXBlcnhiiCEjv0ACAAB4cgAOeHNidGkuYXBpLlR5cGU/atkhFkmqygIAAHhwcHNxAH4ALgFzcgATeHNidGkuYXBpLlN0cnVjdHVyZamq+YCTb9gAAgADTAAIZGVjbGFyZWRxAH4AFUwACWluaGVyaXRlZHEAfgAVTAAHcGFyZW50c3EAfgAVeHEAfgA1c3EAfgAuAXVxAH4AEAAAAABwc3EAfgAuAXVxAH4AEAAAAABwc3EAfgAuAXVyABFbTHhzYnRpLmFwaS5UeXBlO3T/pVp7+elBAgAAeHAAAAACc3IAFHhzYnRpLmFwaS5Qcm9qZWN0aW9u89KNVOlFpC0CAAJMAAJpZHEAfgAcTAAGcHJlZml4dAAWTHhzYnRpL2FwaS9TaW1wbGVUeXBlO3hxAH4ANHQABk9iamVjdHNyABN4c2J0aS5hcGkuU2luZ2xldG9u/Kdf+M9W5EYCAAFMAARwYXRodAAQTHhzYnRpL2FwaS9QYXRoO3hxAH4ANHNyAA54c2J0aS5hcGkuUGF0aJs9XAjOpSeEAgABWwAKY29tcG9uZW50c3QAGltMeHNidGkvYXBpL1BhdGhDb21wb25lbnQ7eHB1cgAaW0x4c2J0aS5hcGkuUGF0aENvbXBvbmVudDtD2gl0LWcWdAIAAHhwAAAAA3NyAAx4c2J0aS5hcGkuSWSYMmyLN1PEQAIAAUwAAmlkcQB+ABx4cgAXeHNidGkuYXBpLlBhdGhDb21wb25lbnRfmiJbLoafvAIAAHhwdAAEamF2YXNxAH4ATXQABGxhbmdzcgAOeHNidGkuYXBpLlRoaXPbCe2mzFpAXAIAAHhxAH4ATnNxAH4AQXQAA0FueXNxAH4ARXNxAH4ASHVxAH4ASwAAAAJzcQB+AE10AAVzY2FsYXEAfgBUcHB1cgAUW0x4c2J0aS5hcGkuUGFja2FnZTtbExk3cKcnoQIAAHhwAAAAAHNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVPJ1xKZ1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5cQB+ABxMAA9zb3VyY2VEaXJlY3RvcnlxAH4AHHhwdABCQzpcZGV2ZWxvcFxnaXRcdHV0b3JpYWxzXGdhdGxpbmctbG9hZHRlc3QtZGVtb1x0YXJnZXRcdGVzdC1jbGFzc2VzdAA9QzpcZGV2ZWxvcFxnaXRcdHV0b3JpYWxzXGdhdGxpbmctbG9hZHRlc3QtZGVtb1xzcmNcdGVzdFxzY2FsYXNxAH4AY3QAQkM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QAQUM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3RccmVzb3VyY2VzdXIAAltCrPMX+AYIVOACAAB4cAAAABQgJVtmAgpAxn21L4JI+rfjJQ/JQA==
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala ->
+rO0ABXNyABB4c2J0aS5hcGkuU291cmNlFlpwRASfbtoCAAZJAAdhcGlIYXNoWgAIaGFzTWFjcm9MABhfaW50ZXJuYWxPbmx5X25hbWVIYXNoZXN0ACRMeHNidGkvYXBpL19pbnRlcm5hbE9ubHlfTmFtZUhhc2hlcztMAANhcGl0ABVMeHNidGkvYXBpL1NvdXJjZUFQSTtMAAtjb21waWxhdGlvbnQAF0x4c2J0aS9hcGkvQ29tcGlsYXRpb247WwAEaGFzaHQAAltCeHARTQnpAHNyACJ4c2J0aS5hcGkuX2ludGVybmFsT25seV9OYW1lSGFzaGVzVNq+mfrU7EwCAAJbAA9pbXBsaWNpdE1lbWJlcnN0ACNbTHhzYnRpL2FwaS9faW50ZXJuYWxPbmx5X05hbWVIYXNoO1sADnJlZ3VsYXJNZW1iZXJzcQB+AAd4cHVyACNbTHhzYnRpLmFwaS5faW50ZXJuYWxPbmx5X05hbWVIYXNoO0lagLbdlov0AgAAeHAAAAAAdXEAfgAJAAAAAHNyABN4c2J0aS5hcGkuU291cmNlQVBJuV6n+SkjOKQCAAJbAAtkZWZpbml0aW9uc3QAF1tMeHNidGkvYXBpL0RlZmluaXRpb247WwAIcGFja2FnZXN0ABRbTHhzYnRpL2FwaS9QYWNrYWdlO3hwdXIAF1tMeHNidGkuYXBpLkRlZmluaXRpb247iMlc57TjXg4CAAB4cAAAAAFzcgATeHNidGkuYXBpLkNsYXNzTGlrZYM0HKHfsJdsAgAETAAOZGVmaW5pdGlvblR5cGV0ABpMeHNidGkvYXBpL0RlZmluaXRpb25UeXBlO1sAEHNhdmVkQW5ub3RhdGlvbnN0ABNbTGphdmEvbGFuZy9TdHJpbmc7TAAIc2VsZlR5cGV0ABBMeHNidGkvYXBpL0xhenk7TAAJc3RydWN0dXJlcQB+ABV4cgAheHNidGkuYXBpLlBhcmFtZXRlcml6ZWREZWZpbml0aW9u+RFusdVQPOICAAFbAA50eXBlUGFyYW1ldGVyc3QAGltMeHNidGkvYXBpL1R5cGVQYXJhbWV0ZXI7eHIAFHhzYnRpLmFwaS5EZWZpbml0aW9uhyob6HFC40YCAARMAAZhY2Nlc3N0ABJMeHNidGkvYXBpL0FjY2VzcztbAAthbm5vdGF0aW9uc3QAF1tMeHNidGkvYXBpL0Fubm90YXRpb247TAAJbW9kaWZpZXJzdAAVTHhzYnRpL2FwaS9Nb2RpZmllcnM7TAAEbmFtZXQAEkxqYXZhL2xhbmcvU3RyaW5nO3hwc3IAEHhzYnRpLmFwaS5QdWJsaWO6WD2ubC1gQgIAAHhyABB4c2J0aS5hcGkuQWNjZXNz3WKa+B1jMUgCAAB4cHVyABdbTHhzYnRpLmFwaS5Bbm5vdGF0aW9uO+uX6xkQ9o1IAgAAeHAAAAAAc3IAE3hzYnRpLmFwaS5Nb2RpZmllcnPHERMhaZzcJAIAAUIABWZsYWdzeHAAdAAfb3JnLmJhZWxkdW5nLlJlY29yZGVkU2ltdWxhdGlvbnVyABpbTHhzYnRpLmFwaS5UeXBlUGFyYW1ldGVyO9ltJg8onfK2AgAAeHAAAAAAfnIAGHhzYnRpLmFwaS5EZWZpbml0aW9uVHlwZQAAAAAAAAAAEgAAeHIADmphdmEubGFuZy5FbnVtAAAAAAAAAAASAAB4cHQACENsYXNzRGVmdXIAE1tMamF2YS5sYW5nLlN0cmluZzut0lbn6R17RwIAAHhwAAAAAHNyABN4c2J0aS5TYWZlTGF6eSRJbXBsO5FPEfRFTMkCAANaAAhiaXRtYXAkMEwAAl90dAASTGphdmEvbGFuZy9PYmplY3Q7TAAEZXZhbHQAEUxzY2FsYS9GdW5jdGlvbjA7eHIAFnhzYnRpLmFwaS5BYnN0cmFjdExhennTd7UBX7vnoAIAAHhwAXNyABN4c2J0aS5hcGkuRW1wdHlUeXBlvP2eRkk7iSQCAAB4cgAUeHNidGkuYXBpLlNpbXBsZVR5cGVyeGKIISO/QAIAAHhyAA54c2J0aS5hcGkuVHlwZT9q2SEWSarKAgAAeHBwc3EAfgAuAXNyABN4c2J0aS5hcGkuU3RydWN0dXJlqar5gJNv2AACAANMAAhkZWNsYXJlZHEAfgAVTAAJaW5oZXJpdGVkcQB+ABVMAAdwYXJlbnRzcQB+ABV4cQB+ADVzcQB+AC4BdXEAfgAQAAAAAHBzcQB+AC4BdXEAfgAQAAAAAHBzcQB+AC4BdXIAEVtMeHNidGkuYXBpLlR5cGU7dP+lWnv56UECAAB4cAAAAANzcgAUeHNidGkuYXBpLlByb2plY3Rpb27z0o1U6UWkLQIAAkwAAmlkcQB+ABxMAAZwcmVmaXh0ABZMeHNidGkvYXBpL1NpbXBsZVR5cGU7eHEAfgA0dAAKU2ltdWxhdGlvbnNyABN4c2J0aS5hcGkuU2luZ2xldG9u/Kdf+M9W5EYCAAFMAARwYXRodAAQTHhzYnRpL2FwaS9QYXRoO3hxAH4ANHNyAA54c2J0aS5hcGkuUGF0aJs9XAjOpSeEAgABWwAKY29tcG9uZW50c3QAGltMeHNidGkvYXBpL1BhdGhDb21wb25lbnQ7eHB1cgAaW0x4c2J0aS5hcGkuUGF0aENvbXBvbmVudDtD2gl0LWcWdAIAAHhwAAAABXNyAAx4c2J0aS5hcGkuSWSYMmyLN1PEQAIAAUwAAmlkcQB+ABx4cgAXeHNidGkuYXBpLlBhdGhDb21wb25lbnRfmiJbLoafvAIAAHhwdAACaW9zcQB+AE10AAdnYXRsaW5nc3EAfgBNdAAEY29yZXNxAH4ATXQACHNjZW5hcmlvc3IADnhzYnRpLmFwaS5UaGlz2wntpsxaQFwCAAB4cQB+AE5zcQB+AEF0AAZPYmplY3RzcQB+AEVzcQB+AEh1cQB+AEsAAAADc3EAfgBNdAAEamF2YXNxAH4ATXQABGxhbmdxAH4AWHNxAH4AQXQAA0FueXNxAH4ARXNxAH4ASHVxAH4ASwAAAAJzcQB+AE10AAVzY2FsYXEAfgBYcHB1cgAUW0x4c2J0aS5hcGkuUGFja2FnZTtbExk3cKcnoQIAAHhwAAAAAnNyABF4c2J0aS5hcGkuUGFja2FnZX5Zj/auzjlYAgABTAAEbmFtZXEAfgAceHB0AAxvcmcuYmFlbGR1bmdzcQB+AGt0AANvcmdzcgAVeHNidGkuYXBpLkNvbXBpbGF0aW9u7frgw2rooEICAAJKAAlzdGFydFRpbWVbAAdvdXRwdXRzdAAaW0x4c2J0aS9hcGkvT3V0cHV0U2V0dGluZzt4cAAAAVTydcSmdXIAGltMeHNidGkuYXBpLk91dHB1dFNldHRpbmc7f2rC86eHpUICAAB4cAAAAAJzcgAXeHNidGkuYXBpLk91dHB1dFNldHRpbmd62ZpHdPsdewIAAkwAD291dHB1dERpcmVjdG9yeXEAfgAcTAAPc291cmNlRGlyZWN0b3J5cQB+ABx4cHQAQkM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QAPUM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AHV0AEJDOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AEFDOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlc3VyAAJbQqzzF/gGCFTgAgAAeHAAAAAUHUqrk17SaqP+5ir/W8nR0tvD93Y=
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala ->
+rO0ABXNyABB4c2J0aS5hcGkuU291cmNlFlpwRASfbtoCAAZJAAdhcGlIYXNoWgAIaGFzTWFjcm9MABhfaW50ZXJuYWxPbmx5X25hbWVIYXNoZXN0ACRMeHNidGkvYXBpL19pbnRlcm5hbE9ubHlfTmFtZUhhc2hlcztMAANhcGl0ABVMeHNidGkvYXBpL1NvdXJjZUFQSTtMAAtjb21waWxhdGlvbnQAF0x4c2J0aS9hcGkvQ29tcGlsYXRpb247WwAEaGFzaHQAAltCeHD3nMHWAHNyACJ4c2J0aS5hcGkuX2ludGVybmFsT25seV9OYW1lSGFzaGVzVNq+mfrU7EwCAAJbAA9pbXBsaWNpdE1lbWJlcnN0ACNbTHhzYnRpL2FwaS9faW50ZXJuYWxPbmx5X05hbWVIYXNoO1sADnJlZ3VsYXJNZW1iZXJzcQB+AAd4cHVyACNbTHhzYnRpLmFwaS5faW50ZXJuYWxPbmx5X05hbWVIYXNoO0lagLbdlov0AgAAeHAAAAAAdXEAfgAJAAAAAHNyABN4c2J0aS5hcGkuU291cmNlQVBJuV6n+SkjOKQCAAJbAAtkZWZpbml0aW9uc3QAF1tMeHNidGkvYXBpL0RlZmluaXRpb247WwAIcGFja2FnZXN0ABRbTHhzYnRpL2FwaS9QYWNrYWdlO3hwdXIAF1tMeHNidGkuYXBpLkRlZmluaXRpb247iMlc57TjXg4CAAB4cAAAAAFzcgATeHNidGkuYXBpLkNsYXNzTGlrZYM0HKHfsJdsAgAETAAOZGVmaW5pdGlvblR5cGV0ABpMeHNidGkvYXBpL0RlZmluaXRpb25UeXBlO1sAEHNhdmVkQW5ub3RhdGlvbnN0ABNbTGphdmEvbGFuZy9TdHJpbmc7TAAIc2VsZlR5cGV0ABBMeHNidGkvYXBpL0xhenk7TAAJc3RydWN0dXJlcQB+ABV4cgAheHNidGkuYXBpLlBhcmFtZXRlcml6ZWREZWZpbml0aW9u+RFusdVQPOICAAFbAA50eXBlUGFyYW1ldGVyc3QAGltMeHNidGkvYXBpL1R5cGVQYXJhbWV0ZXI7eHIAFHhzYnRpLmFwaS5EZWZpbml0aW9uhyob6HFC40YCAARMAAZhY2Nlc3N0ABJMeHNidGkvYXBpL0FjY2VzcztbAAthbm5vdGF0aW9uc3QAF1tMeHNidGkvYXBpL0Fubm90YXRpb247TAAJbW9kaWZpZXJzdAAVTHhzYnRpL2FwaS9Nb2RpZmllcnM7TAAEbmFtZXQAEkxqYXZhL2xhbmcvU3RyaW5nO3hwc3IAEHhzYnRpLmFwaS5QdWJsaWO6WD2ubC1gQgIAAHhyABB4c2J0aS5hcGkuQWNjZXNz3WKa+B1jMUgCAAB4cHVyABdbTHhzYnRpLmFwaS5Bbm5vdGF0aW9uO+uX6xkQ9o1IAgAAeHAAAAAAc3IAE3hzYnRpLmFwaS5Nb2RpZmllcnPHERMhaZzcJAIAAUIABWZsYWdzeHAAdAAIUmVjb3JkZXJ1cgAaW0x4c2J0aS5hcGkuVHlwZVBhcmFtZXRlcjvZbSYPKJ3ytgIAAHhwAAAAAH5yABh4c2J0aS5hcGkuRGVmaW5pdGlvblR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAZNb2R1bGV1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAACdAAQc2NhbGEuZGVwcmVjYXRlZHQAGnNjYWxhLmRlcHJlY2F0ZWRPdmVycmlkaW5nc3IAE3hzYnRpLlNhZmVMYXp5JEltcGw7kU8R9EVMyQIAA1oACGJpdG1hcCQwTAACX3R0ABJMamF2YS9sYW5nL09iamVjdDtMAARldmFsdAARTHNjYWxhL0Z1bmN0aW9uMDt4cgAWeHNidGkuYXBpLkFic3RyYWN0TGF6edN3tQFfu+egAgAAeHABc3IAE3hzYnRpLmFwaS5FbXB0eVR5cGW8/Z5GSTuJJAIAAHhyABR4c2J0aS5hcGkuU2ltcGxlVHlwZXJ4YoghI79AAgAAeHIADnhzYnRpLmFwaS5UeXBlP2rZIRZJqsoCAAB4cHBzcQB+ADABc3IAE3hzYnRpLmFwaS5TdHJ1Y3R1cmWpqvmAk2/YAAIAA0wACGRlY2xhcmVkcQB+ABVMAAlpbmhlcml0ZWRxAH4AFUwAB3BhcmVudHNxAH4AFXhxAH4AN3NxAH4AMAF1cQB+ABAAAAAAcHNxAH4AMAF1cQB+ABAAAAABc3IADXhzYnRpLmFwaS5EZWZSvp/ifLQ2aQIAAkwACnJldHVyblR5cGV0ABBMeHNidGkvYXBpL1R5cGU7WwAPdmFsdWVQYXJhbWV0ZXJzdAAaW0x4c2J0aS9hcGkvUGFyYW1ldGVyTGlzdDt4cQB+ABZxAH4AIHVxAH4AIQAAAAFzcgAUeHNidGkuYXBpLkFubm90YXRpb27eDoGi9lwKsgIAAlsACWFyZ3VtZW50c3QAH1tMeHNidGkvYXBpL0Fubm90YXRpb25Bcmd1bWVudDtMAARiYXNlcQB+AEF4cHVyAB9bTHhzYnRpLmFwaS5Bbm5vdGF0aW9uQXJndW1lbnQ7UZ2mjzglD3gCAAB4cAAAAAFzcgAceHNidGkuYXBpLkFubm90YXRpb25Bcmd1bWVudNZFsdgDGxd8AgACTAAEbmFtZXEAfgAcTAAFdmFsdWVxAH4AHHhwdAAAdAAqKCJtYWluIHNob3VsZCBub3QgYmUgb3ZlcnJpZGRlbiIsIjIuMTEuMCIpc3IAFHhzYnRpLmFwaS5Qcm9qZWN0aW9u89KNVOlFpC0CAAJMAAJpZHEAfgAcTAAGcHJlZml4dAAWTHhzYnRpL2FwaS9TaW1wbGVUeXBlO3hxAH4ANnQAFGRlcHJlY2F0ZWRPdmVycmlkaW5nc3IAE3hzYnRpLmFwaS5TaW5nbGV0b278p1/4z1bkRgIAAUwABHBhdGh0ABBMeHNidGkvYXBpL1BhdGg7eHEAfgA2c3IADnhzYnRpLmFwaS5QYXRomz1cCM6lJ4QCAAFbAApjb21wb25lbnRzdAAaW0x4c2J0aS9hcGkvUGF0aENvbXBvbmVudDt4cHVyABpbTHhzYnRpLmFwaS5QYXRoQ29tcG9uZW50O0PaCXQtZxZ0AgAAeHAAAAACc3IADHhzYnRpLmFwaS5JZJgybIs3U8RAAgABTAACaWRxAH4AHHhyABd4c2J0aS5hcGkuUGF0aENvbXBvbmVudF+aIlsuhp+8AgAAeHB0AAVzY2FsYXNyAA54c2J0aS5hcGkuVGhpc9sJ7abMWkBcAgAAeHEAfgBbc3EAfgAjAHQABG1haW51cQB+ACYAAAAAc3EAfgBOdAAEVW5pdHEAfgBUdXIAGltMeHNidGkuYXBpLlBhcmFtZXRlckxpc3Q79dM6HfKzcO4CAAB4cAAAAAFzcgAXeHNidGkuYXBpLlBhcmFtZXRlckxpc3TWxbwcZEl04wIAAloACmlzSW1wbGljaXRbAApwYXJhbWV0ZXJzdAAcW0x4c2J0aS9hcGkvTWV0aG9kUGFyYW1ldGVyO3hwAHVyABxbTHhzYnRpLmFwaS5NZXRob2RQYXJhbWV0ZXI7z7jFXaXdtW0CAAB4cAAAAAFzcgAZeHNidGkuYXBpLk1ldGhvZFBhcmFtZXRlch9FrhfTSbDqAgAEWgAKaGFzRGVmYXVsdEwACG1vZGlmaWVydAAdTHhzYnRpL2FwaS9QYXJhbWV0ZXJNb2RpZmllcjtMAARuYW1lcQB+ABxMAAN0cGVxAH4AQXhwAH5yABt4c2J0aS5hcGkuUGFyYW1ldGVyTW9kaWZpZXIAAAAAAAAAABIAAHhxAH4AKXQABVBsYWludAAEYXJnc3NyABd4c2J0aS5hcGkuUGFyYW1ldGVyaXplZBZs7mkDybt/AgACTAAIYmFzZVR5cGVxAH4AT1sADXR5cGVBcmd1bWVudHN0ABFbTHhzYnRpL2FwaS9UeXBlO3hxAH4ANnNxAH4ATnQABUFycmF5cQB+AFR1cgARW0x4c2J0aS5hcGkuVHlwZTt0/6Vae/npQQIAAHhwAAAAAXNxAH4ATnQABlN0cmluZ3NxAH4AUnNxAH4AVXVxAH4AWAAAAANzcQB+AFp0AARqYXZhc3EAfgBadAAEbGFuZ3EAfgBfcHNxAH4AMAF1cQB+AHgAAAAEc3EAfgBOdAADQXBwcQB+AFRzcQB+AE50AAtEZWxheWVkSW5pdHEAfgBUc3EAfgBOdAAGT2JqZWN0cQB+AHxzcQB+AE50AANBbnlxAH4AVHBwdXIAFFtMeHNidGkuYXBpLlBhY2thZ2U7WxMZN3CnJ6ECAAB4cAAAAABzcgAVeHNidGkuYXBpLkNvbXBpbGF0aW9u7frgw2rooEICAAJKAAlzdGFydFRpbWVbAAdvdXRwdXRzdAAaW0x4c2J0aS9hcGkvT3V0cHV0U2V0dGluZzt4cAAAAVTydcSmdXIAGltMeHNidGkuYXBpLk91dHB1dFNldHRpbmc7f2rC86eHpUICAAB4cAAAAAJzcgAXeHNidGkuYXBpLk91dHB1dFNldHRpbmd62ZpHdPsdewIAAkwAD291dHB1dERpcmVjdG9yeXEAfgAcTAAPc291cmNlRGlyZWN0b3J5cQB+ABx4cHQAQkM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QAPUM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AJR0AEJDOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AEFDOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlc3VyAAJbQqzzF/gGCFTgAgAAeHAAAAAUZn2oqdcS+YjtexS9+nspPHasO2E=
+external apis:
+0 items
+source infos:
+4 items
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Engine.scala ->
+AAAAAAAAAAA=
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\IDEPathHelper.scala ->
+AAAAAAAAAAA=
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\org\baeldung\RecordedSimulation.scala ->
+AAAAAAAAAAA=
+C:\develop\git\tutorials\gatling-loadtest-demo\src\test\scala\Recorder.scala ->
+AAAAAAAAAAA=
+compilations:
+17 items
+00 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVOxQus91cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+01 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1Iw051cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+02 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1LJxV1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+03 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1LOZV1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+04 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1QxNd1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+05 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1U4651cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+06 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1kjrl1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+07 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1koUh1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+08 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1kwGd1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+09 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1lpUV1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+10 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1oYjh1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+11 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1ofWt1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+12 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1px4J1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+13 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVO1q7U91cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+14 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVPJoEOF1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAUUM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QATEM6XGRldmVsb3Bcd29ya3NwYWNlc1x2anBvcnRhbFdvcmtzcGFjZVxnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AFFDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AFBDOlxkZXZlbG9wXHdvcmtzcGFjZXNcdmpwb3J0YWxXb3Jrc3BhY2VcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+15 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVPJ0QXt1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAQkM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QAPUM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AEJDOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AEFDOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
+16 -> rO0ABXNyABV4c2J0aS5hcGkuQ29tcGlsYXRpb27t+uDDauigQgIAAkoACXN0YXJ0VGltZVsAB291dHB1dHN0ABpbTHhzYnRpL2FwaS9PdXRwdXRTZXR0aW5nO3hwAAABVPJ1xKZ1cgAaW0x4c2J0aS5hcGkuT3V0cHV0U2V0dGluZzt/asLzp4elQgIAAHhwAAAAAnNyABd4c2J0aS5hcGkuT3V0cHV0U2V0dGluZ3rZmkd0+x17AgACTAAPb3V0cHV0RGlyZWN0b3J5dAASTGphdmEvbGFuZy9TdHJpbmc7TAAPc291cmNlRGlyZWN0b3J5cQB+AAZ4cHQAQkM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cdGFyZ2V0XHRlc3QtY2xhc3Nlc3QAPUM6XGRldmVsb3BcZ2l0XHR1dG9yaWFsc1xnYXRsaW5nLWxvYWR0ZXN0LWRlbW9cc3JjXHRlc3Rcc2NhbGFzcQB+AAV0AEJDOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHRhcmdldFx0ZXN0LWNsYXNzZXN0AEFDOlxkZXZlbG9wXGdpdFx0dXRvcmlhbHNcZ2F0bGluZy1sb2FkdGVzdC1kZW1vXHNyY1x0ZXN0XHJlc291cmNlcw==
diff --git a/gatling-loadtest-demo/.classpath b/gatling-loadtest-demo/.classpath
new file mode 100644
index 0000000000..6026072109
--- /dev/null
+++ b/gatling-loadtest-demo/.classpath
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gatling-loadtest-demo/.project b/gatling-loadtest-demo/.project
new file mode 100644
index 0000000000..a5e3b774e0
--- /dev/null
+++ b/gatling-loadtest-demo/.project
@@ -0,0 +1,24 @@
+
+
+ gatling-loadtest-demo
+
+
+
+
+
+ org.scala-ide.sdt.core.scalabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.scala-ide.sdt.core.scalanature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/gatling-loadtest-demo/pom.xml b/gatling-loadtest-demo/pom.xml
new file mode 100644
index 0000000000..f5ed1d7de7
--- /dev/null
+++ b/gatling-loadtest-demo/pom.xml
@@ -0,0 +1,113 @@
+
+
+ 4.0.0
+ org.baeldung
+ gatling-loadtest-demo
+ 1.0-SNAPSHOT
+
+
+ 1.8
+ 1.8
+ 2.11.7
+ UTF-8
+
+ 2.2.0
+
+ 3.2.2
+
+
+
+
+
+ io.gatling
+ gatling-app
+ ${gatling.version}
+
+
+ io.gatling
+ gatling-recorder
+ ${gatling.version}
+
+
+ io.gatling.highcharts
+ gatling-charts-highcharts
+ ${gatling.version}
+
+
+ org.scala-lang
+ scala-library
+ ${scala.version}
+
+
+
+
+
+
+ io.gatling.highcharts
+ gatling-charts-highcharts
+
+
+ io.gatling
+ gatling-app
+
+
+ io.gatling
+ gatling-recorder
+
+
+ org.scala-lang
+ scala-library
+
+
+
+
+ src/test/scala
+
+
+
+ net.alchim31.maven
+ scala-maven-plugin
+ ${scala-maven-plugin.version}
+
+
+
+
+
+ net.alchim31.maven
+ scala-maven-plugin
+
+
+
+ testCompile
+
+
+
+ -Ybackend:GenBCode
+ -Ydelambdafy:method
+ -target:jvm-1.8
+ -deprecation
+ -feature
+ -unchecked
+ -language:implicitConversions
+ -language:postfixOps
+
+
+
+
+
+
+
+ io.gatling
+ gatling-maven-plugin
+ ${gatling.version}
+
+
+ test
+ execute
+
+
+
+
+
+
diff --git a/gatling-loadtest-demo/src/test/resources/gatling.conf b/gatling-loadtest-demo/src/test/resources/gatling.conf
new file mode 100644
index 0000000000..8bfa0ed366
--- /dev/null
+++ b/gatling-loadtest-demo/src/test/resources/gatling.conf
@@ -0,0 +1,127 @@
+#########################
+# Gatling Configuration #
+#########################
+
+# This file contains all the settings configurable for Gatling with their default values
+
+gatling {
+ core {
+ #outputDirectoryBaseName = "" # The prefix for each simulation result folder (then suffixed by the report generation timestamp)
+ #runDescription = "" # The description for this simulation run, displayed in each report
+ #encoding = "utf-8" # Encoding to use throughout Gatling for file and string manipulation
+ #simulationClass = "" # The FQCN of the simulation to run (when used in conjunction with noReports, the simulation for which assertions will be validated)
+ #mute = false # When set to true, don't ask for simulation name nor run description (currently only used by Gatling SBT plugin)
+ #elFileBodiesCacheMaxCapacity = 200 # Cache size for request body EL templates, set to 0 to disable
+ #rawFileBodiesCacheMaxCapacity = 200 # Cache size for request body Raw templates, set to 0 to disable
+ #rawFileBodiesInMemoryMaxSize = 1000 # Below this limit, raw file bodies will be cached in memory
+
+ extract {
+ regex {
+ #cacheMaxCapacity = 200 # Cache size for the compiled regexes, set to 0 to disable caching
+ }
+ xpath {
+ #cacheMaxCapacity = 200 # Cache size for the compiled XPath queries, set to 0 to disable caching
+ }
+ jsonPath {
+ #cacheMaxCapacity = 200 # Cache size for the compiled jsonPath queries, set to 0 to disable caching
+ #preferJackson = false # When set to true, prefer Jackson over Boon for JSON-related operations
+ }
+ css {
+ #cacheMaxCapacity = 200 # Cache size for the compiled CSS selectors queries, set to 0 to disable caching
+ }
+ }
+
+ directory {
+ #data = user-files/data # Folder where user's data (e.g. files used by Feeders) is located
+ #bodies = user-files/bodies # Folder where bodies are located
+ #simulations = user-files/simulations # Folder where the bundle's simulations are located
+ #reportsOnly = "" # If set, name of report folder to look for in order to generate its report
+ #binaries = "" # If set, name of the folder where compiles classes are located: Defaults to GATLING_HOME/target.
+ #results = results # Name of the folder where all reports folder are located
+ }
+ }
+ charting {
+ #noReports = false # When set to true, don't generate HTML reports
+ #maxPlotPerSeries = 1000 # Number of points per graph in Gatling reports
+ #useGroupDurationMetric = false # Switch group timings from cumulated response time to group duration.
+ indicators {
+ #lowerBound = 800 # Lower bound for the requests' response time to track in the reports and the console summary
+ #higherBound = 1200 # Higher bound for the requests' response time to track in the reports and the console summary
+ #percentile1 = 50 # Value for the 1st percentile to track in the reports, the console summary and Graphite
+ #percentile2 = 75 # Value for the 2nd percentile to track in the reports, the console summary and Graphite
+ #percentile3 = 95 # Value for the 3rd percentile to track in the reports, the console summary and Graphite
+ #percentile4 = 99 # Value for the 4th percentile to track in the reports, the console summary and Graphite
+ }
+ }
+ http {
+ #fetchedCssCacheMaxCapacity = 200 # Cache size for CSS parsed content, set to 0 to disable
+ #fetchedHtmlCacheMaxCapacity = 200 # Cache size for HTML parsed content, set to 0 to disable
+ #perUserCacheMaxCapacity = 200 # Per virtual user cache size, set to 0 to disable
+ #warmUpUrl = "http://gatling.io" # The URL to use to warm-up the HTTP stack (blank means disabled)
+ #enableGA = true # Very light Google Analytics, please support
+ ssl {
+ keyStore {
+ #type = "" # Type of SSLContext's KeyManagers store
+ #file = "" # Location of SSLContext's KeyManagers store
+ #password = "" # Password for SSLContext's KeyManagers store
+ #algorithm = "" # Algorithm used SSLContext's KeyManagers store
+ }
+ trustStore {
+ #type = "" # Type of SSLContext's TrustManagers store
+ #file = "" # Location of SSLContext's TrustManagers store
+ #password = "" # Password for SSLContext's TrustManagers store
+ #algorithm = "" # Algorithm used by SSLContext's TrustManagers store
+ }
+ }
+ ahc {
+ #keepAlive = true # Allow pooling HTTP connections (keep-alive header automatically added)
+ #connectTimeout = 60000 # Timeout when establishing a connection
+ #pooledConnectionIdleTimeout = 60000 # Timeout when a connection stays unused in the pool
+ #readTimeout = 60000 # Timeout when a used connection stays idle
+ #maxRetry = 2 # Number of times that a request should be tried again
+ #requestTimeout = 60000 # Timeout of the requests
+ #acceptAnyCertificate = true # When set to true, doesn't validate SSL certificates
+ #httpClientCodecMaxInitialLineLength = 4096 # Maximum length of the initial line of the response (e.g. "HTTP/1.0 200 OK")
+ #httpClientCodecMaxHeaderSize = 8192 # Maximum size, in bytes, of each request's headers
+ #httpClientCodecMaxChunkSize = 8192 # Maximum length of the content or each chunk
+ #webSocketMaxFrameSize = 10240000 # Maximum frame payload size
+ #sslEnabledProtocols = [TLSv1.2, TLSv1.1, TLSv1] # Array of enabled protocols for HTTPS, if empty use the JDK defaults
+ #sslEnabledCipherSuites = [] # Array of enabled cipher suites for HTTPS, if empty use the JDK defaults
+ #sslSessionCacheSize = 0 # SSLSession cache size, set to 0 to use JDK's default
+ #sslSessionTimeout = 0 # SSLSession timeout in seconds, set to 0 to use JDK's default (24h)
+ #useOpenSsl = false # if OpenSSL should be used instead of JSSE (requires tcnative jar)
+ #useNativeTransport = false # if native transport should be used instead of Java NIO (requires netty-transport-native-epoll, currently Linux only)
+ #usePooledMemory = true # if Gatling should use pooled memory
+ #tcpNoDelay = true
+ #soReuseAddress = false
+ #soLinger = -1
+ #soSndBuf = -1
+ #soRcvBuf = -1
+ }
+ dns {
+ #queryTimeout = 5000 # Timeout of each DNS query in millis
+ #maxQueriesPerResolve = 3 # Maximum allowed number of DNS queries for a given name resolution
+ }
+ }
+ data {
+ #writers = [console, file] # The list of DataWriters to which Gatling write simulation data (currently supported : console, file, graphite, jdbc)
+ console {
+ #light = false # When set to true, displays a light version without detailed request stats
+ }
+ file {
+ #bufferSize = 8192 # FileDataWriter's internal data buffer size, in bytes
+ }
+ leak {
+ #noActivityTimeout = 30 # Period, in seconds, for which Gatling may have no activity before considering a leak may be happening
+ }
+ graphite {
+ #light = false # only send the all* stats
+ #host = "localhost" # The host where the Carbon server is located
+ #port = 2003 # The port to which the Carbon server listens to (2003 is default for plaintext, 2004 is default for pickle)
+ #protocol = "tcp" # The protocol used to send data to Carbon (currently supported : "tcp", "udp")
+ #rootPathPrefix = "gatling" # The common prefix of all metrics sent to Graphite
+ #bufferSize = 8192 # GraphiteDataWriter's internal data buffer size, in bytes
+ #writeInterval = 1 # GraphiteDataWriter's write interval, in seconds
+ }
+ }
+}
diff --git a/gatling-loadtest-demo/src/test/resources/logback.xml b/gatling-loadtest-demo/src/test/resources/logback.xml
new file mode 100644
index 0000000000..a8fe714e7d
--- /dev/null
+++ b/gatling-loadtest-demo/src/test/resources/logback.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ %d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gatling-loadtest-demo/src/test/resources/recorder.conf b/gatling-loadtest-demo/src/test/resources/recorder.conf
new file mode 100644
index 0000000000..f4ba60310b
--- /dev/null
+++ b/gatling-loadtest-demo/src/test/resources/recorder.conf
@@ -0,0 +1,57 @@
+recorder {
+ core {
+ className=RecordedSimulation
+ encoding=utf-8
+ harFilePath=""
+ headless=false
+ mode=Proxy
+ outputFolder="C:\\develop\\workspaces\\vjportalWorkspace\\gatling-loadtest-demo\\src\\test\\scala"
+ package="org.baeldung"
+ saveConfig=true
+ thresholdForPauseCreation=100
+ }
+ filters {
+ blacklist=[
+ ".*\\.css",
+ ".*\\.js",
+ ".*\\.ico"
+ ]
+ filterStrategy=BlacklistFirst
+ whitelist=[]
+ }
+ http {
+ automaticReferer=true
+ checkResponseBodies=false
+ followRedirect=true
+ inferHtmlResources=true
+ removeCacheHeaders=true
+ }
+ netty {
+ maxChunkSize=8192
+ maxContentLength=100000000
+ maxHeaderSize=20000
+ maxInitialLineLength=10000
+ }
+ proxy {
+ https {
+ certificateAuthority {
+ certificatePath=""
+ privateKeyPath=""
+ }
+ keyStore {
+ password=""
+ path=""
+ type=JKS
+ }
+ mode=SelfSignedCertificate
+ }
+ outgoing {
+ host=""
+ password=""
+ port=0
+ sslPort=0
+ username=""
+ }
+ port=8000
+ }
+}
diff --git a/gatling-loadtest-demo/src/test/scala/Engine.scala b/gatling-loadtest-demo/src/test/scala/Engine.scala
new file mode 100644
index 0000000000..0ac3abe948
--- /dev/null
+++ b/gatling-loadtest-demo/src/test/scala/Engine.scala
@@ -0,0 +1,13 @@
+import io.gatling.app.Gatling
+import io.gatling.core.config.GatlingPropertiesBuilder
+
+object Engine extends App {
+
+ val props = new GatlingPropertiesBuilder
+ props.dataDirectory(IDEPathHelper.dataDirectory.toString)
+ props.resultsDirectory(IDEPathHelper.resultsDirectory.toString)
+ props.bodiesDirectory(IDEPathHelper.bodiesDirectory.toString)
+ props.binariesDirectory(IDEPathHelper.mavenBinariesDirectory.toString)
+
+ Gatling.fromMap(props.build)
+}
diff --git a/gatling-loadtest-demo/src/test/scala/IDEPathHelper.scala b/gatling-loadtest-demo/src/test/scala/IDEPathHelper.scala
new file mode 100644
index 0000000000..32c986a072
--- /dev/null
+++ b/gatling-loadtest-demo/src/test/scala/IDEPathHelper.scala
@@ -0,0 +1,22 @@
+import java.nio.file.Path
+
+import io.gatling.commons.util.PathHelper._
+
+object IDEPathHelper {
+
+ val gatlingConfUrl: Path = getClass.getClassLoader.getResource("gatling.conf").toURI
+ val projectRootDir = gatlingConfUrl.ancestor(3)
+
+ val mavenSourcesDirectory = projectRootDir / "src" / "test" / "scala"
+ val mavenResourcesDirectory = projectRootDir / "src" / "test" / "resources"
+ val mavenTargetDirectory = projectRootDir / "target"
+ val mavenBinariesDirectory = mavenTargetDirectory / "test-classes"
+
+ val dataDirectory = mavenResourcesDirectory / "data"
+ val bodiesDirectory = mavenResourcesDirectory / "bodies"
+
+ val recorderOutputDirectory = mavenSourcesDirectory
+ val resultsDirectory = mavenTargetDirectory / "gatling"
+
+ val recorderConfigFile = mavenResourcesDirectory / "recorder.conf"
+}
diff --git a/gatling-loadtest-demo/src/test/scala/Recorder.scala b/gatling-loadtest-demo/src/test/scala/Recorder.scala
new file mode 100644
index 0000000000..1372da6d41
--- /dev/null
+++ b/gatling-loadtest-demo/src/test/scala/Recorder.scala
@@ -0,0 +1,12 @@
+import io.gatling.recorder.GatlingRecorder
+import io.gatling.recorder.config.RecorderPropertiesBuilder
+
+object Recorder extends App {
+
+ val props = new RecorderPropertiesBuilder
+ props.simulationOutputFolder(IDEPathHelper.recorderOutputDirectory.toString)
+ props.simulationPackage("org.baeldung")
+ props.bodiesFolder(IDEPathHelper.bodiesDirectory.toString)
+
+ GatlingRecorder.fromMap(props.build, Some(IDEPathHelper.recorderConfigFile))
+}
diff --git a/gatling-loadtest-demo/src/test/scala/org/baeldung/RecordedSimulation.scala b/gatling-loadtest-demo/src/test/scala/org/baeldung/RecordedSimulation.scala
new file mode 100644
index 0000000000..553e17e56f
--- /dev/null
+++ b/gatling-loadtest-demo/src/test/scala/org/baeldung/RecordedSimulation.scala
@@ -0,0 +1,46 @@
+package org.baeldung
+
+import scala.concurrent.duration._
+
+import io.gatling.core.Predef._
+import io.gatling.http.Predef._
+import io.gatling.jdbc.Predef._
+
+class RecordedSimulation extends Simulation {
+
+ val httpProtocol = http
+ .baseURL("http://computer-database.gatling.io")
+ .inferHtmlResources(BlackList(""".*\.css""", """.*\.js""", """.*\.ico"""), WhiteList())
+ .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
+ .acceptEncodingHeader("gzip, deflate")
+ .acceptLanguageHeader("it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3")
+ .userAgentHeader("Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0")
+
+
+
+
+
+ val scn = scenario("RecordedSimulation")
+ .exec(http("request_0")
+ .get("/"))
+ .pause(5)
+ .exec(http("request_1")
+ .get("/computers?f=amstrad"))
+ .pause(4)
+ .exec(http("request_2")
+ .get("/computers/412"))
+ .pause(2)
+ .exec(http("request_3")
+ .get("/"))
+ .pause(2)
+ .exec(http("request_4")
+ .get("/computers?p=1"))
+ .pause(1)
+ .exec(http("request_5")
+ .get("/computers?p=2"))
+ .pause(2)
+ .exec(http("request_6")
+ .get("/computers?p=3"))
+
+ setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
+}
\ No newline at end of file