diff options
Diffstat (limited to 'e2e-tests/src/test/scala/com/google/gerrit/scenarios/SubmitChange.scala')
-rw-r--r-- | e2e-tests/src/test/scala/com/google/gerrit/scenarios/SubmitChange.scala | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/e2e-tests/src/test/scala/com/google/gerrit/scenarios/SubmitChange.scala b/e2e-tests/src/test/scala/com/google/gerrit/scenarios/SubmitChange.scala new file mode 100644 index 0000000000..2f67274d3f --- /dev/null +++ b/e2e-tests/src/test/scala/com/google/gerrit/scenarios/SubmitChange.scala @@ -0,0 +1,62 @@ +// Copyright (C) 2020 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.gerrit.scenarios + +import io.gatling.core.Predef.{atOnceUsers, _} +import io.gatling.core.feeder.FeederBuilder +import io.gatling.core.structure.ScenarioBuilder +import io.gatling.http.Predef.http + +import scala.concurrent.duration._ + +class SubmitChange extends GerritSimulation { + private val data: FeederBuilder = jsonFile(resource).convert(keys).queue + private val default: String = name + + private val test: ScenarioBuilder = scenario(unique) + .feed(data) + .exec(session => { + session.set("number", createChange.number) + }) + .exec(http(unique).post("${url}${number}/submit")) + + private val createProject = new CreateProject(default) + private val createChange = new CreateChange(default) + private val approveChange = new ApproveChange(createChange) + private val deleteProject = new DeleteProject(default) + + setUp( + createProject.test.inject( + nothingFor(stepWaitTime(createProject) seconds), + atOnceUsers(1) + ), + createChange.test.inject( + nothingFor(stepWaitTime(createChange) seconds), + atOnceUsers(1) + ), + approveChange.test.inject( + nothingFor(stepWaitTime(approveChange) seconds), + atOnceUsers(1) + ), + test.inject( + nothingFor(stepWaitTime(this) seconds), + atOnceUsers(1) + ), + deleteProject.test.inject( + nothingFor(stepWaitTime(deleteProject) seconds), + atOnceUsers(1) + ), + ).protocols(httpProtocol) +} |