±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÎÄÕ½éÉÜÁËddt¿âµÄ°²×°£¬Í¨¹ýһЩʵÀý½²½âÈçºÎʹÓü¸¸ö×°ÊηûµÈÏà¹ØÄÚÈÝ¡£ |
|
ËùνÊý¾ÝÇý¶¯²âÊÔ£¬¼òµ¥µÄÀí½âΪÊý¾ÝµÄ¸Ä±ä´Ó¶øÇý¶¯×Ô¶¯»¯²âÊÔµÄÖ´ÐУ¬×îÖÕÒýÆð²âÊÔ½á¹ûµÄ¸Ä±ä¡£Í¨¹ýʹÓÃÊý¾ÝÇý¶¯²âÊԵķ½·¨£¬¿ÉÒÔÔÚÐèÒªÑéÖ¤¶à×éÊý¾Ý²âÊÔ³¡¾°ÖУ¬Ê¹ÓÃÍⲿÊý¾ÝԴʵÏÖ¶ÔÊäÈëÊä³öÓëÆÚÍûÖµµÄ²ÎÊý»¯£¬±ÜÃâÔÚ²âÊÔÖÐʹÓÃÓ²±àÂëµÄÊý¾Ý¡£
ÕâÖÖ·½·¨¶ÔÓÚ²âÊÔ²½ÖèÏàͬ¶øÊ¹Óò»Í¬µÄÊäÈëÖµºÍÆÚÍûÖµµÄ²âÊÔ³¡¾°ÓÈÎªÖØÒª£¬±ÈÈçÉè¼ÆÒ»¸öATM»úÈ¡¿îµÄ²âÊÔÓÃÀýÉè¼Æ¡£

Òò´ËÖ»ÐèÒª´´½¨Ò»¸ö²âÊԽű¾¾Í¿ÉÒÔ´¦ÀíÉϱíµÄ²âÊÔÊý¾ÝºÍÌõ¼þµÄ×éºÏ£¬Ê¹ÓÃÊý¾ÝÇý¶¯µÄģʽ£¬¸ù¾ÝÒµÎñÂß¼·Ö½â²âÊÔÊý¾Ý£¬²¢ÇÒ¶¨Òå±äÁ¿£¬Ê¹ÓÃÍⲿµÄexcelÀïµÄÊý¾ÝʹÆä²ÎÊý»¯£¬´Ó¶ø±ÜÃâʹÓÃÔ´²âÊԽű¾ÖеĹ̶¨Êý¾Ý£¬ÕâÖÖ·½Ê½¿ÉÒÔ½«²âÊԽű¾Óë²âÊÔÊý¾Ý·Ö¿ª£¬Ê¹µÃ²âÊԽű¾ÔÚ²»Í¬µÄÊý¾Ý¼¯ºÏϸ߶ȸ´Óá£
Êý¾ÝÇý¶¯µÄģʽ²»½ö¿ÉÒÔ°ïÖúÔö¼ÓÀàËÆ¸´ÔÓÌõ¼þ³¡¾°ÏµIJâÊÔ¸²¸Ç£¬»¹¿ÉÒÔ¼«´óµÄ¼õÉÙ¶Ô²âÊÔ´úÂëµÄ±àдºÍά»¤¹¤×÷¡£
Êý¾ÝÇý¶¯²âÊÔµÄÓÐÒÔϼ¸¸öÔÀí£º
1 .²âÊÔÊý¾ÝΪ¶à¸ö×ÖµäµÄlistÀàÐÍ
2.²âÊÔÀàǰ¼ÓÐÞÊÎ@ddt.ddt
3.caseǰ¼ÓÐÞÊÎ@ddt.data()
4.ÔËÐкóÓÃÀý»á×Ô¶¯¼ÓÔØ³ÉÈý¸öµ¥¶ÀµÄÓÃÀý
1¡¢°²×°ddt¿â
ddt(Data Driver Test)µÄ¿â¿ÉÒÔ½«²âÊÔÖеıäÁ¿½øÐвÎÊý»¯£¬Ê¹ÓÃ֮ǰÏȽøÐÐÔÚÏß°²×°¡£

ΪÁË´´½¨Êý¾ÝÇý¶¯²âÊÔ£¬ÐèÒªÔÚ²âÊÔÀàÉÏʹÓà @ddt ×°Êηû£¬ÔÚ²âÊÔ·½·¨ÉÏʹÓà @data ×°Êηû¡£@data
×°Êηû¿ÉÒ԰ѲÎÊýµ±×ö²âÊÔÊý¾Ý£¬²ÎÊý¿ÉÒÔÊǵ¥¸öÖµ£¬ÁÐ±í£¬Ôª×飬×ֵ䣬¶ÔÓÚÁбíºÍÔª×飬ÐèҪʹÓà @unpack
×°Êηû°ÑÔª×éºÍÁбí½âÎö³É¶à¸ö²ÎÊý¡£
2¡¢°²×°xlrd¿â
ΪÁËÖ§³Ö¶ÔExcel Êý¾Ý±íµÄÖ§³Ö£¬ÐèÒª°²×° xlrd ¿â

