使用python進(jìn)行websocket的客戶(hù)端壓力測(cè)試,這個(gè)代碼是從github上 找到。然后簡(jiǎn)單修改了下。大神運(yùn)用了進(jìn)程池,以及線程池的內(nèi)容。所以保存下來(lái),學(xué)習(xí)學(xué)習(xí)
然后需要說(shuō)明的是:本次用的python2.7,也嘗試用python3.6,但是老實(shí)出現(xiàn)websocket-client包和python3不能兼容的情況,提示沒(méi)有相關(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è)置開(kāi)啟線程的數(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è)置開(kāi)啟進(jìn)程的數(shù)量 for i in xrange(processes): pool.apply_async(thread_web_socket) pool.close() pool.join()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
