本文共 1714 字,大约阅读时间需要 5 分钟。
数据驱动测试(Data-Driven Testing,简称 DDT)是一种通过外部数据源驱动自动化测试的方法,能够灵活处理多种输入数据和期望值,从而减少硬编码数据的使用。这种测试模式特别适用于需要验证多组数据的测试场景,例如ATM取款、登录功能等。
@ddt装饰符,表示这是一个数据驱动的测试类。@data装饰符,指定测试数据。对于列表和元组,可以使用@unpack装饰符将数据解析为多个参数。安装ddt库
使用pip安装:pip install ddt
通过ddt装饰符可以将测试变量参数化,并支持从外部数据源(如Excel文件)加载数据。
安装xlrd库
xlrd库用于读取Excel文件,支持从工作簿、工作表和单元格读取数据。安装命令:pip install xlrd
如果需要写入Excel文件,还需安装xlwt或openpyxl库。
import xlrdclass ExcelUtil: def __init__(self, excelPath, sheetName): self.data = xlrd.open_workbook(excelPath) self.table = self.data.sheet_by_name(sheetName) self.row = self.table.row_values(0) # 获取表头 self.rowNum = self.table.nrows # 获取总行数 self.colNum = self.table.ncols # 获取总列数 def get_data(self): data = [] for i in range(1, self.rowNum): current_row = self.table.row_values(i) item = {} for j in range(self.colNum): item[self.row[j]] = current_row[j] data.append(item) return data import unittestfrom ddt import ddt, data, unpackfrom ExcelUtil import ExcelUtilclass DataTest(unittest.TestCase): @classmethod def setUpClass(cls): print("开始测试") @ddt.data(*excel.get_data()) def test_login(self, data): print(f"测试用户:{data['username']}") print(f"测试密码:{data['password']}") print(f"测试国家:{data['country']}") @unpack装饰符时,确保数据类型与参数类型匹配。@ddt装饰符前,需避免使用unittest.isolatedThreads()来防止干扰。通过上述方法,可以将测试脚本与数据源解耦,实现数据驱动测试的高复用性和灵活性。
转载地址:http://pjbg.baihongyu.com/