接到一个应用测试,应用实现主要使用websocket保持长链接,使用protobuf格式交换数据,用途为发送消息,需要我们测试评估性能,初步评估需要测试长链接数、峰值消息数以及长期运行稳定性
整体需求不难,主要困难是第一次接触websocket和protobuf,同时也没有现成的脚本可以使用,jmeter原生也不支持websocket协议,需要安装插件支持,protobuf格式也需要重新编译大包使用
万里长征第一步,先开发测试脚本,由于目前一直在使用python开发,评估项目的性能要求,不需要严格性能指标,所以直接使用python作为开发语言编写脚本,主要实现脚本如下
入口主文件,mulitprocess.py,多进程发起建立链接
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 # -*- coding: utf-8 -*- 2 # @Author : monleylu 3 # @Time : 2018/7/5 12:22 PM 4 5 from multiprocessing import Process,Pool 6 import os 7 from data import user 8 from protobufcon import ProtoService 9 import tnlog,logging 10 11 def consumer(host,port,username): 12 logging.error('启动子进程: %s...' % (os.getpid())) 13 kwargs = { "host": host, "port": port, "username": username } 14 pro=ProtoService(**kwargs) 15 pro.startWebsocket() 16 17 18 def consumer2(*args,**kwargs): 19 logging.error('启动子进程: %s...' % (os.getpid()))