使用python进行tcp协议接口的并发测试

进行 tcp 协议的接口测试 首先要了解tcp协议 以及可以使用python实现tcp协议如果之前没有掌握 可以查看我的另一篇文章https://www.jianshu.com/p/367a00db6217 

我使用的是gevent库 虽然现在asynio异步库出现 但是 有点晦涩难懂 所以我使用的是gevent库来实现并发

# 这是我写代码 
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'))  # 这段代码是发送给服务器的信息

      server_data = test.recv(1024)

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

a = [gevent.spawn(test1, i)for i in range(10001)]  # 使用列表推导式

print(a)

gevent.joinall(a)

我们用test1的函数来封装我们所需要 的tcp请求

('115.29.177.4', 7000)  这个元组 代表着  服务器的ip地址和端口号

gevent.spawn(test1, 参数)  我们可以把这段代码理解为   并发的准备  来为了 1s中实现1w个异步请求

然后我创建了一个 列表为a   使用列表推导式 来进行 10000个并发的准备

gevent.joinall(a)  这段代码来执行所有准备的请求

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 协程 阅读目录 一 引子 二 协程介绍 三 Greenlet模块 四 Gevent模块 引子 之前我们学习了线程、...
    go以恒阅读 4,017评论 0 1
  • 一、总体内容 1.1、协程的介绍 1.2、迭代器以及迭代器的应用 1.3、生成器(生成器与迭代器保存的都是生成数据...
    IIronMan阅读 4,294评论 0 1
  • 必备的理论基础 1.操作系统作用: 隐藏丑陋复杂的硬件接口,提供良好的抽象接口。 管理调度进程,并将多个进程对硬件...
    drfung阅读 8,941评论 0 5
  • 参考资料 http://www.gevent.org/contents.html https://uwsgi-do...
    JunChow520阅读 17,036评论 0 10
  • 很久没有码字了,有很多原因,最主要的可能还是因为懒。一直不温不火的关系,每天习惯的不咸不淡的问候,寥寥数字之后许久...
    海边的桃源阅读 916评论 0 0