diff --git a/pom.xml b/pom.xml index 2c9880848..af60fd088 100644 --- a/pom.xml +++ b/pom.xml @@ -132,6 +132,8 @@ 3.4 1.2 4.0.0 + 2.2.5 + 2.2.4 18.0 1.4.190 2.3.2 @@ -155,6 +157,7 @@ 3.0.1 2.19 1.6.6 + 2.11.7 2.1.20 2.48.2 1.7.12 diff --git a/webgoat-container/pom.xml b/webgoat-container/pom.xml index 0db4bf3e7..f9e4f76ae 100644 --- a/webgoat-container/pom.xml +++ b/webgoat-container/pom.xml @@ -14,6 +14,29 @@ + + + performance + + + + io.gatling + gatling-maven-plugin + ${gatling-plugin.version} + + + + execute + + + + + + + + + + @@ -129,6 +152,12 @@ commons-lang3 ${commons-lang3.version} + + io.gatling.highcharts + gatling-charts-highcharts + ${gatling.version} + test + javax.servlet jstl @@ -174,6 +203,11 @@ javax.transaction-api ${javax.transaction-api.version} + + org.scala-lang + scala-compiler + ${scala.version} + @@ -189,7 +223,6 @@ - diff --git a/webgoat-container/src/test/scala/Simulation.scala b/webgoat-container/src/test/scala/Simulation.scala new file mode 100644 index 000000000..4e8fe9b42 --- /dev/null +++ b/webgoat-container/src/test/scala/Simulation.scala @@ -0,0 +1,27 @@ +import io.gatling.core.Predef._ +import io.gatling.http.Predef._ +import org.apache.commons.lang3.RandomStringUtils + +import scala.concurrent.duration._ + +class BasicSimulation extends Simulation { + + val httpConf = http + .baseURL("http://localhost:8080/WebGoat/") // Here is the root for all relative URLs + .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0") + + val scn = scenario("Register and automatic login"). + exec(session => + session.setAll(("username", RandomStringUtils.randomAlphabetic(10))) + ) + .exec( + http("Test") + .post("register.mvc") + .formParam("username", "${username}") + .formParam("password", "${username}") + .formParam("matchingPassword", "${username}") + .formParam("agree", "agree") + ) + + setUp(scn.inject(atOnceUsers(100)).protocols(httpConf)) +} \ No newline at end of file