使用场景:

 在工作中,常见某个功能的查询,当查询关联表特别多时,开发写的SQL语句等等问题导致响应时间较慢,那么作为测试需要将每个接口的响应时间进行测试,对同个接口多次执行,并将测试结果写入到excel,方便后期的接口时间分析。

实现路径分析:

  (1)在测试接口时,直接返回url和times

  (2)将每个接口获取到的url和times写入到txt文件中

  (3)将txt内容复制到Excel中(目的:方便筛选和计算总和、平均响应时间等)

框架截图:

代码示例:

(1)write_reponseTime_txt.py  中的方法封装

#!/usr/bin/env python
# coding=UTF-8 '''用途:将每个接口测试的获取到的url、times写入到txt文件中''' def write_txt(urls,times):
path = "/Users/lucky/Desktop/Auto/iBer_Python_Interface/iBer_Interface/Result/" with open(path+"API_relult.txt","a") as file:
file.write(urls+" "+times+"\n")

(2)write_reponseTime_xls.py  中的方法封装

#!/usr/bin/env python
# coding=UTF-8 import xlwt '''用途:将txt文件中获取的url、times写入到xls中''' def write_xls():
path = "/Users/lucky/Desktop/Auto/iBer_Python_Interface/iBer_Interface/Result/"
workbook = xlwt.Workbook(encoding="utf-8")
sheet = workbook.add_sheet("Sheet1") row = 0
with open(path+"API_relult.txt") as filetxt:
for line in filetxt:
line = line.strip()
fileds = line.split(" ")
for col, value in enumerate(fileds):
sheet.write(row, col, value)
row += 1
workbook.save(path+"API_relult.xls")

(3)Todo_report.py,接口文件中将获取的url和time写入到txt中

#!/usr/bin/env python
# coding=UTF-8 import requests
from Common import gol
from Common.logs import logging
import yaml,sys,os
from requests import exceptions # 导入yaml中的host
reload(sys)
sys.setdefaultencoding("utf-8") with open(os.getcwd()[:-5] + "/Config/host_header.yaml", 'rb') as f:
data = yaml.load(f)
host = data["host"] #获取到url
header = data["headers"] #获取到host class share_report:
def __init__(self):
self.log = logging def get_share_code(self):
url = host+"todo-report/get-share-code"
url_Write_excel = url[url.rfind('/v2'):] # 获取非域名外的url链接,最后写入到Excel中 data = {}
headers = header #获取请求头
headers.update(uuid=gol.get_value("uuid"), token=gol.get_value("token")) #yaml中的请求头中未加入uuid和token,因此这里需要加入上去 #timeout=(0.01,0.1)
r = requests.post(url=url, data=data, headers=headers, verify=False, timeout=15) # 设置的超时时间为0.5s
'''判断:根据reponse中的某个值来判断接口返回是否成功'''
if str(r.json()["msg"]) == "SUCCESS":
self.log.info("获取分享码成功:%s"%(str(r.json()["data"]["share_code"])))
else:
self.log.error("获取分享码失败")
raise False self.log.info("请求此接口的响应时间:"+str(r.elapsed.total_seconds()))
self.log.info(r.json()) #打印的reponse返回的所有内容 ########################获取URL和times(超时时间)数据的写入txt文件#########################
from Common.API_reponseTime.write_reponseTime_txt import write_txt
urls = url_Write_excel # 获取的url
times = str(r.elapsed.total_seconds()) # 获取到响应时间temeout
write_txt(urls, times)

(4)Run_Test.py,运行文件中加入调用的方法

###########################测试结束,将txt文件中内容写入到Excel中######################################
from Common.API_reponseTime.write_reponseTime_xls import write_xls
write_xls()

实现结果:

