微信号:gh_2e633dc8619c

介绍:我们是产品质量的守护者,我们所做的一切就是保证质量!我们的目标就是将质量保证服务化,做服务的Provider!

异步修饰器tomorrow之简介

2017-10-13 14:08 周沫

前言:项目中经常会对服务进行http接口测试,python中一般会调用requests模块get方法进行请求。若要大并发数量的请求会调用多线程/进程来实现。下面将介绍一种异步请求模块tomorrow。


两种对server进行http请求的比较

单进程调用requests模块get方法进行http请求

代码:

代码分析:

  • Step1. 解析一个包含3000条URL的文本,返回列表urls

  • Step2. 通过列表表达式,遍历urls列表,串行有序对每个元素调用download方法进行http请求,返回responses列表

  • Step3. 读取服务器响应的内容,返回给列表html 

运行结果:


通过tomorrow模块多线程异步进行http请求

代码:

引入tomorrow模块,增加装饰器@thread(5)对download方法进行修饰。

运行结果:

分析:

  • 通过上面例子发现,仅仅是在代码上增加了一行装饰器的用法@threads(112),性能有了约20倍的提升。

  • 调用tomorrow模块异步进行请求的代码,所返回的响应的内容并不是按照请求顺序所返回的。

结语

对于单进程串行http访问的脚本,只需导入tomorrow模块加一个装饰器@thread(112),就可以多线程异步执行requests函数进行http访问,下一篇会深入对tomorrow模块的源码进行解析。




 
铸盾师 更多文章 基于Jenkins pipeline的持续交付流水线介绍及实践 kubernetes在测试中的应用实践 基于Ansible & Docker的分布式系统(下) Kubernets实践日记之安装篇 测试,遇见不同(上篇)
猜您喜欢 趣题:如何实现一个码表 业界SQL支持最强,可实时数据挖掘的流计算引擎-- Transwarp Stream 坐而论道 | Docker 四周年:新生儿与独角兽(上) 开源|微软亚洲研究院开源图数据查询语言LIKQ 你不知道的Z-Index