xlrd ¿âÌṩÁ˶Թ¤×÷²¾£¬¹¤×÷±íÒÔ¼°µ¥Ôª¸ñµÄ¶ÁÈ¡·½·¨£¬Èç¹ûÐèÒªÍù±í¸ñÖÐдÈëÊý¾Ý£¬ÐèÒª°²×°xlwt
¿â£¬´ËÍâ openpyxl ¿âÌṩÁ˶Աí¸ñµÄ¶Áд²Ù×÷¡£
3¡¢ÊµÀý
¶ÔÓÚÈçºÎʹÓÃÉÏÊöµÄ¼¸¸ö×°Êηû£¬Í¨¹ýÒÔÏÂʵÀý½øÐÐÆÊÎö
import unittest
from ddt import ddt,data,unpack
@ddt
class MyTestCase(unittest.TestCase):
@data(1,2,3)
def test_something(self,value):
self.assertEqual(value, 2)
if __name__ == '__main__':
unittest.main(verbosity=2) |
Êä³ö½á¹û£º



¶ÔÓÚÓÐÁ½¸ö²ÎÊýµÄ£º
import unittest
from ddt import ddt,data,unpack
@ddt
class MyTestCase(unittest.TestCase):
@data((1,2),(2,3))
@unpack
def test_something(self,value1,value2):
print value1,value2
self.assertEqual(value2, value1+1)
if __name__ == '__main__':
unittest.main() |
Êä³ö½á¹û£º

»ùÓÚÒÔÉϵĻù´¡£¬ÏÖÔÚ´Ó Excel ÖжÁÈ¡Êý¾Ý£¬Êý¾Ý±íÈçÏ£º

Éè¼ÆÒ»¸öÄ£¿é¶Ô excel ÖеÄÊý¾Ý½øÐжÁÈ¡ºÍ¼òµ¥µÄ´¦Àí£¬Ê×ÏÈ¿´¿´ÔÚexcelÖÐÈçºÎ²Ù×÷µÄ
# ´ò¿ªexlce±í¸ñ£¬²ÎÊýÊÇÎļþ·¾¶
data = xlrd.open_workbook('test.xlsx')
# table = data.sheets()[0] # ͨ¹ýË÷Òý˳Ðò»ñÈ¡
# table = data.sheet_by_index(0) # ͨ¹ýË÷Òý˳Ðò»ñÈ¡
table = data.sheet_by_name(u'Sheet1') # ͨ¹ýÃû³Æ»ñÈ¡
nrows = table.nrows # »ñÈ¡×ÜÐÐÊý
ncols = table.ncols # »ñÈ¡×ÜÁÐÊý
#¡¡»ñȡһÐлòÒ»ÁеÄÖµ£¬²ÎÊýÊǵڼ¸ÐÐ
print table.row_values(0) # »ñÈ¡µÚÒ»ÐÐÖµ
print table.col_values(0) # »ñÈ¡µÚÒ»ÁÐÖµ |
¶ÁÈ¡ÉÏÊöµÄ Excel ±í¸ñ
# coding:utf-8
import xlrd
class ExcelUtil():
def __init__(self, excelPath, sheetName):
self.data = xlrd.open_workbook(excelPath)
self.table = self.data.sheet_by_name(sheetName)
self.keys = self.table.row_values(0)
self.rowNum = self.table.nrows
self.colNum = self.table.ncols
def dict_data(self):
if self.rowNum <= 1:
print("the sum of line is less than 1")
else:
r = []
j=1
for i in range(self.rowNum-1):
s = {}
values = self.table.row_values(j)
for x in range(self.colNum):
s[self.keys[x]] = values[x]
r.append(s)
j+=1
return r
if __name__ == "__main__":
filepath = "information.xlsx"
sheetName = "Sheet1"
data = ExcelUtil(filepath, sheetName)
print data.dict_data() |
Êä³ö½á¹û£º
C:\Python27\python.exe
F:/py_test/UnitTest/importexcel.py
[{u'username': u'Jack', u'country': u'US', u'password':
123456.0},
{u'username': u'Pan', u'country': u'CHINA', u'password':
u'abcdef'},
{u'username': u'John', u'country': u'UK', u'password':
u'su39n3'}]
Process finished with exit code 0 |
ÏÖÔÚµ¼Èëexcel²âÊÔÊý¾Ý£¬Ä£¿éΪ£ºExcelUtil.py
import xlrdclass
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
# get columns number
self.colNum = self.table.ncols
# 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
return r
def hasNext(self):
if self.rowNum == 0 or self.rowNum <= self.curRowNo:
return False
else:
return True
if __name__ == "__main__":
filepath = "information.xlsx"
sheetName = "Sheet1"
data = ExcelUtil(filepath, sheetName)
print data.hasNext() |
²âÊÔÄ£¿éΪ£º
import unittest
import ddt
#from driver.ExcelUtil import ExcelUtil
from ExcelUtil import ExcelUtil
excel = ExcelUtil('information.xlsx', 'Sheet1')@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['username'])
print(data['password'])
print(data['country'])if __name__ == "__main__":
suite = unittest.TestLoader().loadTestsFromTestCase(DataTest)
unittest.TextTestRunner(verbosity=2).run(suite) |
ÕâÀïÔÚÕâÁ½¸öÄ£¿é¶ÔÓ¦µÄĿ¼Ï´´½¨Ò»¸öÃûΪinformation.xlsxµÄExcelÊý¾Ý±í¸ñ

Êä³ö½á¹ûΪ£º

|