在学习接口测试,从excel中读取字段,再发送请求,总算调试好了代码,做个笔记记录下。
excel表格(接口地址是网上的免费接口https://www.binstd.com/api/?isfree=1):
脚本代码:
import pandas
import requests
import json
# 读
caseData = pandas.read_excel("case.xls", encoding="utf8")
caseNum = len(caseData)
print(caseData)
print(caseNum)
for i in range(caseNum):
body = caseData["请求参数"][i]
body_dict = json.loads(body)
res = requests.request(caseData["请求方法"][i], caseData["接口地址"][i], data=body_dict) #caseData[][]先列后行
# print(res.text)
# caseData.loc[i,"请求结果"] = res.text
#接口断言
try:
#断言内容为空,默认通过
if str(caseData["断言"][i]) == "nan":
caseData.loc[i,"测试结果"]= "成功" #caseData.loc先行后列
stri = str(i+1)
print("把第"+stri+"行的测试结果设为成功")
continue
#先转成字典再判断
assertDic = json.loads(caseData["断言"][i]) #json.loads()函数是将json(或字符串)转化为字典
# print(assertDic["status"])
response = json.loads(res.text)
# print(response["status"])
#更新excel的断言结果
if assertDic["status"] == response["status"]:
caseData.loc[i,"测试结果"]="成功"
else:
caseData.loc[i,"测试结果"]="失败"
except Exception as e:
assertRet = False
#写
caseData.to_excel("case.xls", encoding="utf8", index=False) #index=false表示插入的数据不带索引
把excel与脚本放在同一个目录下,就可以运行脚本了。
运行结果:
ok,执行成功了。