У меня есть этот файл input.json
[
{
"url": "https://api.origin.cloud/dev/battledriver/Organizations/",
"user":100
}
]
Теперь в настоящее время я отправляю URL через фидер Json в код Gatling, теперь какой должен быть синтаксис для отправки пользователя в скрипт Gatling ниже симуляции пакета
import baseConfig.BaseSimulation
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration.DurationInt
class OgreBattleDriverWithJsoniterator extends BaseSimulation {
val usersDataSource = jsonFile("input.json").random
var idNumbers = (21 to 33).iterator
def getNextOrgId() =
{
if (!idNumbers.hasNext)
idNumbers = (21 to 33).iterator
Map("orgId" -> idNumbers.next())
}
val customFeeder = Iterator.continually(getNextOrgId())
def getSpecificOgreID() = {
repeat(100) {
exec(flushHttpCache)
feed(usersDataSource)
.feed(customFeeder).
exec(http("Get Specific Driver Org Id")
.get("${url}"+"${orgId}")
.check(status.is(200)) // check for a specific status
.check(jsonPath(path = "$.name").saveAs(key = "name"))) // check for a specific status
.exec { session => println(session); session } // parameter for the orgId goes here
.pause(1)
}
}
val scn = scenario("Ogre Battle Driver Event")
.forever() {exec(getSpecificOgreID())
.pause(5)
//.pause(5)
}
// Run for a fixed duration
setUp(
scn.inject(
nothingFor(5 seconds),
atOnceUsers(StringBody("${user}"))
// atOnceUsers(100)
// rampUsers(300) during (60 second)
//rampUsers(1) during (20 second)
).protocols(httpConf.inferHtmlResources()))
.maxDuration(1 minute)
}
Проблема с приведенным выше кодом заключается в том, что atOnceUsers (StringBody ("$ {user}")) выдает ошибку в редакторе IntelliJ для исправления синтаксиса. Укажите решение, как я могу отправить пользователя из файла JSON в часть настройки Gatling?