1 Commits

Author SHA1 Message Date
LQ63 49b6a148ce feat(Gatlin): Spike Test
Added a spike test.
2026-05-04 16:03:15 +02:00
4 changed files with 32 additions and 27 deletions
+3 -2
View File
@@ -23,8 +23,9 @@ tasks.withType(io.gatling.gradle.GatlingRunTask) {
"-Dhealthz.path=${findProperty('healthzPath') ?: '/health'}",
"-DmaxUsers=${findProperty('maxUsers') ?: '10'}",
"-DrampDuration=${findProperty('rampDuration') ?: '60'}",
"-DconcurrentUsers=${findProperty('concurrentUsers') ?: '3'}",
"-Dduration=${findProperty('duration') ?: '300'}"
"-DbaselineUsers=${findProperty('baselineUsers') ?: '2'}",
"-DbaselineDuration=${findProperty('baselineDuration') ?: '20'}",
"-DspikeUsers=${findProperty('spikeUsers') ?: '15'}"
]
}
@@ -6,9 +6,9 @@ object BoardEndpoints {
val createGame: Endpoint = Endpoint(
name = "Create Game",
method = "GET",
path = "/api/account/official-bots/",
// expectedStatus = 200
method = "POST",
path = "/api/board/game/",
expectedStatus = 201
)
val all: List[Endpoint] = List(createGame)
@@ -1,22 +0,0 @@
package simulations
import base.BaseSimulation
import endpoints.BoardEndpoints
import io.gatling.core.Predef._
import scala.concurrent.duration._
class EnduranceTestSimulation extends BaseSimulation {
private val concurrentUsers = sys.props.getOrElse("concurrentUsers", "3").toInt
private val duration = sys.props.getOrElse("duration", "300").toInt
setUp(
BoardEndpoints.all.map { endpoint =>
scenarioFromEndpoint(endpoint)
.inject(
constantConcurrentUsers(concurrentUsers).during(duration.seconds)
)
}: _*
).protocols(httpProtocol)
}
@@ -0,0 +1,26 @@
package simulations
import base.BaseSimulation
import endpoints.BoardEndpoints
import io.gatling.core.Predef._
import scala.concurrent.duration._
class SpikeTestSimulation extends BaseSimulation {
private val baselineUsers = sys.props.getOrElse("baselineUsers", "2").toInt
private val baselineDuration = sys.props.getOrElse("baselineDuration", "20").toInt
private val spikeUsers = sys.props.getOrElse("spikeUsers", "15").toInt
setUp(
BoardEndpoints.all.map { endpoint =>
scenarioFromEndpoint(endpoint)
.inject(
constantUsersPerSec(baselineUsers).during(baselineDuration.seconds),
atOnceUsers(spikeUsers),
nothingFor(5.seconds),
constantUsersPerSec(baselineUsers).during(baselineDuration.seconds)
)
}: _*
).protocols(httpProtocol)
}