使用场景:

 在工作中,常见某个功能的查询,当查询关联表特别多时,开发写的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. PHP 7 错误处理 Error

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

  2. dubbo40道面试题

    1.Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目. 面试官问你如果这个都不清楚,那下面的就没必要问了.官网:h ...

  3. extentreports报告插件与testng集成

    前段时间在群里有人说了下用这个插件来生成测试报告,发现生成的报告非常不错.就下来学习了一下,并集成到了testng上,下面来分享一下: ExtentReports (by Anshoo Arora) ...

  4. Druid基本配置

    最近公司要用Druid 所以看了下基本配置及配置过程中出现的问题 Druid是什么? Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时 ...

  5. POJ 2299-Ultra-QuickSort-线段树的两种建树方式

    此题有两种建树方式! Description In this problem, you have to analyze a particular sorting algorithm. The algo ...

  6. 注册中心Eureka 说明

    Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCloud将它集成在其子项 ...

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

    ProVar模块主要定义测试数据所在目录,以及定义变量和测试数据excel里面的column对应这样后续在进行excel操作的时候直接使用变量即可进行操作,后期excel的column有增删的时候,修 ...

  8. 【动态规划】Überwatch

    Überwatch 题目描述 The lectures are over, the assignments complete and even those pesky teaching assista ...

  9. CMake入门-04-自定义编译选项

    工作环境 系统:macOS Mojave 10.14.6 CMake: Version 3.15.0-rc4 Hello,World! - 自定义编译选项 CMake 允许为项目增加编译选项,从而可以 ...

  10. ASP.NET MVC或者.net Core mvc 页面使用富文本控件的 保存问题

    https://blog.csdn.net/leftfist/article/details/69629394 目前在做的项目存在XSS安全漏洞! 原因是有一些页面使用了富文本编辑框,为了使得其内容可 ...