继续优化:省去上一篇的列表和字典的使用,直接在for循环后写入测试结果
直接贴代码
import json
import xlrd
import requests
from xlutils.copy import copy # 复制函数
# 自动运行接口测试用例,参数excel:用例地址 lines:用例总行数
def api_test(excelDir, lines):
# 1-读取Excel测试用例
# 1-1:打开Excel
# formatting_info=True :可保留当前表格的格式(行宽,列宽等)。创建表格格式为.xls,否则保存时报错。其他格式要通过另存为改为xls格式,重命名更改无效!!!
workbook = xlrd.open_workbook(excelDir, formatting_info=True)
# 通过角标获取表单:workSheet = workbook.sheet_names()[0]
# 1-2通过表单名获取表单
workSheet = workbook.sheet_by_name("Sheet1")
# 1-3-复制表格,用于之后写入测试结果
workbookNew = copy(workbook)
wrSheet = workbookNew.get_sheet(0)
# 遍历用例行数(从1开始,0为标题栏所以忽略)
for i in range(1, lines):
celldata = workSheet.cell(i, 5).value
celldata1 = workSheet.cell(i, 3).value
celldata2 = workSheet.cell(i, 6).value
# 2-构建接口对应请求
url = celldata1
data = json.loads(celldata2) # json.loads('string')字符串格式改为字典格式
headers = json.loads(celldata)
r = requests.get(url, params=data, headers=headers)
# 判断接口返回
if r.status_code == 200:
print('通过')
# 定义变量记录判断结果,之后用于写入表格
excel_res = 'PASS'
else:
print('失败')
excel_res = 'FALSE'
# 写入测试结果到Excel
wrSheet.write(i, 9, excel_res)
# 保存用例(保存为新文件)
workbookNew.save(r'E:\\用例2.xls')
# 调用函数
excel = r'E:\\用例.xls'
api_test(excel, 3)