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
随机推荐
- Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
mysql使用可视化界面登录使用的时候都没问题,只要使用xhell命令进入mysql就报异常 Can't connect to local MySQL server through socket '/ ...
- java学习基础知识入门
基础入门知识(一) 一.java技术的分类 java按照技术标准和应用场景的不同分为三类,分别是JAVASE.JAVAEE.JAVAME JAVASE : 平台标准版,用于开发部署桌面,服务器以及嵌入 ...
- Spring IoC 和 DI 简介(二)
Spring IoC 和 DI 简介 IoC:Inverse of Control(控制反转) 读作“反转控制”,更好理解,不是什么技术,而是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由 ...
- aPlugForUNIX(POJ-1087)【最大流】
题目链接:https://vjudge.net/problem/POJ-1087 题意:有N个插座,M个电器,K种转换头(每种转换头有无限多个),求最多能同时给多少台设备供电 思路: 首先,建立源点和 ...
- GB2312、GBK、GB18030 这几种字符集的主要区别
1 GB2312-80 GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称<信息交换用汉字编码字符集·基本集>,又称 GB 0,由中国国家标准总局发布,1981 ...
- Django路由配置
Django路由配置系统.视图函数 1.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是 ...
- C语言之反汇编揭秘
title: 'C语言之反汇编揭秘' tags: 汇编与反汇编 categories: 汇编与反汇编 copyright: true abbrlink: 'b1c9' date: 2019-09-07 ...
- 普通表分区改造_rename方式
一.需求 配合开发人员,对业务临时表进行分区改造(业务认为的临时表,只需要保留近一月数据,并非oracle临时表类型) 二.如下记录完整过程 开发需求 TS_PM 以time_key分区 .沟通明确方 ...
- MySQL的explain语句分析
+----+-------------+-------+------------+------+---------------+-----+---------+------+------+------ ...
- (三)easyUI之树形组件
一.同步树 1.1 概念 所有节点一次性加载完成 1.2 案例 1.2.1 数据库设计 1.2.2 编码 index.jsp <%@ page language="java" ...