使用python進(jìn)行tcp協(xié)議接口的并發(fā)測試

進(jìn)行 tcp 協(xié)議的接口測試 首先要了解tcp協(xié)議 以及可以使用python實現(xiàn)tcp協(xié)議如果之前沒有掌握 可以查看我的另一篇文章http://www.itdecent.cn/p/367a00db6217?

我使用的是gevent庫 雖然現(xiàn)在asynio異步庫出現(xiàn) 但是 有點晦澀難懂 所以我使用的是gevent庫來實現(xiàn)并發(fā)

# 這是我寫代碼?
import gevent

from geventimport monkey; monkey.patch_all()

import socket


def test1(num):

? ? ? test = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

? ? ? test.connect(('115.29.177.5', 7000))

? ? ? test.send(('{"st":"HB"}$_header_${"code":-3507,"msg":"%d"}$_package_$'%num).encode('utf-8'))? # 這段代碼是發(fā)送給服務(wù)器的信息

? ? ? server_data = test.recv(1024)

? ? ? print('the server respond', server_data.decode('utf-8'))

a = [gevent.spawn(test1, i)for i in range(10001)]? # 使用列表推導(dǎo)式

print(a)

gevent.joinall(a)

我們用test1的函數(shù)來封裝我們所需要 的tcp請求

('115.29.177.4', 7000)? 這個元組 代表著? 服務(wù)器的ip地址和端口號

gevent.spawn(test1, 參數(shù))? 我們可以把這段代碼理解為? ?并發(fā)的準(zhǔn)備? 來為了 1s中實現(xiàn)1w個異步請求

然后我創(chuàng)建了一個 列表為a? ?使用列表推導(dǎo)式 來進(jìn)行 10000個并發(fā)的準(zhǔn)備

gevent.joinall(a)? 這段代碼來執(zhí)行所有準(zhǔn)備的請求

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 協(xié)程 閱讀目錄 一 引子 二 協(xié)程介紹 三 Greenlet模塊 四 Gevent模塊 引子 之前我們學(xué)習(xí)了線程、...
    go以恒閱讀 788評論 0 1
  • 一、總體內(nèi)容 1.1、協(xié)程的介紹 1.2、迭代器以及迭代器的應(yīng)用 1.3、生成器(生成器與迭代器保存的都是生成數(shù)據(jù)...
    IIronMan閱讀 892評論 0 1
  • 必備的理論基礎(chǔ) 1.操作系統(tǒng)作用: 隱藏丑陋復(fù)雜的硬件接口,提供良好的抽象接口。 管理調(diào)度進(jìn)程,并將多個進(jìn)程對硬件...
    drfung閱讀 3,756評論 0 5
  • 參考資料 http://www.gevent.org/contents.html https://uwsgi-do...
    JunChow520閱讀 17,095評論 0 10
  • 很久沒有碼字了,有很多原因,最主要的可能還是因為懶。一直不溫不火的關(guān)系,每天習(xí)慣的不咸不淡的問候,寥寥數(shù)字之后許久...
    海邊的桃源閱讀 147評論 0 0

友情鏈接更多精彩內(nèi)容