e2e-tests: Unhardcode test scenarios project names Make the CloneUsingMultiGerrit1 scenario use the automatically generated project name, which is its own class name. Get its delegate project scenarios to use that same name consistently. Use an underscore-prefixed _PROJECT keyword for that purpose, based on the core framework practice. Have the CreateProjectUsingMultiGerrit and DeleteProjectUsingMultiGerrit scenarios still support configurable test project names, as independant scenarios. Reuse core framework's JAVA_OPTS support for that matter, by means of introducing the PROJECT keyword in scenario json data files. CloneUsingMultiGerrit1 still enforces its own consistent test project name, through its aggregating use of CreateProjectUsingMultiGerrit and DeleteProjectUsingMultiGerrit. The 'project' JAVA_OPTS property (defining PROJECT) should not be set in that case. Change-Id: Ib1478381b82cd8cd53cb30522d0f2970edc4bab1
diff --git a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.json b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.json index 26d227c..34d4ca0 100644 --- a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.json +++ b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.json
@@ -1,6 +1,6 @@ [ { - "url": "http://HOSTNAME:HTTP_PORT1/loadtest-repo", + "url": "http://HOSTNAME:HTTP_PORT1/_PROJECT", "cmd": "clone" } ]
diff --git a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.json b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.json index f1a38ae..40e5a45 100644 --- a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.json +++ b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.json
@@ -1,5 +1,5 @@ [ { - "url": "http://HOSTNAME:HTTP_PORT/a/projects/loadtest-repo" + "url": "http://HOSTNAME:HTTP_PORT/a/projects/PROJECT" } ]
diff --git a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.json b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.json index e5167b5..7cc8293 100644 --- a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.json +++ b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.json
@@ -1,5 +1,5 @@ [ { - "url": "http://HOSTNAME:HTTP_PORT/a/projects/loadtest-repo/delete-project~delete" + "url": "http://HOSTNAME:HTTP_PORT/a/projects/PROJECT/delete-project~delete" } ]
diff --git a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.scala b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.scala index 7adce59..4a7c65d 100644 --- a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.scala +++ b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.scala
@@ -23,17 +23,19 @@ class CloneUsingMultiGerrit1 extends GitSimulation { private val data: FileBasedFeederBuilder[Any]#F#F = jsonFile(resource).convert(url).queue + private val default: String = name override def replaceOverride(in: String): String = { - replaceProperty("http_port1", 8081, in) + val next = replaceProperty("http_port1", 8081, in) + replaceKeyWith("_project", default, next) } private val test: ScenarioBuilder = scenario(name) .feed(data) .exec(gitRequest) - private val createProject = new CreateProjectUsingMultiGerrit - private val deleteProject = new DeleteProjectUsingMultiGerrit + private val createProject = new CreateProjectUsingMultiGerrit(default) + private val deleteProject = new DeleteProjectUsingMultiGerrit(default) setUp( createProject.test.inject(
diff --git a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.scala b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.scala index be82658..3ae12b5 100644 --- a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.scala +++ b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.scala
@@ -14,14 +14,19 @@ package com.googlesource.gerrit.plugins.multisite.scenarios -import com.google.gerrit.scenarios.GerritSimulation +import com.google.gerrit.scenarios.ProjectSimulation import io.gatling.core.Predef._ import io.gatling.core.feeder.FileBasedFeederBuilder import io.gatling.core.structure.ScenarioBuilder -class CreateProjectUsingMultiGerrit extends GerritSimulation { +class CreateProjectUsingMultiGerrit extends ProjectSimulation { private val data: FileBasedFeederBuilder[Any]#F#F = jsonFile(resource).convert(url).queue + def this(default: String) { + this() + this.default = default + } + val test: ScenarioBuilder = scenario(name) .feed(data) .exec(httpRequest)
diff --git a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.scala b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.scala index 6e81231..ee645a9 100644 --- a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.scala +++ b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.scala
@@ -14,14 +14,19 @@ package com.googlesource.gerrit.plugins.multisite.scenarios -import com.google.gerrit.scenarios.GerritSimulation +import com.google.gerrit.scenarios.ProjectSimulation import io.gatling.core.Predef._ import io.gatling.core.feeder.FileBasedFeederBuilder import io.gatling.core.structure.ScenarioBuilder -class DeleteProjectUsingMultiGerrit extends GerritSimulation { +class DeleteProjectUsingMultiGerrit extends ProjectSimulation { private val data: FileBasedFeederBuilder[Any]#F#F = jsonFile(resource).convert(url).queue + def this(default: String) { + this() + this.default = default + } + val test: ScenarioBuilder = scenario(name) .feed(data) .exec(httpRequest)