У меня проблема с Гатлингом и временем ответа API. Я хочу проверить производительность (время отклика) и конечную точку с определенным количеством пользователей (в примерах 200).
У меня есть конечная точка в https://my-remote-machine/rest/v1/auth-token, чтобы получить действительный токен, выполняющий операцию POST с учетными данными.
Результаты
Apache тест
Выполнение следующей команды:
ab -T 'application/json' -n 200 -c 200 -p creds https://my-remote-machine/rest/v1/auth-token
Я получаю следующее время ответа:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 101 112 75.4 104 1139
Processing: 66 85 79.6 73 1036
Waiting: 66 85 79.6 73 1035
Total: 169 197 111.8 177 1209
Percentage of the requests served within a certain time (ms)
50% 177
66% 180
75% 185
80% 188
90% 196
95% 236
98% 418
99% 1155
100% 1209 (longest request)
Между 169 мс и 1209 мс
Но когда я это делаю с Гатлингом время отклика очень высокое, и я не знаю, почему это происходит. (Тесты были выполнены локально и в конвейере Jenkins на одном хосте vShpere, меньше задержки в сети и те же результаты)
Код Gatling
val httpProtocol = http.baseUrl("https://my-remote-machine/rest/v1/")
val scn = scenario(scenarioName)
.exec(
http("my-auth-requests")
.post("auth-token")
.body(StringBody("{ \"username\":\"admin\", \"password\":\"mypassword\" }"))
.header("Content-Type", "application/json")
.check(status.is(200))
setUp(scn.inject(atOnceUsers(numberOfUsers))).protocols(httpProtocol)
И результаты:
================================================================================
---- Global Information --------------------------------------------------------
> request count 200 (OK=200 KO=0 )
> min response time 365 (OK=365 KO=- )
> max response time 3322 (OK=3322 KO=- )
> mean response time 2359 (OK=2359 KO=- )
> std deviation 750 (OK=750 KO=- )
> response time 50th percentile 2544 (OK=2544 KO=- )
> response time 75th percentile 2946 (OK=2946 KO=- )
> response time 95th percentile 3260 (OK=3260 KO=- )
> response time 99th percentile 3306 (OK=3306 KO=- )
> mean requests/sec 50 (OK=50 KO=- )
---- Response Time Distribution ------------------------------------------------
> t < 800 ms 12 ( 6%)
> 800 ms < t < 1200 ms 10 ( 5%)
> t > 1200 ms 178 ( 89%)
> failed 0 ( 0%)
================================================================================
Между 365 мс и 3322 мс , что намного выше, чем с Apache Бенчмарк
Я повторял тесты много раз и всегда одни и те же результаты .
Любая подсказка?