我试图用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
})
//...在报告中是否有执行执行模块的时间?
发布于 2017-04-27 15:29:51
我对Gatling几乎一无所知--我读到Session是一种Map,所以您可能会做类似于这个sessiont.set("startTime", currentTimeMillis)的事情,但是它会返回另一个会话,bc它是不变的,所以您需要做更多的事情。如果没有,您可能会做这样的解决办法:
//...
.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代码,它有点难看,但我认为它可以工作。我希望这能帮到你。干杯。
编辑!
https://stackoverflow.com/questions/43660232
复制相似问题