Gatling Websocket реагирует на сообщение - PullRequest
1 голос
/ 06 февраля 2020

Можно ли написать сценарий gatling , который подключается к WebSocket и затем выполняет действия (например, новые запросы HTTP) при получении определенных сообщений (предпочтительно с поддержкой «из коробки») для сообщений STOMP, но я мог бы, вероятно, обойти это).

Другими словами, «реальные клиенты» должны быть смоделированы как можно лучше. Реальные клиенты (angular приложения) будут загружать данные на основе определенных сообщений WebSocket.

Я ищу что-то похожее (псевдокод, не работает):

val scn = scenario("WebSocket")
  .exec(http("Home").get("/"))
  .pause(1)
  .exec(session => session.set("id", "Steph" + session.userId))
  .exec(http("Login").get("/room?username=${id}"))
  .pause(1)
  .exec(
    ws("Connect WS")
      .open("/room/chat?username=${id}")
      // ---------------------------------------------------------------------
      // Is it possible to trigger/exec something (http call, full scenario)
      // as reaction to a STOMP/WebSocket message?
      .onMessage(check(perform some check, maybe regex?).as("idFromPayload"))
      .exec(http("STOMP reaction").get("/entity/${idFromPayload}"))
      // ---------------------------------------------------------------------
  )
  .exec(ws("Close WS").close)
  // ideally, closing the websocket should only be done once the full scenario is over
  // (or never, until the script terminates in "forever" scenarios)

Возможно ли это в настоящее время? Если нет, планируется ли это в будущих версиях Гатлинга?

...