思路:  1、先准备excel   2、写代码;

【第一步】

 

【第二步】

# -*-coding:utf-8-*-
'''
Author:su
Time:2024/3/111:30
'''
import os

import requests,jsonpath,pytest
from xToolkit import xfile
from string import Template

# 读取excel
test_data=xfile.read(r"D:\pycharm\无锡项目自动化\case\模拟接口测试用例.xls").excel_to_dict(sheet=1)
print(test_data)
dic={}
@pytest.mark.parametrize('case_info',test_data)# 自动循环下面函数,执行次数由excel里面的行数据决定;
def test_excute(case_info):
json_info=case_info["JSON参数"]
if "$" in json_info:
json_info=Template(json_info).substitute(dic)#判断json_info里面有$符号,就把dic字典里面的值替换上
header=case_info["URL参数"]
# if "$" in header:
# header = Template(header).substitute(dic)
rs = requests.request(
url=case_info["接口URL"],
method=case_info["请求方式"],
headers=eval(case_info["URL参数"]),
data=eval(json_info)
)
if case_info["提取参数"]:
lst = jsonpath.jsonpath(rs.json(),"$.."+case_info["提取参数"])
dic[case_info["提取参数"]]=lst[0]

# 断言
# assert rs.status_code == case_info["预期状态码"]

if __name__ == '__main__':
pytest.main(["-vs",
"--capture=sys",#系统操作--打开我们的实时输出
"Test_denglu.py",#要执行的py文件名,或者可以文件夹
"--clean-alluredir",#每次执行会清空allure数据
"--alluredir=allure-results" #生成一个allure测试结果的数据文件夹
])
os.system("allure generate allure-results -o ./report --clean") #执行生成测试报告的命令

扩展-----
1、如果运行后,在pycharm不能生成报告,只有json数据,则说明没有配置allure 环境变量,可参考 https://blog.csdn.net/DY_CSDN/article/details/130320841 。

 




posted on 2024-02-28 17:27  给天使看的戲  阅读(8)  评论(0编辑  收藏  举报