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 17 Python
Python中list初始化方法示例
Sep 18 Python
Python实现ping指定IP的示例
Jun 04 Python
Python实现的knn算法示例
Jun 14 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
Python pip使用超时问题解决方案
Aug 03 Python
python线程优先级队列知识点总结
Feb 28 Python
解决pytorch 损失函数中输入输出不匹配的问题
Jun 05 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 print EOF实现方法
2009/05/21 PHP
PHP实现多条件查询实例代码
2010/07/17 PHP
php中神奇的fastcgi_finish_request
2011/05/02 PHP
解析php入库和出库
2013/06/25 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
pyshp创建shp点文件的方法
2018/12/31 Python
Python3最长回文子串算法示例
2019/03/04 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
《记金华的双龙洞》教学反思
2014/04/19 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
治安消防安全责任书
2014/07/23 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
python中subplot大小的设置步骤
2021/06/28 Python