我试图用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块?
答案 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!强>