Python+request 将获取的url和接口响应时间(timeout)写入到Excel中《八》的更多相关文章

  1. 接口自动化测试遭遇问题,excel中取出来的json串,无法使用requests去请求解决办法

    最近遭遇了一个问题,问题不大不小,想半天没想明白是哪里有问题,今天终于解决了 用python读取了excel用例中,body json字符串内容,然后requests去请求内容,结果一直报错,一直不明 ...

  2. python接口自动化测试之根据excel中的期望结果是否存在于请求返回的响应值中来判断用例是否执行成功

    1.首先在excel中填写好预期结果的值 这里判断接口成功的依据是预期结果值是否存在于接口的返回数据中. 一般接口的返回值都是json对象,我们需要将json对象转换为json格式的字符串 如下图,进 ...

  3. 【python接口自动化】- openpyxl读取excel数据

    前言:目前我们进行测试时用于存储测试数据的软件几乎都是excel,excel方便存储和管理数据,读取数据时也比较清晰,测试时我们需要从excel从读取测试数据,结束后还需把测试结果写入到excel中, ...

  4. Python+request 分模块存放接口,多接口共用参数URL、headers的抽离,添加日志打印等《三》

    主要介绍内容如下: 1.分模块存放接口 2.多接口共用参数URL.headers的抽离为配置文件 3.添加日志打印 4.一个py文件运行所有所测的接口 如上介绍内容的作用: 1.分模块存放接口:方便多 ...

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

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

  6. python+request+robot framework接口自动化测试

    python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的 ...

  7. paip.uapi 获取网络url内容html 的方法java php ahk c++ python总结.

    paip.uapi 获取网络url内容html 的方法java php ahk c++ python总结. 各种语言总结比较,脚本php.python果然是方便.简短,实用. uapi : get_w ...

  8. Python+request 获取响应(elapsed)和响应时间(timeout)《七》

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

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

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

随机推荐

  1. 综合练习1,划分vlan,单臂路由,DHCP服务及其限制网段、租期,设置根桥,OSPF路由通告综合练习

    实验要求: 1.在LSW1上分别给vlan10和vlan20做DHCP网段分别为192.168.10.0/24.192.168.20.0/24禁用192.168.10.200-253,192.168. ...

  2. 南柯33的Python学习笔记第(一)部分

    Python基础 1.Python简介 1.1 Python是什么编程语言 从编程语言的几个方向来说 编译型和解释型 什么是编译型?什么是解释型? 编译型:就是把源代码一下全部都编译成二进制文件(优点 ...

  3. OpenCV Python 4.0安装

    1.安装OpenCV-Python 如果你是第一次使用OpenCV Python开发包,想要安装OpenCV Python4.0只要执行如下命令行即可: pip install opencv-pyth ...

  4. 乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符

    大家好,我是乐字节的小乐,这次要给大家带来的是Java变量与数据类型.本文是第一集:Java编程规范,关键字与标识符. 一.编程规范 任何地方的名字都需要见名知意: 代码适当缩进 书写过程成对编程 对 ...

  5. Docker 部署Jira8.1.0

    Jira与Confluence一样,都需要用到独立的数据库,对于数据库的安装我们不做介绍,主要介绍如何用Docker部署Jira以及对Jira进行破解的操作. 1.数据库准备 关于数据库官方文档说明: ...

  6. Windows Terminal Preview v0.7 Release

    Windows Terminal Preview v0.7 Release The following key bindings are included by default within this ...

  7. Python 【模块】

    A 什么是模块 最高级别的程序组织单元(模块什么都能封装) 模块中,我们不但可以直接存放变量,还能存放函数,还能存放类 定义变量需要用赋值语句,封装函数需要用def语句,封装类需要用class语句,但 ...

  8. 20191011-构建我们公司自己的自动化接口测试框架-Util的TestDataHandler模块

    TestDataHandler模块主要是做测试数据的处理,包括转换数据格式和变量参数处理转换数据格式函数: data是数据,data以$()的方式识别变量,如果请求的数据有变量,则将变量用global ...

  9. ASP.NET Core 过滤器

    继承Attribute,IActionFilter实现自己的过滤器类,并且在Startup,mvc服务中注入. 全局都会过滤,在任意一个controller,action执行前和执行后都会过滤一次 通 ...

  10. hdu 2544 Dijstra模板题

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...