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读取注册表中值的方法
Apr 08 Python
Python脚本实现DNSPod DNS动态解析域名
Feb 14 Python
请不要重复犯我在学习Python和Linux系统上的错误
Dec 12 Python
pytorch中tensor的合并与截取方法
Jul 26 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
详解Python静态网页爬取获取高清壁纸
Apr 23 Python
django做form表单的数据验证过程详解
Jul 26 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
python字典与json转换的方法总结
Dec 28 Python
如何利用python 读取配置文件
Jan 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
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
微信小程序页面间传递数组对象方法解析
2019/11/06 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
python读取excel表格生成erlang数据
2017/08/26 Python
python的socket编程入门
2018/01/29 Python
python unittest实现api自动化测试
2018/04/04 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
党的群众路线教育学习材料
2014/05/12 职场文书
机械工程学院大学生求职信
2014/05/25 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
毕业设计论文评语
2014/12/31 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
运动会报道稿大全
2015/07/23 职场文书
高三化学教学反思
2016/02/22 职场文书
2019秋季运动会口号
2019/06/25 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python