package load
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.core.structure.ChainBuilder
import io.gatling.jdbc.Predef.jdbcFeeder
import scala.util.Random
import scala.concurrent.duration._
class TestOvo extends Simulation {
val httpProtocol = http
.baseURL("http://computer-database.gatling.io")
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("en-US,en;q=0.8")
.userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36")
val headers_0 = Map("Upgrade-Insecure-Requests" -> "1")
val headers_10 = Map(
"Origin" -> "http://computer-database.gatling.io",
"Upgrade-Insecure-Requests" -> "1")
object Search {
val search = exec(http("request_0")
.get("/")
.headers(headers_0))
.pause(1)
.exec(http("request_1")
.get("/computers?f=macbook")
.headers(headers_0))
.pause(2)
.exec(http("request_2")
.get("/computers/89")
.headers(headers_0))
.pause(2)
.exec(http("request_3")
.get("/")
.headers(headers_0))
.pause(2)
}
object Browse {
val browse = exec(http("request_4")
.get("/computers?p=1")
.headers(headers_0))
.pause(1)
.exec(http("request_5")
.get("/computers?p=2")
.headers(headers_0))
.pause(1)
.exec(http("request_6")
.get("/computers?p=3")
.headers(headers_0))
.pause(2)
.exec(http("request_7")
.get("/computers?p=4")
.headers(headers_0)
.resources(http("request_8")
.get("/computers?p=5")
.headers(headers_0)))
.pause(1)
}
object Edit {
val edit = exec(http("request_9")
.get("/computers/new")
.headers(headers_0))
.pause(1)
.exec(http("request_10")
.post("/computers")
.headers(headers_10)
.formParam("name", "VoxooBox")
.formParam("introduced", "12.11.2017")
.formParam("discontinued", "")
.formParam("company", "16")
.check(status.is(400)))
.pause(1)
.exec(http("request_11")
.post("/computers")
.headers(headers_10)
.formParam("name", "VoxooBox")
.formParam("introduced", "2017.08.17")
.formParam("discontinued", "")
.formParam("company", "16")
.check(status.is(400)))
.pause(1)
.exec(http("request_12")
.post("/computers")
.headers(headers_10)
.formParam("name", "VoxooBox")
.formParam("introduced", "2017-08-17")
.formParam("discontinued", "")
.formParam("company", "16"))
}
val users = scenario("Users").exec(Search.search, Browse.browse);
val admins = scenario("Admins").exec(Search.search, Browse.browse, Edit.edit);
setUp(
users.inject(constantUsersPerSec(200) during (300 seconds)),
admins.inject(constantUsersPerSec(50) during (300 seconds))
).protocols(httpProtocol)
}
it goes maximum to indicator of users:
================================================================================
2017-10-17 14:47:20 25s elapsed
---- Requests ------------------------------------------------------------------
> Global (OK=15950 KO=0 )
> request_0 (OK=5046 KO=0 )
> request_0 Redirect 1 (OK=3829 KO=0 )
> request_1 (OK=2582 KO=0 )
> request_2 (OK=1589 KO=0 )
> request_3 (OK=1249 KO=0 )
> request_3 Redirect 1 (OK=897 KO=0 )
> request_4 (OK=423 KO=0 )
> request_5 (OK=224 KO=0 )
> request_6 (OK=88 KO=0 )
> request_7 (OK=17 KO=0 )
> request_8 (OK=6 KO=0 )
---- Users ---------------------------------------------------------------------
[------ ] 0%
waiting: 55156 / active: 4842 / done:2
---- Admins --------------------------------------------------------------------
[------ ] 0%
waiting: 13788 / active: 1212 / done:0
================================================================================
14:47:21.107 [WARN ] i.g.h.a.ResponseProcessor - Request 'request_5' failed: j.n.ConnectException: connection timed out: computer-database.gatling.io/35.158.229.206:80
And then arise these kind of errors:
[WARN ] i.g.h.a.ResponseProcessor - Request 'request_4' failed: j.n.ConnectException: connection timed out: computer-database.gatling.io/35.158.229.206:80
13:31:12.407 [WARN ] i.g.h.a.ResponseProcessor - Request 'request_4' failed: j.n.ConnectException: Failed to open a socket.
In gatling.conf I found these rows:
ahc {
#keepAlive = true # Allow pooling HTTP connections (keep-alive header automatically added)
#connectTimeout = 10000 # Timeout when establishing a connection
#handshakeTimeout = 10000 # Timeout when performing TLS hashshake
#pooledConnectionIdleTimeout = 60000 # Timeout when a connection stays unused in the pool
#readTimeout = 60000 # Timeout when a used connection stays idle
#maxRetry = 2 # Number of times that a request should be tried again
#requestTimeout = 60000 # Timeout of the requests
#acceptAnyCertificate = true # When set to true, doesn't validate SSL certificates
#httpClientCodecMaxInitialLineLength = 4096 # Maximum length of the initial line of the response (e.g. "HTTP/1.0 200 OK")
#httpClientCodecMaxHeaderSize = 8192 # Maximum size, in bytes, of each request's headers
#httpClientCodecMaxChunkSize = 8192 # Maximum length of the content or each chunk
#webSocketMaxFrameSize = 10240000 # Maximum frame payload sizei guess it may be somehow related to my issue, or what i'm doing wrong? Is that my side-issue or their website just can't take it?
And why when I launch
users.inject(constantUsersPerSec(200) during (300 seconds)),
admins.inject(constantUsersPerSec(50) during (300 seconds))
In terminal it's waiting: 55156 / active: 4842 / done:2 waiting: 13788 / active: 1212 / done:0
so many? How is it calculated? or why at all, explain someone to me, please.
Thanks.
My Computer:
MAC OS
Version: 10.12.6 (
Processor: 2.6 GHz Intel Core i5
Memory: 8 GB 1600 MHz DDR3
--
You received this message because you are subscribed to the Google Groups "Gatling User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
And why when I launch
users.inject(constantUsersPerSec(200) during (300 seconds)),
admins.inject(constantUsersPerSec(50) during (300 seconds))
In terminal it's waiting: 55156 / active: 4842 / done:2 waiting: 13788 / active: 1212 / done:0
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+u...@googlegroups.com.
users.inject(constantUsersPerSec(200) during (300 seconds)),
admins.inject(constantUsersPerSec(50) during (300 seconds))
In terminal it's waiting: 55156 / active: 4842 / done:2 waiting: 13788 / active: 1212 / done:0
On idea it's going to be 250 users during 300 seconds, no more no less,
but why in terminal here is: