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实现小数转化为百分数的格式化输出方法示例
Sep 20 Python
Python生成器以及应用实例解析
Feb 08 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
从运行效率与开发效率比较Python和C++
Dec 14 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
python getpass模块用法及实例详解
Oct 07 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
Python控制鼠标键盘代码实例
Dec 08 Python
Python 实现RSA加解密文本文件
Dec 30 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/07/19 PHP
php define的第二个参数使用方法
2013/11/04 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
python中二维阵列的变换实例
2014/10/09 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
Python新手如何理解循环加载模块
2020/05/29 Python
Python sublime安装及配置过程详解
2020/06/29 Python
如何验证python安装成功
2020/07/06 Python
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
员工薪酬福利制度
2014/01/17 职场文书
摄影助理岗位职责
2014/02/07 职场文书
承诺书应该怎么写?
2019/09/10 职场文书