python實現(xiàn)websocket的客戶端壓力測試
使用python進行websocket的客戶端壓力測試,這個代碼是從github上 找到。然后簡單修改了下。大神運用了進程池,以及線程池的內(nèi)容。所以保存下來,學習學習
然后需要說明的是:本次用的python2.7,也嘗試用python3.6,但是老實出現(xiàn)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"
# 定義進程數(shù)
processes = 4
# 定義線程數(shù)(每個文件可能限制1024個,可以修改fs.file等參數(shù))
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的內(nèi)容
# 每隔10秒發(fā)送一下數(shù)據(jù)使鏈接不中斷
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()
# 設置開啟線程的數(shù)量
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)
# 設置開啟進程的數(shù)量
for i in xrange(processes):
pool.apply_async(thread_web_socket)
pool.close()
pool.join()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
pycharm快捷鍵自動提示documentation問題(auto?Ctrl+Q)
這篇文章主要介紹了pycharm快捷鍵自動提示documentation問題(auto?Ctrl+Q),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
Python-VTK隱式函數(shù)屬性選擇和剪切數(shù)據(jù)
這篇文章主要介紹了Python-VTK隱式函數(shù)屬性選擇和剪切數(shù)據(jù),VTK,是一個開放資源的免費軟件系統(tǒng),主要用于三維計算機圖形學、圖像處理和可視化,下面文章主題相關詳細內(nèi)容需要的小伙伴可以參考一下2022-04-04
教你使用Python建立任意層數(shù)的深度神經(jīng)網(wǎng)絡
這篇文章主要介紹了Python建立任意層數(shù)的深度神經(jīng)網(wǎng)絡,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
利用pandas如何實現(xiàn)類似sql中的left join操作
這篇文章主要介紹了利用pandas如何實現(xiàn)類似sql中的left join操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06

