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中使用OpenCV库来进行简单的气象学遥感影像计算
Feb 19 Python
Python3 模块、包调用&路径详解
Oct 25 Python
python中abs&map&reduce简介
Feb 20 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
python爬虫获取新浪新闻教学
Dec 23 Python
Python离线安装PIL 模块的方法
Jan 08 Python
python处理“
Jun 10 Python
Django使用模板后无法找到静态资源文件问题解决
Jul 19 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
Python数据持久化存储实现方法分析
Dec 21 Python
Python读写操作csv和excle文件代码实例
Mar 16 Python
pycharm 激活码及使用方式的详细教程
May 12 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脚本的10个技巧(2)
2006/10/09 PHP
php下intval()和(int)转换使用与区别
2008/07/18 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
python中实现k-means聚类算法详解
2017/11/11 Python
python实现聚类算法原理
2018/02/12 Python
WxPython建立批量录入框窗口
2019/02/27 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
教育实践活动对照检查材料
2014/09/23 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
Python趣味挑战之实现简易版音乐播放器
2021/05/28 Python
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL