接口自动化测试之使用openpyxl库,读取xlsx测试用例数据【获取标题、请求体、预期结果等】
1.接口测试用例的excel文档格式如下:

2. 读取xlsx的工具类,先安装并导入openpyxl 库(可以先写导入语句,接着按照pycharm提示导入即可),参数化只要表格中的【标题】、【请求体】、【预期状态码】、【预期结果】 数据,函数返回列表套元组格式的数据:[(标题,请求体,状态码,预期结果),(),...]
import json
import loggingfrom openpyxl import load_workbookclass ReadXlsxUtil(object):@classmethoddef read_xlsx(cls, file_path, sheet_name):''':param file_path: xlsx文件路径:param sheet_name: xlsx底部的工作表名称:return: [(),(),(),...]'''wb = load_workbook(file_path)sheet = wb.get_sheet_by_name(sheet_name)case_data = []i = 2while i <= sheet.max_row:# C表格中【标题】的列名,K表格中【请求参数】的列名,L表格中【状态码】的列名,M表格中【预期结果】的列名tuple_data = sheet[f'C{i}'].value, json.loads(sheet[f'K{i}'].value), sheet[f'L{i}'].value, json.loads(sheet[f'M{i}'].value)case_data.append(tuple_data)i += 1logging.info(case_data)return case_data
3. 测试类的参数化实现:导入工具类ReadXlsxUtil.py和参数化库parameterized,在测试方法上引入参数化,可以正常获取数据进行参数化。
import unittest
import config.path_cfg as cfg
from parameterized import parameterizedfrom common.read_xlsx_util import ReadXlsxUtilclass TestLogin(unittest.TestCase):@parameterized.expand(ReadXlsxUtil.read_xlsx(cfg.BASE_DIR + '/data/iHRM.xlsx', '登录'))def test_login(self, case_name, body, status_code, expect_data):# 可以打印看是否都获取正确print(f'case_name:{case_name}')print(f'body:{body}')print(f'status_code:{status_code}')print(f'expect_data:{expect_data}')# 接下来就是发送请求断言pass
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
