python Unittest+excel+ddt数据驱动测试
#!user/bin/env python # coding=utf-8 # @Author : Dang # @Time : 2018/6/10 17:25 # @Email : 1370465454@qq.com # @File : # @Description: import xlrd import xlwt import os import time from openpyxl import load_workbook strtime = time.strftime('%Y-%m-%d_%H_%M_%S') # def readExcelDataByName(filename, sheetName): # '''读取Excel文件和表名''' # wb = xlrd.open_workbook(filename) # # sheet=data.sheet_by_index(0)#通过索引顺序获取,0表示第一张表 # # sheets = data.sheet_names()#获取文件中的表名 # sheet = wb.sheet_by_name(sheetName) # ncols = sheet.ncols # # 获取行数 # nrows = sheet.nrows # print("nrows %d, ncols %d" % (nrows, ncols)) # total_data=url_list=[] # #读取url # for m in range(0,nrows): # # print(sheet.cell_value(m,1)) # # print(sheet.cell_value(m,2)) # # print(sheet.cell_value(m,3)) # # print(sheet.cell_value(m,5)) # url_list.append(sheet.cell_value(m,1)) # url_list.append(sheet.cell_value(m,3)) # url_list.append(sheet.cell_value(m,2)) # url_list.append(sheet.cell_value(m,5)) # total_data.append(url_list) # # print(url_list) # url_list=[] # # print(total_data) # return total_data import xlrd import unittest import ddt class ExcelUtil(object): def __init__(self, excelPath, sheetName): self.data = xlrd.open_workbook(excelPath) self.table = self.data.sheet_by_name(sheetName) #get titles self.row = self.table.row_values(0) #get rows number self.rowNum = self.table.nrows print(self.rowNum) #get columns number self.colNum = self.table.ncols print(self.colNum) #the current column self.curRowNo = 1 def next(self): r = [] while self.hasNext(): s = {} col = self.table.row_values(self.curRowNo) i = self.colNum for x in range(i): s[self.row[x]] = col[x] r.append(s) self.curRowNo += 1 print(r) return r def hasNext(self): if self.rowNum == 0 or self.rowNum <= self.curRowNo : return False else: return True # if __name__ == '__main__': # readExcelDataByName('TestCase.xlsx', 'TestCase') # ExcelUtil=ExcelUtil("TestCase.xlsx", "TestCase") # ExcelUtil.next() excel = ExcelUtil("TestCase.xlsx", "TestCase") # excel.next() @ddt.ddt class DataTest(unittest.TestCase): @classmethod def setUpClass(cls): print('start') @classmethod def tearDownClass(cls): print('stop') @ddt.data(*excel.next()) def testLogin(self, data): print(data['Request URL']) print(data['Request Method']) print(data['Request Data']) if __name__ == "__main__": suite = unittest.TestLoader().loadTestsFromTestCase(DataTest) unittest.TextTestRunner(verbosity=2).run(suite)
目前还在学习中,希望会对大家有所帮助,觉得不错,就点赞支持一下。
另外,转载时请附带链接。谢谢!
分类:
接口学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~