Я пытаюсь создать фидер, основанный на данных jdbc, которые создаются на этапе перед сценарием. Мне не удается получить правильные данные в фидере.
package com.testing
import com.testing.config.Config
import io.gatling.core.Predef._
import io.gatling.core.Predef.Simulation
import io.gatling.core.feeder.SourceFeederBuilder
import io.gatling.jdbc.Predef.jdbcFeeder
object PostgresDb {
def prepareData() {
// postgress data generation here
}
def emptyDatabase() {
// postgress truncate table
}
}
class MyFeeder {
private[this] val databaseConfig: Config.DatabaseConfig = Config.databaseConfig
// Database feeder
val dbData : SourceFeederBuilder[Any]
= jdbcFeeder( databaseConfig.url
, databaseConfig.username
, databaseConfig.password
, "SELECT \"Id\" FROM test.\"Ids\" ORDER BY random()"
).circular
}
class Experiment extends Simulation {
before{ PostgresDb.emptyDatabase()
PostgresDb.prepareData() }
val lazyFeeder = new MyFeeder
Class.forName("org.postgresql.Driver")
val scn = scenario("Demo").feed(lazyFeeder.dbData).
exec(session => {
println("Id: " + session("Id").as[String])
session }).inject(atOnceUsers(1))
setUp(scn)
}
Я ожидаю, что в фидере будут данные, основанные на шаге подготовки / перед моим сценарием. Однако мне кажется, что я получаю данные моего предыдущего прогона, что подразумевает, что данные фидера инициализируются до того, как данные будут обновлены на шаге до.
Как я могу использовать свежие данные, а не данные, которые есть в базе данныхуже