python+request+excel做接口自动化测试

news/2024/7/21 4:42:09 标签: python, excel, 开发语言

request是python的一个http客户端库,与urllib、urllib2类似。但是使用比urllib2简单。
安装request : pip install requests
1、POST方法

#封装http POST 函数,返回请求response
def httpPost(self,keyword,url):
data=json.dumps(keyword)
headers={"Content-Type":"application/json"}
res=requests.post(url,data=data,headers=headers)
responseJson=res.json()
return responseJson


2、GET方法

#封装http Get函数,返回response
def httpGet(self,keyword,url,data):
headers={"Content-Type":"application/json"}
res=requests.get(url,data=data,headers=headers)
responseJson=res.json()
return responseJson


3、封装request请求函数

#封装请求函数
def httpGetOrPost(self,method,url,data):
# global mres
headers = {"Content-Type": "application/json"}
if method in "get":
mres=requests.get(url,data=data,headers=headers)
elif method == "post":
#postdata = json.dumps(data)
mres=requests.post(url,data=data,headers=headers)
elif method in"put":
mres=requests.put(url,data=data,headers=headers)
elif method in "delete":
mres=requests.delete(url,data=data,headers=headers)
else:
mres = requests.post(url, data=data, headers=headers)
print("错误")
# responseJson=mres.json()
return mres.json()

进行测试:
def test0001(self):
self.url="http://apptest.buddyniu.com/api/apps/BUDDY_API_TEST/accounts/login"
self.method="post"
self.data={"password":"e10adc3949ba59abbe56e057f20f883e","clientSecret":"a123af4e331cf61c0324cd43cbc2135d","accountId":"13590404631"}
res=self.httpGetOrPost(self.method,self.url,self.data)
print res


5、使用excel

由于我的系统为win10,excel后缀为xlsx,故需要使用openpyxl 模块
大概使用方法如下:
def readSheet(self):
wb = load_workbook(r'd:\apitestcase.xlsx')
# 获得所有sheet的名称
print(" 获得所有sheet的名称")
print(wb.get_sheet_names())
# 根据sheet名字获得sheet
a_sheet = wb.get_sheet_by_name('apitestcase')
# 获得sheet名
print(a_sheet.title)
# 获得当前正在显示的sheet, 也可以用wb.get_active_sheet()
sheet = wb.active
# 获取某个单元格的值,观察excel发现也是先字母再数字的顺序,即先列再行
b4 = sheet['B1']
print(b4.value)
# 除了用下标的方式获得,还可以用cell函数, 换成数字,这个表示B4
b4_too = sheet.cell(row=4, column=2)
print(b4_too.value)

6、封装excel函数

def readSheetdata(self,cell):
wb=load_workbook(r'd:\apitestcase.xlsx')
sheet=wb.active
value=sheet[cell]
print(value.value)
return value.value

7、测试读取excel中的值,之后做请求

excel表格内容大概如下:

这里是第一个测试

def test00001(self):
self.url=self.readSheetdata('C2')
self.data=self.readSheetdata('D2')
self.method=self.readSheetdata('E2')
res=self.httpGetOrPost(self.method,self.url,self.data)

测试结果:

注:
导入excel,这里使用openpyxl ,xlxs后缀的一般使用openpyxl 
from openpyxl import load_workbook
载入utf8编码
import sys
reload(sys)
sys.setdefaultencoding('utf8')

Python接口自动化测试零基础入门到精通(2023最新版)


http://www.niftyadmin.cn/n/5116575.html

相关文章

数据库监控:关键指标和注意事项

【squids.cn】 全网zui低价RDS,免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 听到模糊的说法“我们的数据库有问题”对于任何数据库管理员或管理员来说都是一场噩梦。有时是真的,有时不是,到底问题出在哪里呢?真…

使用ION-SFU和媒体设备在Golang中构建一个WebRTC视频和音频广播器

在本教程中,您将构建一个视频广播应用程序,该应用程序在 Golang 中读取摄像头并将其发送到 ION-SFU(选择性转发单元),从而使 WebRTC 会话更有效地扩展。 WebRTC 是 Web Real-Time Communication 的缩写,是…

NewStarCTF2023week4-逃(反序列化字符串逃逸)

打开链接,大致审一下php代码,是反序列化相关的; 结合题目提示,很典型的字符串逃逸; 并且属于替换修改后导致序列化字符串变长的类型; 看似加了一个waf函数对我们提交的内容进行了过滤替换,实…

JAVA代码审计-XSS漏洞分析

XSS漏洞,可不仅仅是弹窗这么简单,本篇先讲一讲触发该漏洞的形式,换一期讲一讲XSS的危害究竟有多大! 反射型XSS漏洞 反射型XSS漏洞是当攻击者添加恶意代码到网页请求中,该请求立即在用户浏览器中生成恶意响应结果&…

阿里一面 .Spring框架中的单例bean是线程安全的吗?

Spring框架中的单例bean是线程安全的吗? 一,什么是bean 在 Spring 框架中,Bean 是指由 Spring IoC(Inversion of Control)容器管理的组件或对象。Bean 是 Spring 中最基本的构建块,它们由 Spring 容器实例…

【Maven】VSCode Java+Maven 环境配置

0x00 前言 没写过 Java,得配个带 Maven 的编码环境,不太明白,试试看顺便记录一下 0x01 配置过程 安装 jdk1.8 后,找到安装位置: (base) dianCD-Ali doraemon % /usr/libexec/java_home -V Matching Java Virtual Ma…

nodejs+vue 视频网站的设计与实现

该设计划分为七大模块,包括用户的系统管理、其他管理和视频管理三部分, 和管理管理员的视频、其他管理、系统管理和用户管理四部分。目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关…

线性代数相关笔记

线性基 导入 线性基,顾名思义,就是一个包含数字最少的集合,使得原集合中的任何数都能用线性基中的元素表示。 集合中的元素满足一些性质: 原集合中的任意元素都可以用线性基中的若干元素的异或和表示线性基中任意数异或和不为…