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获取系统默认字符编码的方法
Jun 04 Python
在Python中使用正则表达式的方法
Aug 13 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
Numpy数组的保存与读取方法
Apr 04 Python
python保存数据到本地文件的方法
Jun 23 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
Django框架实现的分页demo示例
May 25 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
Python常用GUI框架原理解析汇总
Dec 07 Python
Python使用Web框架Flask开发项目
Jun 01 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
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
如何用python整理附件
2018/05/13 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
java判断三位数的实例讲解
2019/06/10 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
Python中的整除和取模实例
2020/06/03 Python
Python中的全局变量如何理解
2020/06/04 Python
一份比较全的PHP面试题
2016/07/29 面试题
Linux文件操作命令都有哪些
2015/02/27 面试题
大学生优秀的自我评价分享
2013/10/22 职场文书
食品营养与检测应届生求职信
2013/11/08 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
导游词之贵州织金洞
2019/10/12 职场文书