Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʹÓÃddtÖ´ÐÐÊý¾ÝÇý¶¯²âÊÔ
 
  4307  次浏览      29
 2019-1-28
 

 

±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚ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Êý¾Ý±í¸ñ

Êä³ö½á¹ûΪ£º

 
   
4307 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù