美文网首页
利用JMeter测试webSocket性能

利用JMeter测试webSocket性能

作者: WJXZ | 来源:发表于2018-05-30 14:11 被阅读0次

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

    相关文章

      网友评论

          本文标题:利用JMeter测试webSocket性能

          本文链接:https://www.haomeiwen.com/subject/jkutsftx.html