python Unittest+excel+ddt数据驱动测试
2024-08-27 22:19:01
#!user/bin/env python
# coding=utf-
# @Author : Dang
# @Time : // :
# @Email : @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表示第一张表
# # 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(,nrows):
# # print(sheet.cell_value(m,))
# # print(sheet.cell_value(m,))
# # print(sheet.cell_value(m,))
# # print(sheet.cell_value(m,))
# url_list.append(sheet.cell_value(m,))
# url_list.append(sheet.cell_value(m,))
# url_list.append(sheet.cell_value(m,))
# url_list.append(sheet.cell_value(m,))
# 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() #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 = 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 +=
print(r)
return r def hasNext(self):
if self.rowNum == 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=).run(suite)
最新文章
- Android Studio in OSX 提高工作效率的快捷键
- IOS第11天(4:UIDatePicker时间选择,和键盘处理,加载xib文件,代理模式)
- mac 下的 top 命令
- Hibernate4+Spring JPA+SpringMVC+Volecity搭建web应用(一)
- js——倒计时
- 解决 dyld: Library not loaded:Reason: image not found
- C++学习笔记13-类继承
- .Net程序员学用Oracle系列(19):我知道的导出和导入
- Eclipse: eclipse文本文件编码格式更改(GBK——UTF-8)
- 2019浙大校赛--E--Potion(签到水题)
- MyBatis源码解析(十一)——Parsing解析模块之通用标记解析器(GenericTokenParser)与标记处理器(TokenHandler)
- 浅了解:react为何需要设定唯一key值(antd-table)
- C++ Boost库简介(转载)
- shell入门(二)——面试题实例
- DataGridView之编码列重绘
- DNS服务器的维护与故障排除
- 秒杀多线程第六篇 经典线程同步 事件Event
- Django From组件 fields widgets
- Linux命令详解-printf
- 如何删除 Windows 10 系统生成的 WindowsApps 文件夹