diff options
Diffstat (limited to 'load-test/user-files/simulations/rinhabackend/RinhaBackendCrebitosSimulation.scala')
-rw-r--r-- | load-test/user-files/simulations/rinhabackend/RinhaBackendCrebitosSimulation.scala | 53 |
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) |