Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как выполнить SQL запрос в процессе сценария gatling

gatling
Теги: #<Tag:0x00007f7b60f9ef10>

(Igor Vlasuyk) #1

Есть ли тут знатоки Гатлинга? Проблема у меня в следующем: в процессе сценария надо сделать обычный sql запрос для того чтобы получить ID объекта и дальше идти по сценарию. Но гатлинг как я понимаю всю работу с БД осуществляет до начала сценария, чтобы были готовые данные …
Погуглив, нашёл инструмент gatling - jdbc и написал такой код

val technic_root_id = exec(jdbc("selection").select("technic_root_id").from("ods_req_car.technic_request").where("id = ${car_request_id}"))

В сценарии вызываю этот запрос через такой exec:

.exec(Technic.viewTechnicCard(Technic.technic_root_id.toString))

Но в логе вижу, что ID объекта не соответствует ожидаемому

GET http://server.host/api/tech/ChainBuilder(List(JdbcSelectionWithWhereActionBuilder(%3Cfunction1%3E,%3Cfunction1%3E,%3Cfunction1%3E,io.gatling.core.session.el.ElCompiler$$$Lambda$338/879423823@6464ef69)))?loadTree=true

После части УРЛа tech/ явно не ID объекта.
Прошу помочь с моей проблемой - как в процессе сценария сделать sql запрос и результат подставить как параметр метода ?


(Ruslan Semerenko) #2

gatling-jdbc существует для оказания нагрузки на базу, а не для вытягивая данных.
В любом случае, обращение в базу посреди теста - это искажение результатов нагрузки. Не стоит так делать. Необходимо вытягивать данные до начала теста. Для этого есть масса фреймворков на скале - anorm, slick, squeryl etc.