Это зависит от того, как вы хотите обработать этот первый HTTP-вызов. Я вижу две возможности:
- Получить URL перенаправления один раз за симуляцию, а затем сделать несколько вызовов на один и тот же URL перенаправления в симуляции. В этом случае первый вызов не будет частью имитации с точки зрения Гатлинга.
- Получите URL перенаправления независимо для каждого пользователя в симуляции, а затем вызовите разные URL перенаправления один раз (или N раз). В этом случае первый вызов будет частью симуляции, но вы можете группировать вызовы с помощью
group(name){...}
, поэтому вы получите отдельную статистику для каждой группы.
Если я правильно понимаю ваш вопрос, вас интересуетв первом решении. В этом случае вам нужно будет использовать некоторый внешний HTTP-клиент и сгенерировать этот URL перенаправленияУ Gatling есть блок before{}
, когда вы можете поместить любую логику (хотя вы не можете использовать там Gatling DSL), но, честно говоря, я бы просто сделал это в конструкторе класса моделирования, например, если URL перенаправления возвращается как заголовок Location
, вы можете получить его с помощьюHTTP-клиент Apache:
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.HttpClients
class RedirectSimulation extends Simulation {
val redirectUrl = HttpClients.createDefault
.execute(new HttpGet("http://redirectgenerator/getRedirect"))
.getLastHeader("Location")
.getValue
val scn = scenario("Test redirect url")
.exec(
http("Get response").get(redirectUrl)
)
setUp(scn.inject(atOnceUsers(10)))
}