requests发请求时,接口的响应时间,也是我们需要关注的一个点,如果响应时间太长,也是不合理的。
如果服务端没及时响应,也不能一直等着,可以设置一个timeout超时的时间

具体的实现如下:

  超时(默认单位:s):

  timeout=0.5:设置到不大于0.5s的超时时间

timeout=(0.5,0.8):设置区间时间的等待

    当出现超时时,则会抛出此异常:requests.exceptions.ConnectTimeout: HTTPConnectionPool    

  获取响应时间:

      r.elapsed.total_seconds()

    

#-*- coding:utf-8 -*-
import requests
from requests import exceptions try:
#timeout=0.1 ,timeout=(0.5,0.8)
r = requests.post(url=url, data=data, headers=headers, verify=False, timeout=0.5)    r.elapsed.total_seconds() #获取实际的响应时间
   print r.json()
except exceptions.Timeout as e: 

  print("抛出异常") 

进阶:

如需要统一所有的测试接口的超时时间都可设置一致的话,那么只需要将timeout添加到配置文件中,统一进行管控即可,在测试的接口中timeout直接给定参数,那么在后期的更改timeout的超时时间,只在配置文件中更改即可。如果timeout的超时时间不需要那么的统一,则只需在每个请求的接口中写即可。

示例:

(1)在   host_header.yaml  的配置文件中添加timeout

########################## 测试环境,通用的headers配置 ######################################
#请求接口的url的域名
host: https://testapp.goodiber.com/v2/ #dev1的测试环境域名 #请求接口的请求头中的共用参数
headers:
"version": "2.3.0"
"version-id": ""
"os": "ios"
"sign": ""
"is-test": "" #设置的超时时间
timeout: 10

(2)在使用的py文件,login.py 文件中调用即可。

import yaml
import sys,os
import json # 导入yaml中的host
reload(sys)
sys.setdefaultencoding("utf-8") root_path = os.getcwd()[:-5]
with open(root_path + "/Config/host_header.yaml", 'rb') as f:
data = yaml.load(f)
host = data["host"]
timeout = data["timeout"] .....前面的url、headers的编写此处省略 r = requests.post(url=url, data=data, headers=headers, verify=False,timeout = timeout) #直接给定timeout参数即可
get_reponse = r.json() # 获取到reponse返回的所有内容
result = json.dumps(get_reponse, encoding="utf-8", ensure_ascii=False) #将获取到的reponse中的中文已utf-8的格式显示。否则显示Unicode

Python+request 获取响应(elapsed)和响应时间(timeout)《七》的更多相关文章

  1. python request获取ip、获取登录设备

    from flask import request 获取ip request.remote_addr 获取登录设备 request.user_agent.string

  2. python request 获取cookies value值的方法

    import requests res = requests.get(url) cookies = requests.utils.dict_from_cookiejar(res.cookies) pr ...

  3. request的响应时间elapsed和超时timeout

    前言:requests发请求时,接口的响应时间,也是我们需要关注的一个点,如果响应时间太长,也是不合理的 1.获取接口请求的响应时间  r.elapsed.total_seconds() import ...

  4. python获取响应某个字段值的三种方法

    近期将要对两个接口进行测试,第一个接口的响应值是第二个接口的查询条件.为了一劳永逸,打算写个自动化测试框架.因为请求和响应都是xml格式的,遇到的问题就是怎么获取xml响应的某一个值.尝试了很多博客的 ...

  5. Python+requests 发送简单请求--》获取响应状态--》获取请求响应数据

    Python+requests 发送简单请求-->获取响应状态-->获取请求响应数据 1.环境:安装了Python和vscode编译器(Python自带的编译器也ok).fiddler抓包 ...

  6. Python + request接口测试中Cookie和Session的获取和使用

    Cookie和Session的简单理解  由于Http协议是无状态的,所以产生了cookie和session进行状态的管理. 从哪里来,在哪里,到哪里去: --> Cookie是由服务端生成,存 ...

  7. python+request 常用基础学习笔记

    1.pycharm,避免控制台输出的json内容中文出现乱码. #注:乱码为Unicode格式:\u6d4b\u8bd5.加入如下代码后正确返回中文:测试 get_result = r.json() ...

  8. (转)python request用法

    强烈推荐!requests官方文档已有了中文版,请见http://cn.python-requests.org/zh_CN/latest/ requests是python的一个HTTP客户端库,跟ur ...

  9. Python+request超时和重试

    Python+request超时和重试 一.什么是超时? 1.连接超时 连接超时指的是没连接上,超过指定的时间内都没有连接上,这就是连接超时.(连接时间就是httpclient发送请求的地方开始到连接 ...

随机推荐

  1. PHP 7 错误处理 Error

    前提:PHP 7 改变了大多数错误的报告方式.不同于 PHP 5 的传统错误报告机制,现在大多数错误被作为 Error 异常抛出. try { echo 2 % 0; // 错误: 分母为0 } ca ...

  2. java源码--Map

    Map接口 用于保存具有映射关系的数据结构,实现该接口的类可以通过键来获取对应的值.. 可以将给定一个键值对存储在Map接口的实现类实例中,如:map.put("key", &qu ...

  3. 某 游戏公司 php 面试题

    1.实现未知宽高元素的水平垂直居中,至少两种方法. <div, class="father"> <div class="son">< ...

  4. 2019java学习路线图

    学习路线图往往是学习一样技术的入门指南.网上搜到的Java学习路线图也是一抓一大把.但是很多学习路线图总结的云里雾里,也没有配套的视频,学习效果并不好. 分享一个完整的Java学习路线图给大家,也是贴 ...

  5. Nginx学习笔记(三):Nginx 请求处理

    Request Nginx 中的 ngx_http_request_t 是对一个 http 请求的封装: 一个 http 请求包含:请求行.请求头.请求体,响应行.响应头.响应体 Nginx 处理请求 ...

  6. [Vue]vue-router嵌套路由(子路由)

    总共添加两个子路由,分别命名Collection.vue(我的收藏)和Trace.vue(我的足迹) 1.重构router/index.js的路由配置,需要使用children数组来定义子路由,具体如 ...

  7. 一个因MySQL大小写敏感导致的问题

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 00 MYSQL对大小写敏感 见字如面,见标题知内容.你有遇到过因为MYSQL对大小写敏感而被坑的体验吗? 之前看过阿里巴 ...

  8. ASP.NET WEB应用程序(.network4.5)MVC 工作原理

    MVC就是模型.视图.控制器. 项目中控制器对应Controllers目录,视图对应Views目录,模型对应Models目录. 1.当我们创建一个控制器时,比如在Controllers目录新建一个名字 ...

  9. IP-reputation feature

    IP-reputation feature https://blog.norz.at/citrix-netscaler-ip-reputation-feature/ I recently had to ...

  10. 解决input获取焦点时底部菜单被顶上来问题

    <div class="search-box"> <input class="search-input" type="text&qu ...