首页 > 其他 > 详细

几行小代码,将Testlink的xml用例导入至excel

时间:2015-11-20 09:13:59      阅读:577      评论:0      收藏:0      [点我收藏+]

   最近在使用Testlink时,发现导入的用例是xml格式,且没有合适的工具转成excel格式,xml使用excel打开显示的东西也太多,网上也有相关工具转成csv格式的,结果也不合人意。

  那求人不如尔己,自己写一个吧

 需要用到的模块有:xml.dom.minidom(python自带)、xlwt

使用版本:

python:2.7.5

xlwt:1.0.0

一、先分析Testlink XML格式:

技术分享

这是一个有两级testusuit的典型的testlink用例结构,我们只需要取testsuite name,testcase name,preconditions,actions,expectedresults

二、程序如下:

#coding:utf-8
‘‘‘
Created on 2015-8-20

@author: Administrator
‘‘‘
‘‘‘
‘‘‘
import xml.etree.cElementTree as ET
import xml.dom.minidom as xx
import os,xlwt,datetime

workbook=xlwt.Workbook(encoding="utf-8")
# 
booksheet=workbook.add_sheet(usheet_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(rD:\\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: wrap on,vert centre, horiz center)  #自动换行、水平居中、垂直居中
#设置标题的格式,字体方宋、加粗、背景色:菊黄
#测试项的标题
title=xlwt.easyxf(ufont:name 仿宋,height 240 ,colour_index black, bold on, italic off; align: wrap on, vert centre, horiz center;pattern: pattern solid, fore_colour light_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 #一级目录 for i in root.childNodes: testsuite=i.getAttribute(name).strip() #print testsuite #print testsuite ‘‘‘ 写测试项 ‘‘‘ print "row is :",row booksheet.write(row,col,testsuite,style) #二级目录 for dd in i.childNodes: print " %s" % dd.getAttribute(name) testsuite2=dd.getAttribute(name) if not dd.getElementsByTagName(testcase): print "Testcase is %s" % testsuite2 row=row+1 booksheet.write(row,2,testsuite2,style) #写测试分项 row=row+1 booksheet.write(row,1,testsuite2,style) itemlist=dd.getElementsByTagName(testcase) for subb in itemlist: #print " %s" % subb.getAttribute(‘name‘) testcase=subb.getAttribute(name) row=row+1 booksheet.write(row,2,testcase,style) ilist=subb.getElementsByTagName(preconditions) for ii in ilist: preconditions=ii.firstChild.data.replace("<br />"," ") col=col+1 booksheet.write(row,3,preconditions,style) steplist=subb.getElementsByTagName(actions) #print steplist for step in steplist: 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) for expect in expectlist: result=expect.childNodes[0].nodeValue.replace("<br />","" ) booksheet.write(row,5,result,style) row=row+1 workbook.save(demo.xls)

写入excel的效果如下:

技术分享

 

参考文档:

1、python对excel操作:http://www.open-open.com/lib/view/open1385174954276.html

2、python之xml操作:http://www.jb51.net/article/63780.htm

几行小代码,将Testlink的xml用例导入至excel

原文:http://www.cnblogs.com/landhu/p/4978797.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!