Python+request 将获取的url和接口响应时间(timeout)写入到Excel中《八》
使用场景:
在工作中,常见某个功能的查询,当查询关联表特别多时,开发写的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中《八》的更多相关文章
- 接口自动化测试遭遇问题,excel中取出来的json串,无法使用requests去请求解决办法
最近遭遇了一个问题,问题不大不小,想半天没想明白是哪里有问题,今天终于解决了 用python读取了excel用例中,body json字符串内容,然后requests去请求内容,结果一直报错,一直不明 ...
- python接口自动化测试之根据excel中的期望结果是否存在于请求返回的响应值中来判断用例是否执行成功
1.首先在excel中填写好预期结果的值 这里判断接口成功的依据是预期结果值是否存在于接口的返回数据中. 一般接口的返回值都是json对象,我们需要将json对象转换为json格式的字符串 如下图,进 ...
- 【python接口自动化】- openpyxl读取excel数据
前言:目前我们进行测试时用于存储测试数据的软件几乎都是excel,excel方便存储和管理数据,读取数据时也比较清晰,测试时我们需要从excel从读取测试数据,结束后还需把测试结果写入到excel中, ...
- Python+request 分模块存放接口,多接口共用参数URL、headers的抽离,添加日志打印等《三》
主要介绍内容如下: 1.分模块存放接口 2.多接口共用参数URL.headers的抽离为配置文件 3.添加日志打印 4.一个py文件运行所有所测的接口 如上介绍内容的作用: 1.分模块存放接口:方便多 ...
- python+request接口自动化框架
python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...
- python+request+robot framework接口自动化测试
python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的 ...
- paip.uapi 获取网络url内容html 的方法java php ahk c++ python总结.
paip.uapi 获取网络url内容html 的方法java php ahk c++ python总结. 各种语言总结比较,脚本php.python果然是方便.简短,实用. uapi : get_w ...
- Python+request 获取响应(elapsed)和响应时间(timeout)《七》
requests发请求时,接口的响应时间,也是我们需要关注的一个点,如果响应时间太长,也是不合理的.如果服务端没及时响应,也不能一直等着,可以设置一个timeout超时的时间 具体的实现如下: 超时( ...
- python request获取ip、获取登录设备
from flask import request 获取ip request.remote_addr 获取登录设备 request.user_agent.string
随机推荐
- csu 1958: 数字游戏
1958: 数字游戏 Submit Page Summary Time Limit: 2 Sec Memory Limit: 128 Mb Submitted: 134 ...
- 微信小程序获取windowHeight出现不同页面高度不一致问题及解决方案
在页面中调用wx.getSystemInfo即可获取当前页面的屏幕高度,如果写在app.js里面或者带有系统tab页面里面,获取的windowHeight会比不是tab的页面少48: 含有的TabBa ...
- 修改jira数据库配置
- 洛谷 题解 UVA1395 【苗条的生成树 Slim Span】
[题意] 给出一个\(n(n<=100)\)个节点的的图,求最大边减最小边尽量小的生成树. [算法] \(Kruskal\) [分析] 首先把边按边权从小到大进行排序.对于一个连续的边集区间\( ...
- Jmeter plugins 之 Perfmon Metrics Collector(服务器性能监控)
客户端(Jmeter端) 1.安装plugins manager,然后安装 2.添加listener-(第1步成功后才可看到此功能) 服务端:(要监控的服务器) 1.下载ServerAgent,并 ...
- 从MongoDB及mysql 谈B/B+树
一 B树的由来 B树指的是一类树,包括B-树,B+树,B*树等,是一种自平衡的搜索树,它类似普通的平衡二叉树,不同的一点是B树允许每个节点有更多的子节点.B树是专门为外部存储器设计的,如磁盘,它对于读 ...
- 使用 netkeeper 创翼网速慢解决方案(13)
1. 方法1 步骤: 卸载Netkeeper,并删除 卸载以太网(本地连接)驱动 重置网络 重启 重新安装Netkeeper.如果登录出错,卸载「IP,IPv6,Network Monitor」,然后 ...
- 剑指offer57:二叉树的下一个结点
1 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 2 思路和方法 中序遍历,下一个结点有两种情况 a ...
- Kubernetes对Pod调度指定Node以及Node的Taint 和 Toleration
由于博客园不支持markdown,推荐以下url阅读: 原创url:https://blog.csdn.net/weixin_42495873/article/details/103364868 ## ...
- ActiveMQ的静态网络配置
static networkConnector是用于创建一个静态的配置对于网络中的多个Broker做集群,这种协议用于复合url,一个复合url包括多个url地址. <networkConnec ...