一、先分析TestlinkXML格式:
这是一个有两级testusuit的典型的testlink用例结构,我们只需要取testsuitename,testcasename,preconditions,actions,expectedresults
二、程序如下:
#coding:utf-8 ''' Createdon2015-8-20 @author:Administrator ''' ''' ''' importxml.etree.cElementTreeasET importxml.dom.minidomasxx importos,xlwt,datetime workbook=xlwt.Workbook(encoding="utf-8") # booksheet=workbook.add_sheet(u'sheet_1') booksheet.col(0).width=5120 booksheet.col(1).width=5120 booksheet.col(2).width=5120 booksheet.col(3).width=5120 booksheet.col(4).width=5120 booksheet.col(5).width=5120 dom=xx.parse(r'D:\\Python27\test.xml') root=dom.documentElement row=1 col=1 borders=xlwt.Borders() borders.left=1 borders.right=1 borders.top=1 borders.bottom=1 style=xlwt.easyxf('align:wrapon,vertcentre,horizcenter')#自动换行、水平居中、垂直居中 #设置标题的格式,字体方宋、加粗、背景色:菊黄 #测试项的标题 title=xlwt.easyxf(u'font:name仿宋,height240,colour_indexblack,boldon,italicoff;align:wrapon,vertcentre,horizcenter;pattern:patternsolid,fore_colourlight_orange;') item='测试项' Subitem='测试分项' CaseTitle='测试用例标题' Condition='预置条件' actions='操作步骤' Result='预期结果' booksheet.write(0,0,item,title) booksheet.write(0,1,Subitem,title) booksheet.write(0,2,CaseTitle,title) booksheet.write(0,3,Condition,title) booksheet.write(0,4,actions,title) booksheet.write(0,5,Result,title) #冻结首行 booksheet.panes_frozen=True booksheet.horz_split_pos=1 #一级目录 foriinroot.childNodes: testsuite=i.getAttribute('name').strip() #printtestsuite #printtestsuite ''' 写测试项 ''' print"rowis:",row booksheet.write(row,col,testsuite,style) #二级目录 forddini.childNodes: print"%s"%dd.getAttribute('name') testsuite2=dd.getAttribute('name') ifnotdd.getElementsByTagName('testcase'): print"Testcaseis%s"%testsuite2 row=row+1 booksheet.write(row,2,testsuite2,style)#写测试分项 row=row+1 booksheet.write(row,1,testsuite2,style) itemlist=dd.getElementsByTagName('testcase') forsubbinitemlist: #print"%s"%subb.getAttribute('name') testcase=subb.getAttribute('name') row=row+1 booksheet.write(row,2,testcase,style) ilist=subb.getElementsByTagName('preconditions') foriiinilist: preconditions=ii.firstChild.data.replace("<br/>","") col=col+1 booksheet.write(row,3,preconditions,style) steplist=subb.getElementsByTagName('actions') #printsteplist forstepinsteplist: actions=step.firstChild.data.replace("<br/>","") col=col+1 booksheet.write(row,4,actions,style) #print"测试步骤:",steplist[0].firstChild.data.replace("<br/>","") expectlist=subb.getElementsByTagName('expectedresults') forexpectinexpectlist: result=expect.childNodes[0].nodeValue.replace("<br/>","") booksheet.write(row,5,result,style) row=row+1 workbook.save('demo.xls') |