python實(shí)現(xiàn)websocket的客戶端壓力測(cè)試
使用python進(jìn)行websocket的客戶端壓力測(cè)試,這個(gè)代碼是從github上 找到。然后簡(jiǎn)單修改了下。大神運(yùn)用了進(jìn)程池,以及線程池的內(nèi)容。所以保存下來,學(xué)習(xí)學(xué)習(xí)
然后需要說明的是:本次用的python2.7,也嘗試用python3.6,但是老實(shí)出現(xiàn)websocket-client包和python3不能兼容的情況,提示沒有相關(guān)的方法。所以不得已最后又采用了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" # 定義進(jìn)程數(shù) processes = 4 # 定義線程數(shù)(每個(gè)文件可能限制1024個(gè),可以修改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(): # 設(shè)置你websocket的內(nèi)容 # 每隔10秒發(fā)送一下數(shù)據(jù)使鏈接不中斷 while True: ws.send(u'hello服務(wù)器') 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è)置開啟線程的數(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__": # 進(jìn)程池 pool = multiprocessing.Pool(processes=processes) # 設(shè)置開啟進(jìn)程的數(shù)量 for i in xrange(processes): pool.apply_async(thread_web_socket) pool.close() pool.join()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python Websocket服務(wù)端通信的使用示例
- Python通過websocket與js客戶端通信示例分析
- 使用python構(gòu)建WebSocket客戶端的教程詳解
- python實(shí)現(xiàn)WebSocket服務(wù)端過程解析
- 詳解python websocket獲取實(shí)時(shí)數(shù)據(jù)的幾種常見鏈接方式
- Python如何爬取實(shí)時(shí)變化的WebSocket數(shù)據(jù)的方法
- python制作websocket服務(wù)器實(shí)例分享
- Python 實(shí)現(xiàn) WebSocket 通信的過程詳解
相關(guān)文章
pycharm快捷鍵自動(dòng)提示documentation問題(auto?Ctrl+Q)
這篇文章主要介紹了pycharm快捷鍵自動(dòng)提示documentation問題(auto?Ctrl+Q),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04OpenCV搞定騰訊滑塊驗(yàn)證碼的實(shí)現(xiàn)代碼
這篇文章主要介紹了OpenCV搞定騰訊滑塊驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05python實(shí)現(xiàn)mean-shift聚類算法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)mean-shift聚類算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06Python-VTK隱式函數(shù)屬性選擇和剪切數(shù)據(jù)
這篇文章主要介紹了Python-VTK隱式函數(shù)屬性選擇和剪切數(shù)據(jù),VTK,是一個(gè)開放資源的免費(fèi)軟件系統(tǒng),主要用于三維計(jì)算機(jī)圖形學(xué)、圖像處理和可視化,下面文章主題相關(guān)詳細(xì)內(nèi)容需要的小伙伴可以參考一下2022-04-04教你使用Python建立任意層數(shù)的深度神經(jīng)網(wǎng)絡(luò)
這篇文章主要介紹了Python建立任意層數(shù)的深度神經(jīng)網(wǎng)絡(luò),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08利用pandas如何實(shí)現(xiàn)類似sql中的left join操作
這篇文章主要介紹了利用pandas如何實(shí)現(xiàn)類似sql中的left join操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06如何在Python中實(shí)現(xiàn)goto語(yǔ)句的方法
這篇文章主要介紹了如何在Python中實(shí)現(xiàn)goto語(yǔ)句的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05python進(jìn)度條庫(kù)tqdm的基本操作方法
這篇文章主要介紹了python進(jìn)度條庫(kù)tqdm的基本操作方法,tqdm實(shí)時(shí)輸出處理進(jìn)度而且占用的CPU資源非常少,支持windows、Linux、mac等系統(tǒng),支持循環(huán)處理、多進(jìn)程、遞歸處理、還可以結(jié)合linux的命令來查看處理情況等優(yōu)點(diǎn),下面對(duì)其更多內(nèi)容詳細(xì)介紹,需要的朋友可以參考一下2022-03-03