python自动化模型——数据驱动ddt的简单使用

ddt读取组合中的数据

import ddt
import unittest

@ddt.ddt
class DataTest(unittest.TestCase):
	def setUp(self):
		print('这是setup')

	def tearDown(self):
		print('这是teardown')

	@ddt.data([1, 2],
			  [3, 4],
			  [5, 6]
			  )

	@ddt.unpack
	def test_add(self,a,b):
		print(a+b)

if __name__ =='__main__':
	unittest.main()

ddt+Excel以文件形式实现数据驱动

1 、创建一个excel文件,表中的数据格式如下:

python自动化模型——数据驱动ddt的简单使用_第1张图片

注意点:

  • excel格式必须为.xls.因为xlrd不支持最新的.xlsx,可以读取但是写入后无法打开
  • excel中单元格格式设置为“文本”

2、读取excel表格数据,代码如下:

import xlrd

class ExcelUtil():
    def __init__(self,excel_path=None,index=None):
        if excel_path == None:
            excel_path = r'D:\F\pyworkspace\SeleniumPython\config\casedata.xls'
        if index == None:
            index = 0
        self.data = xlrd.open_workbook(excel_path)
        self.table = self.data.sheets()[index]
        # 行数
        self.rows = self.table.nrows

    def get_data(self):
        result = []
        for i in range(self.rows):
            col = self.table.row_values(i)
            result.append(col)
        return result

if __name__ == '__main__':
    ex = ExcelUtil()
    print(ex.get_data())

返回的是数据是一个list:[['1', '2'], ['2', '3'], ['3', '4']]

2、应用excel表格数据,代码如下:

import ddt
import unittest
from util.excel_util import ExcelUtil

ex = ExcelUtil()
data = ex.get_data()

@ddt.ddt
class DataTest(unittest.TestCase):
	def setUp(self):
		print('这是setup')

	def tearDown(self):
		print('这是teardown')

	@ddt.data(*data)
	def test_add(self,data):
		a,b = data  # 列表赋值
		print(int(a) + int(b)) # 将字符转换为int
		
if __name__ =='__main__':
	unittest.main()

你可能感兴趣的:(python,自动化)