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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
Django集成百度富文本编辑器uEditor攻略
Jul 04 Python
Python中利用原始套接字进行网络编程的示例
May 04 Python
python实现统计代码行数的方法
May 22 Python
Python双向循环链表实现方法分析
Jul 30 Python
python中正则表达式与模式匹配
May 07 Python
int在python中的含义以及用法
Jun 27 Python
python3 pillow模块实现简单验证码
Oct 31 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
python pyg2plot的原理知识点总结
Feb 28 Python
Python音乐爬虫完美绕过反爬
Aug 30 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
Apr 06 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
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
过虑特殊字符输入的js代码
2010/08/05 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
浅析js封装和作用域
2013/07/09 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
Bootstrap CSS布局之按钮
2016/12/17 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
js实现拖拽功能
2017/03/01 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
Python实现全局变量的两个解决方法
2014/07/03 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
python实现二叉查找树实例代码
2018/02/08 Python
python 求一个列表中所有元素的乘积实例
2019/06/11 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
餐饮业的创业计划书范文
2013/12/26 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python
Redis三种集群模式详解
2021/10/05 Redis
Python pyecharts绘制条形图详解
2022/04/02 Python