一、原始代码功能如下,包含两个request接口的调用,耗时情况约4秒

import datetime
import time
import requests start_time = datetime.datetime.now()
print("开始时间:",start_time) url = "http://192.168.37.8:7777/api/mytest2"
data1 = requests.post(url).text
print(data1)
time.sleep(2) url2 = "http://192.168.37.8:7777/api/mytest"
data2 = requests.get(url2).text
print(data2)
time.sleep(2) end_time = datetime.datetime.now()
print("结束时间",end_time)
time_need = (end_time - start_time ).seconds
print("耗时豪秒数:",time_need)

耗时约:4秒

二、替换语句,使用session对象,加上session后再调用,优化效果不明显

import datetime
import time
import requests start_time = datetime.datetime.now()
print("开始时间:",start_time)
session = requests.session() url = "http://192.168.37.8:7777/api/mytest2"
data1 = session.post(url).text
print(data1)
time.sleep(2) url2 = "http://192.168.37.8:7777/api/mytest"
data2 = session.get(url2).text
print(data2)
time.sleep(2) end_time = datetime.datetime.now()
print("结束时间",end_time)
time_need = (end_time - start_time ).seconds
print("耗时豪秒数:",time_need)

耗时依然是:4秒

三、引入多线程机制,优化效果比较明显
1.定义线程方法
def thread_1():
def thread_2():

2.定义线程
thread1 = threading.Thread(target = thread_1)
thread2 = threading.Thread(target = thread_2)

3.启动线程
thread1.start()
thread2.start()

4.等待线程执行完毕
thread1.join()
thread2.join()

其中时间的语句如下:

start_time = datetime.datetime.now()
//
end_time = datetime.datetime.now()
time_need = (end_time - start_time ).seconds

具体的实现如下:

import datetime
import threading
import time
import requests start_time = datetime.datetime.now()
print("开始时间:",start_time) def thread_1():
url = "http://192.168.37.8:7777/api/mytest2"
data1 = requests.post(url).text
print(data1)
time.sleep(2) def thread_2():
url2 = "http://192.168.37.8:7777/api/mytest"
data2 = requests.get(url2).text
print(data2)
time.sleep(2) thread1 = threading.Thread(target = thread_1)
thread2 = threading.Thread(target = thread_2) thread1.start()
thread2.start() thread1.join()
thread2.join() end_time = datetime.datetime.now()
print("结束时间",end_time)
time_need = (end_time - start_time ).seconds
print("耗时豪秒数:",time_need)

耗时确实下降至2秒

多个request接口的功能优化处理速度的更多相关文章

  1. Springmvc借助SimpleUrlHandlerMapping实现接口开关功能

    一.接口开关功能 1.可配置化,依赖配置中心 2.接口访问权限可控 3.springmvc不会扫描到,即不会直接的将接口暴露出去 二.接口开关使用场景 和业务没什么关系,主要方便查询系统中的一些状态信 ...

  2. anyproxy学习2-rule模块实现接口mock功能

    前言 AnyProxy不仅仅可以抓包,还可以拦截请求并修改服务端响应,实现接口mock功能. 面试时候经常会问到第三方支付如何测试这种,如果对接的第三方没提供测试环境,那么就需要搭建一个mock服务器 ...

  3. python+request接口自动化框架

    python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...

  4. 微信小程序wx.request接口

    微信小程序wx.request接口 wx.request是小程序客户端与服务器端交互的接口 HTTPS 请求 一个微信小程序,只能同时(同时不能大于5个)有5个网络请求 wx.request(OBJE ...

  5. WeTest功能优化第3期:业内首创,有声音的云真机

    第3期功能优化目录 [云真机远程调试]音频同步传输实现测试有声 [兼容性测试报告]新增视频助力动态定位问题 [云真机远程调试]菜单栏优化助力机型选择 本期介绍的新功能,秉承创造用户需求的理念,在云真机 ...

  6. WeTest功能优化第2期:云真机智能投屏,调试告别鼠标

    第2期功能优化目录 [云真机视频映射]云真机画面本地映射[兼容性测试报告]新增问题机型聚类功能[新增Android9.0]同步上线最新安卓系统 本期介绍的云测产品功能优化,既有重磅级技术突破,也有报告 ...

  7. WeTest功能优化第1期:截图960px,云真机映射功能了解

    第1期功能优化目录 [全线产品测试截图优化]安卓机型测试截图分辨率上升至960px [云真机新增Android 9]最新安卓系统,等你pick [云真机新增键盘映射功能]电脑键盘码字,云真机同步显示  ...

  8. MySQL慢日志线上问题分析及功能优化

    本文来源于数据库内核专栏. MySQL慢日志(slow log)是MySQL DBA及其他开发.运维人员需经常关注的一类信息.使用慢日志可找出执行时间较长或未走索引等SQL语句,为进行系统调优提供依据 ...

  9. node express 登录拦截器 request接口请求

    1.拦截器 拦截器可以根据需要 做权限拦截 登录只是权限的一种, 思路是req.session.user判断用户session是否存在,是否是需要拦截的地址, 如果是就跳转登录页,或其他页, 如果非需 ...

  10. Flask request接口获取参数

    Flask request接口获取参数   request.form.get("key", type=str, default=None) 获取表单数据, request.args ...

随机推荐

  1. C# 绘制面形图

    图形要素:4个点.颜色.作图对象.数据 Graphics g;//创建Graphics对象 private void button1_Click(object sender, EventArgs e) ...

  2. chage详解:liunx账户密码过期时处理

    公司安装elasticSearcher7.10.2版本时提示账户密码过期,可以做以下的处理方式: 一.查看账户的使用情况 chage -l baikang [root@localhost ~]# ch ...

  3. Android——“EditText控件供获取最大长度的方法”

    package utils; import android.app.Activity; import android.content.Context; import android.text.Inpu ...

  4. Java进程内线程数量限制的相关学习

    Java进程内线程数量限制的相关学习 背景 还是之前出现 cannot create native thread 的问题的后续 周末在家学习了下如何在容器外抓取dump. 也验证了下能否开启超过宿主机 ...

  5. [转帖]redis缓存命中率介绍

    缓存命中率的介绍 命中:可以直接通过缓存获取到需要的数据. 不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作.原因可能是由于缓存中根本不存在,或者缓存已经过期. 通常来讲 ...

  6. [转帖]LOAD DATA INFILE 导入数据

    https://www.jianshu.com/p/bcafd8f3ad8e LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并写入一个表中.文件名称必须为一个文字字符串.LOA ...

  7. [转帖]使用 TiUP cluster 在单机上安装TiDB

    https://zhuanlan.zhihu.com/p/369414808   TiUP 是 TiDB 4.0 版本引入的集群运维工具,TiUP cluster 是 TiUP 提供的使用 Golan ...

  8. [转帖]Zookeeper集群搭建(3个节点为例)

    Zookeeper集群搭建 1.说明 本文用的linux版本:centos6,准备3台centos6虚拟机,给他们安装zookeeper,每一台的安装过程相同,你也可以安装一台,然后克隆出另外两台.主 ...

  9. 【转帖】ChatGPT的前身:InstructGPT

    https://www.jianshu.com/p/6daf35cbc46a ChatGPT的论文目前还没有发布,在其官方博客(https://openai.com/blog/chatgpt/)中对方 ...

  10. ES6 Array.fiill()的用法

    简单使用 // arr.fill(value, start, end) // value填充的值 // start填充的起始位置包含 // end填充的结束值,不包含,如果省略这个参数,表示从起始位置 ...