对socket.io的加特林压力测试

时间:2017-04-27 14:08:08

标签: scala socket.io gatling

我试图用gatling测试socket.io并且我使用exec块:

//...
 .exec(session => {
 val socket = IO.socket(socketURL + session.get("token").as[String])
 val printListener: Emitter.Listener = new Emitter.Listener {
    override def call(args: AnyRef*): Unit = {
       println(args) //Stop time here for example
    }
 }
 socket.on("info", printListener)
 socket.connect()
 socket.emit("info", "{}") //Start timer
 session
 })
//...

在gatling报告中是否有时间执行exec块?

1 个答案:

答案 0 :(得分:1)

我对Gatling几乎一无所知我读到Session是一种Map所以你可能会做这样的事情sessiont.set("startTime", currentTimeMillis)但它会返回另一个会话,但它是不可变的所以你需要多做一点。 如果没有,你可能会做一个像这样的解决方法:

//...
 .exec(session => {
 var start:Long = 0L
 val socket = IO.socket(socketURL + session.get("token").as[String])
 val printListener: Emitter.Listener = new Emitter.Listener {
    override def call(args: AnyRef*): Unit = {
       println( "Time: "+((System.nanoTime - start) / 1000000) )
       println(args) //Stop time here for example
    }
 }
 socket.on("info", printListener)
 socket.connect()
 socket.emit("info", (()=>{ start = System.nanoTime;"{}"})()) //Start timer
 session
 })
//...

我没有测试这段代码..它几乎是一个psudo代码,它有点难看,但我认为它可以工作。 我希望这有帮助。 欢呼声。

<强> EDITED!