summaryrefslogtreecommitdiff
path: root/load-test/user-files/simulations/rinhabackend/RinhaBackendCrebitosSimulation.scala
diff options
context:
space:
mode:
Diffstat (limited to 'load-test/user-files/simulations/rinhabackend/RinhaBackendCrebitosSimulation.scala')
-rw-r--r--load-test/user-files/simulations/rinhabackend/RinhaBackendCrebitosSimulation.scala53
1 files changed, 40 insertions, 13 deletions
diff --git a/load-test/user-files/simulations/rinhabackend/RinhaBackendCrebitosSimulation.scala b/load-test/user-files/simulations/rinhabackend/RinhaBackendCrebitosSimulation.scala
index 1ad31cb..b6e0ace 100644
--- a/load-test/user-files/simulations/rinhabackend/RinhaBackendCrebitosSimulation.scala
+++ b/load-test/user-files/simulations/rinhabackend/RinhaBackendCrebitosSimulation.scala
@@ -111,6 +111,25 @@ class RinhaBackendCrebitosSimulation
)
)
+ val validacaDebitosConcorrentesNumRequests = 25
+ val validacaDebitosConcorrentesTransacaoes = scenario("validação concorrência transações")
+ .exec(
+ http("validações concorrência")
+ .post("/clientes/4/transacoes")
+ .header("content-type", "application/json")
+ .body(StringBody("""{"valor": 1, "tipo": "d", "descricao": "validacao"}"""))
+ .check(status.is(200))
+ )
+
+ val validacaDebitosConcorrentesExtrato = scenario("validação concorrência extrato")
+ .exec(
+ http("validações concorrência")
+ .get("/clientes/4/extrato")
+ .check(
+ jmesPath("saldo.total").ofType[Int].is(validacaDebitosConcorrentesNumRequests * -1)
+ )
+ )
+
val saldosIniciaisClientes = Array(
Map("id" -> 1, "limite" -> 1000 * 100),
Map("id" -> 2, "limite" -> 800 * 100),
@@ -217,20 +236,28 @@ class RinhaBackendCrebitosSimulation
comportam individualmente.
*/
setUp(
- criteriosClientes.inject(
- atOnceUsers(1)
+ validacaDebitosConcorrentesTransacaoes.inject(
+ atOnceUsers(validacaDebitosConcorrentesNumRequests)
+ ).andThen(
+ validacaDebitosConcorrentesExtrato.inject(
+ atOnceUsers(1)
+ )
).andThen(
- debitos.inject(
- rampUsersPerSec(1).to(220).during(2.minutes),
- constantUsersPerSec(220).during(2.minutes)
- ),
- creditos.inject(
- rampUsersPerSec(1).to(110).during(2.minutes),
- constantUsersPerSec(110).during(2.minutes)
- ),
- extratos.inject(
- rampUsersPerSec(1).to(10).during(2.minutes),
- constantUsersPerSec(10).during(2.minutes)
+ criteriosClientes.inject(
+ atOnceUsers(1)
+ ).andThen(
+ debitos.inject(
+ rampUsersPerSec(1).to(220).during(2.minutes),
+ constantUsersPerSec(220).during(2.minutes)
+ ),
+ creditos.inject(
+ rampUsersPerSec(1).to(110).during(2.minutes),
+ constantUsersPerSec(110).during(2.minutes)
+ ),
+ extratos.inject(
+ rampUsersPerSec(1).to(10).during(2.minutes),
+ constantUsersPerSec(10).during(2.minutes)
+ )
)
)
).protocols(httpProtocol)