Reputation: 91
I am trying to run my gatling tests via command gatling:test and I get this result:
[info] Simulation CheckPerformance successful.
13:08:30.196 [ERROR] i.g.a.Gatling$ - Run crashed
java.lang.IllegalArgumentException: requirement failed: No scenario set up
at scala.Predef$.require(Predef.scala:281)
at io.gatling.core.scenario.Simulation.params(Simulation.scala:129)
at io.gatling.app.Runner.run0(Runner.scala:76)
at io.gatling.app.Runner.run(Runner.scala:60)
at io.gatling.app.Gatling$.start(Gatling.scala:80)
at io.gatling.app.Gatling$.fromArgs(Gatling.scala:46)
at io.gatling.sbt.GatlingTask.liftedTree1$1(GatlingTask.scala:52)
at io.gatling.sbt.GatlingTask.execute(GatlingTask.scala:51)
at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:304)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
[error] java.lang.IllegalArgumentException: requirement failed: No scenario set up
[error] at scala.Predef$.require(Predef.scala:281)
[error] at io.gatling.core.scenario.Simulation.params(Simulation.scala:129)
[error] at io.gatling.app.Runner.run0(Runner.scala:76)
[error] at io.gatling.app.Runner.run(Runner.scala:60)
[error] at io.gatling.app.Gatling$.start(Gatling.scala:80)
[error] at io.gatling.app.Gatling$.fromArgs(Gatling.scala:46)
[error] at io.gatling.sbt.GatlingTask.liftedTree1$1(GatlingTask.scala:52)
[error] at io.gatling.sbt.GatlingTask.execute(GatlingTask.scala:51)
[error] at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:304)
[error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] at java.base/java.lang.Thread.run(Thread.java:834)
[error] Simulation BaseSimulation failed.
[info] Simulation(s) execution ended.
BaseSimulation scala class contains only baseURL
import io.gatling.core.Predef._
import io.gatling.http.Predef.http
class BaseSimulation extends Simulation {
val httpProtocol = http
.baseUrl("https://baseurl.com")
}
I tried to run only test using command gatling:testOnly package.TestClass. It works locally, but the same command in gitlab ci job leads to the same error even though all the tests passed successfully.
[info] Simulation CheckPerformance successful.
09:52:02.214 [ERROR] i.g.a.Gatling$ - Run crashed
java.lang.IllegalArgumentException: requirement failed: No scenario set up
at scala.Predef$.require(Predef.scala:281)
at io.gatling.core.scenario.Simulation.params(Simulation.scala:129)
at io.gatling.app.Runner.run0(Runner.scala:76)
at io.gatling.app.Runner.run(Runner.scala:60)
at io.gatling.app.Gatling$.start(Gatling.scala:80)
at io.gatling.app.Gatling$.fromArgs(Gatling.scala:46)
at io.gatling.sbt.GatlingTask.liftedTree1$1(GatlingTask.scala:52)
at io.gatling.sbt.GatlingTask.execute(GatlingTask.scala:51)
at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:304)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[error] java.lang.IllegalArgumentException: requirement failed: No scenario set up
[error] at scala.Predef$.require(Predef.scala:281)
[error] at io.gatling.core.scenario.Simulation.params(Simulation.scala:129)
[error] at io.gatling.app.Runner.run0(Runner.scala:76)
[error] at io.gatling.app.Runner.run(Runner.scala:60)
[error] at io.gatling.app.Gatling$.start(Gatling.scala:80)
[error] at io.gatling.app.Gatling$.fromArgs(Gatling.scala:46)
[error] at io.gatling.sbt.GatlingTask.liftedTree1$1(GatlingTask.scala:52)
[error] at io.gatling.sbt.GatlingTask.execute(GatlingTask.scala:51)
[error] at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:304)
[error] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] at java.lang.Thread.run(Thread.java:748)
[error] Simulation BaseSimulation failed.
[info] Simulation(s) execution ended.
[error] Failed tests:
[error] package.BaseSimulation
[error] (Gatling / testOnly) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 22 s, completed May 20, 2020 9:52:02 AM
Running after_script
Uploading artifacts for failed job
00:03
Uploading artifacts...
target/gatling/: found 42 matching files
Uploading artifacts to coordinator... ok id=833478 responseStatus=201 Created token=d3PcCfw5
ERROR: Job failed: exit code 1
What did I miss? I will be happy to hear any ideas!
Upvotes: 1
Views: 5499
Reputation: 97
If you are trying to extend to a BaseSimulation that doesn't have any scenarios listed, you should add this to your pom.xml
<configuration>
<runMultipleSimulations>true</runMultipleSimulations>
<excludes>
<exclude>packageName.BaseSimulation</exclude>
</excludes>
</configuration>
Upvotes: 1
Reputation: 11
Add setup annotation at the end Sample Code
val headers_10 = Map("Content-Type" -> """application/json""")
val httpProtocol = http
.baseUrl("https://reqres.in")
val scn = scenario("BasicSimulation")
.exec(http("request_1")
.post("/api/users")
.headers(headers_10)
.body(StringBody("""{
"name": "morpheus",
"job": "leader"
} """)).asJson)
.pause(5)
setUp(
scn.inject(atOnceUsers(50)) // 12
).protocols(httpProtocol)
Upvotes: 1
Reputation: 6623
Error is self explanatory: No scenario set up.
class BaseSimulation extends Simulation {
val httpProtocol = http
.baseUrl("https://baseurl.com")
}
This is not a valid Gatling simulation.
You don't define scenario(s) and a setUp.
Please have a look at the official documentation, in particular the tutorials.
Upvotes: 0