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基础教程之Hello World!
Aug 29 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
python 全局变量的import机制介绍
Sep 07 Python
使用C++扩展Python的功能详解
Jan 12 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 Python
pandas 数据实现行间计算的方法
Jun 08 Python
对python字典元素的添加与修改方法详解
Jul 06 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
Aug 18 Python
关于numpy中eye和identity的区别详解
Nov 29 Python
python实现单张图像拼接与批量图片拼接
Mar 23 Python
Python中内建模块collections如何使用
May 27 Python
python 带时区的日期格式化操作
Oct 23 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 防注入函数(格式化数据)
2011/08/08 PHP
php简单实现数组分页的方法
2016/04/30 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
微信小程序  action-sheet详解及实例代码
2016/11/09 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
Python中内建函数的简单用法说明
2016/05/05 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
餐饮加盟计划书
2014/01/10 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
师范生自荐信模板
2014/05/28 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
党员活动总结
2015/02/04 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
高中同学会致辞
2015/08/01 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers