Gatling.io scala socket.io

#scala #websocket #socket.io #gatling

#scala #websocket #socket.io #гатлинг

Вопрос:

Я пишу тест на gatling и пытаюсь отправить сокет.событие ввода-вывода на сервер. Но при сборке проекта возникает ошибка.

Мой тест

Ошибка

 /home/pbezpal/roschat/testing-roschat/load-testing/Gatling/src/test/scala/ServerLoad.scala:49:17
type mismatch;
 found   : io.socket.emitter.Emitter
 required: io.gatling.commons.validation.Validation[io.gatling.core.session.Session]
       socket.on( Socket.EVENT_CONNECT, new Listener {
  

Как правильно писать. Спасибо

Ответ №1:

Мне удалось это сделать

 .exec(session => {
       val obj = new JSONObject()
       val aknowledge = null
       obj.put("login", "${login}")
       obj.put("password", "${password}")
       obj.put("APILevel", "${level}")
       optConnect.forceNew = false
       optConnect.timeout = 10000
       val socket = IO.socket( socketUrl, optConnect )
       val printListener: Emitter.Listener = new Emitter.Listener {
         override def call(args: AnyRef*): Unit = {
         }
       }
       socket.on(Socket.EVENT_CONNECT, printListener)
       socket.connect()
       socket.emit("login",obj)
       session
      }
     )
  

Но теперь на сервер отправляется $ {login}, а не значение из csv-файла. Как это исправить? Спасибо

Комментарии:

1. obj.put метод ничего не знает об EL Гатлинга — вам придется извлекать значение из сеанса вручную, используя session("login").as[String]