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画一颗心的方法示例
Jan 31 Python
python executemany的使用及注意事项
Mar 13 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
Python实现的tcp端口检测操作示例
Jul 24 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
python opencv将图片转为灰度图的方法示例
Jul 31 Python
Python3 A*寻路算法实现方式
Dec 24 Python
使用Tkinter制作信息提示框
Feb 18 Python
Python使用ElementTree美化XML格式的操作
Mar 06 Python
keras.layer.input()用法说明
Jun 16 Python
Python QT组件库qtwidgets的使用
Nov 02 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 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维护文件系统
2006/10/09 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
Django配置文件代码说明
2019/12/04 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
优秀本科生求职推荐信
2014/02/24 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
监督检查工作方案
2014/05/28 职场文书
学习考察心得体会
2014/09/04 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
环卫工作汇报材料
2014/10/28 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android