1、jmeter如何测试websocket接口?
- 先引入相关jar包
- 插件管理,apply插件
- 添加相应的sampler
2、jmeter的websocket插件建立长连接是否断开以及何时去断开连接呢?
- 第一种:WebSocket Open Connection + WebSocket request-response Sampler + WebSocket Close(夹心饼干型)
情况1:一个线程多次循环,第一次循环结束断开长连接,第二次循环结束断开长连接
情况2:多个线程一次循环,线程1在所有该线程所有调用结束后释放连接,线程2在它所在线程所有调用结束后释放连接
那么多个线程多次循环就是线程在当前循环且当前线程所有接口调用完成释放连接
- 第二种:WebSocket Open Connection + WebSocket request-response Sampler(有头无尾型)
情况1:一个线程多次循环,第一次循环结束断开连接,~~~最后一次循环不断开连接(因为是同一个线程去连接,必须释放原先的连接才能再次连接,实际上是第二次循环去建立连接的时候断开的原先第一次循环的连接)
情况2:多个线程一次循环,线程都不断开连接
那么多个线程多次循环,只有最后一次循环不断开连接
- 第三种:使用WebSocket Sampler,勾选保持长连接streaming connection
情况1:一个线程多次循环,这个线程一直不放开连接,直到最后一次循环执行完成才释放连接
情况2:多个线程一次循环,多个线程要等到所有的线程执行完成(测试计划被执行完成),才会一起释放连接,不是线程自己执行完就释放,先执行完的等到后执行完的,然后一起释放
那么多个线程多次循环,只有在最后一次循环完成,所有的线程才会一起释放连接
- 第四种:使用WebSocket Sampler,不勾选保持长连接streaming connection
不管是哪种情况,都是请求一次建立连接,请求完成就关闭连接。比如一个线程组有8个websocket的请求接口(如上图),每个线程调用一个websocket请求接口,先建立连接,调用完成释放连接;这样就有点像是http接口。一般来说websocket接口需要保持长连接。
3、以上说的何时连接何时断开,如何去看呢?
方法1:看服务器的调用日志,打印连接与断开长连接的日志
方法2:看jmeter的执行日志