python实现websocket的客户端压力测试


Posted in Python onJune 25, 2019

使用python进行websocket的客户端压力测试,这个代码是从github上 找到。然后简单修改了下。大神运用了进程池,以及线程池的内容。所以保存下来,学习学习

然后需要说明的是:本次用的python2.7,也尝试用python3.6,但是老实出现websocket-client包和python3不能兼容的情况,提示没有相关的方法。所以不得已最后又采用了python2

# -*- coding:utf-8 -*-
# __author__ == 'chenmingle'
 
import websocket
import time
import threading
import json
import multiprocessing
import uuid
from threadpool import ThreadPool, makeRequests
 
# 修改成自己的websocket地址
WS_URL = "xxxx"
# 定义进程数
processes = 4
# 定义线程数(每个文件可能限制1024个,可以修改fs.file等参数)
thread_num = 700
index = 1
 
 
def on_message(ws, message):
 # print(message)
 pass
 
 
def on_error(ws, error):
 print(error)
 pass
 
 
def on_close(ws):
 # print("### closed ###")
 pass
 
 
def on_open(ws):
 global index
 index = index + 1
 
 def send_thread():
  # 设置你websocket的内容
  # 每隔10秒发送一下数据使链接不中断
  while True:
   ws.send(u'hello服务器')
   time.sleep(10)
 
 t = threading.Thread(target=send_thread)
 t.start()
 
 
def on_start(num):
 time.sleep(5)
 # websocket.enableTrace(True)
 ws = websocket.WebSocketApp(WS_URL + str(num),
        on_message=on_message,
        on_error=on_error,
        on_close=on_close)
 ws.on_open = on_open
 ws.run_forever()
 
 
def thread_web_socket():
 # 线程池
 pool_list = ThreadPool(thread_num)
 num = list()
 # 设置开启线程的数量
 for ir in range(thread_num):
  num.append(ir)
 requests = makeRequests(on_start, num)
 [pool_list.putRequest(req) for req in requests]
 pool_list.wait()
 
 
if __name__ == "__main__":
 # 进程池
 pool = multiprocessing.Pool(processes=processes)
 # 设置开启进程的数量
 for i in xrange(processes):
  pool.apply_async(thread_web_socket)
 pool.close()
 pool.join()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现抓取城市的PM2.5浓度和排名
Mar 19 Python
wxPython中listbox用法实例详解
Jun 01 Python
pip命令无法使用的解决方法
Jun 12 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
python pygame实现2048游戏
Nov 20 Python
python进行TCP端口扫描的实现
Dec 21 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
python制作填词游戏步骤详解
May 05 Python
python celery分布式任务队列的使用详解
Jul 08 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
linux 下selenium chrome使用详解
Apr 02 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
Mar 03 Python
python中metaclass原理与用法详解
Jun 25 #Python
python实现接口并发测试脚本
Jun 25 #Python
Python实现EXCEL表格的排序功能示例
Jun 25 #Python
python实现动态创建类的方法分析
Jun 25 #Python
python pandas写入excel文件的方法示例
Jun 25 #Python
python多线程http压力测试脚本
Jun 25 #Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 #Python
You might like
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
详解vue中组件参数
2018/07/09 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
python冒泡排序简单实现方法
2015/07/09 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
幼儿园毕业园长感言
2014/02/24 职场文书
实习生岗位职责
2014/04/12 职场文书
结对共建工作方案
2014/06/02 职场文书
汽修专业自荐信
2014/07/07 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
预备党员半年考察意见
2015/06/01 职场文书
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS
DQL数据查询语句使用示例
2022/12/24 MySQL