利用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
与上一节同在你指定的位置生成报告,这里结果不在展示
上一篇下一篇

猜你喜欢

热点阅读