利用JMeter测试webSocket性能
2018-05-30 本文已影响0人
WJXZ
1. JMeter的基本使用
2.依赖的下载
点击下列链接自己选择jar包版本(本人使用9.4.6.v20170531)
(1) JMeterWebSocketSamplers 需要代理
(2) jetty-http
(3) jetty-io
(4) jetty-util
(5) websocket-api
(6) websocket-client
(7) websocket-common
3.导入jar包
#将你下载的所有jar包,复制到
apache-jmeter-4.0\lib\ext
#该目录下
4.websocket使用方法
(1)范例:用tornado框架写了一个测试服务
##依赖
pip install tornado==5.0.2
##test.py
# -*- coding: utf-8 -*-
import json
import tornado.web
import tornado.websocket
import tornado.httpserver
import tornado.ioloop
import tornado.options
class ProStatus(object):
''' 处理类 '''
w_register = []
def register(self, callbacker):
''' 记录客户端连接实例 '''
# self.w_register.append(callbacker)
callbacker.write_message('hello tornado')
def unregister(self, callbacker):
''' 删除客户端连接实例 '''
# self.w_register.remove(callbacker)
def receiveMsg(self, msg):
''' 处理接受的行内容 '''
self.trigger(msg)
def trigger(self, res):
''' 向所有被记录客户端发送最新内容 '''
for callabler in self.w_register:
callabler.write_message(res)
class WriteNewDataHandler(tornado.websocket.WebSocketHandler):
''' 接受websocket链接,保存链接实例 '''
def check_origin(self, origin): #针对websocket处理类重写同源检查的方法
return True
def open(self):
''' 处理新的连接 '''
ProStatus().register(self)
def on_close(self):
ProStatus().unregister(self) #删除客户端连接
def on_message(self, message):
pass
class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r'/write',WriteNewDataHandler),
]
settings = {
}
tornado.web.Application.__init__(self, handlers, **settings)
if __name__ == "__main__":
tornado.options.parse_command_line()
server = tornado.httpserver.HTTPServer(Application())
server.listen(8000)
tornado.ioloop.IOLoop.instance().start()
(2)启动websocket服务
python test.py
(3)启动JMeter
windows环境打开 bin下的jmeter.bat
linux环境打开bin下的jmeter.sh
(4)配置与上一节类似
不同的是
1.png 2.png完成配置后将配置文件保存到你自己的目录下
(5)进入JMeter的安装目录的bin,启动命令行
jmeter -n -t C:\Users\WJXZ\Desktop\jmeter\tornado.jmx -l C:\Users\WJXZ\Desktop\jmeter\html.csv -e -o C:\Users\WJXZ\Desktop\jmeter\HttpReports