zoukankan      html  css  js  c++  java
  • 几行小代码,将Testlink的xml用例导入至excel

       最近在使用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(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	est.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(u'font: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

  • 相关阅读:
    常规放大电路和差分放大电路
    二级管工作原理(PN结原理)学习
    数字图像处理(MATLAB版)学习笔记(2)——第2章 灰度变换与空间滤波
    数字图像处理(MATLAB版)学习笔记(1)——第1章 绪言
    PPT制作线条动画
    MOSFET使用与H桥驱动问题
    WPF自定义控件(1)——仪表盘设计[1]
    WPF自定义控件(2)——图表设计[1]
    c# lamp表达式例子
    HashCode和equal方法的区别和联系
  • 原文地址:https://www.cnblogs.com/landhu/p/4978797.html
Copyright © 2011-2022 走看看