Excel导入TestLink

      TestLink搭建好了,要开始管理测试用例了。以前就习惯先写在Excel表格中再导入QC,毕竟是编辑软件,功能也强大,用例编号拉一下都能自动填充,复制粘贴也方便,不会有像Word那样很多的格式问题让人头疼,也不会像在工具里写用例那么不方便。我习惯用WPS版本的,鼠标定位在哪个表格,上面的公式栏里面再大段的文字都能显示出来,这点我觉得比Office 2007要好用。但是WPS没有XML数据转换功能(这个功能最好用的要数Office2003)。

    怎么办呢?我了解到TestLink导入用例的功能虽然有导入xls的选项,但根本不能用。目前为止只能导入XML文件了。首先XML是什么呢?XML,可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。XML与Access,Oracle和SQLServer等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。 XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言。读到这里,明白了,XML因其简单的数据展示特性,能运行在很多应用程序上。所以,我们需要将xls文档转化成xml格式,再导入TestLink

    WPS没有这个XML转化功能,Office2007总是出现数据问题最终转化失败,按照网上的具体方法来操作来映射,还是不成功。后来,我找到了一种用VBS开发的转化程序工具,能将xls、xlsx格式的Excel表单轻轻松松转化成XML文档。贴上工具和教程:

  工具“xlsToxml”下载链接:点击打开链接

 1、先获取文件,这里需要输入绝对的文件路径和名称,如下图:  

  

  2、按照如上步骤,确定之后,需要输入读取的Excel中目标表格的名称,如下图:

  

  3、接着以上步骤,确定之后,需要输入转换之后的XML文件保存的路径以及名称,如下图:  

  

  4、确定后待转换结束,会给出提示,并提示总共完成多少条数据的转换,如下图所示:

  

  基本上通过如上四个步骤就能快速完成Excel转换XML,然后就可以通过转换之后的XML格式的文件导入TestLink的测试用例中,如果导入成功,则说明脚本正确地完成此了此功能~


然后我将我的测试用例Excel文档成功转化,生成的XML文件是这样的(图太大只能分开截图):




其实上面生成的XML的列名与实际描述不相符,原因是Excel表单的列名映射出错了,脚本是按照单元格的顺序读取的Excel表单的列名映射出错了,那么Excel里写的用例,字段应该怎么排列呢?

我给Excel列添加了“摘要”这一列,调整后是这样的:


这样就和XML生成的表单字段一致了。

注:文章最后关于Excel中编写用例的字段规则有详细说明

接下来是将XML导进TestLink了,过程很简单:

选中TextLink左侧目录结构中相应的测试用例集文件夹,点击“导入测试用例”:



然后选择导好的XML文件,点击“上传文件”:



最后,导入到TestLink里面的效果还可以,缺点就是步骤分不了,只能在Excel编写时自己标清楚了。

导入效果图:



     放大看:





至此Ok啦,放心在Excel里写用例吧~


关于Excel中测试用例的字段:

(1)用例编号的编写规则是:目录+递增编号(也可以不写目录,目录在TestLink创建,我这里是方便用例的管理)

(2)因为XML转换工具对一个Sheet页的所有用例生成的外部ID(EXTERNAL ID)都是1,第一次可以导入用例集下。但是若再转化一份新的目录的用例集,其EXTERNAL ID还是1,此时导入TextLink其他的用例集目录下,导入失败。

       比如在TextLink“后台管理_用户管理_新增用户”用例集下导入了测试用例,在后台管理_用户管理_删除用户”用例集导入测试用例就报错:

        Can not be imported - You are hitting an existent Test Case with SAME EXTERNAL ID

        代码本身的缺陷,还不知道解决办法,不过有一个取巧的办法:先把用例全导进“新增用户”中,然后在TextLink把“删除用户”的测试用例移动到“删除用户”用例集。

(3)用例字段还可以按照如下编写,加粗字段为必须有的字段,不加粗的可以没有


(4)用例名称的字符长度不能过长

         曾经用例的用例名称字数多了点,结果工具转换提示成功了,但是导入TextLink却失败了,而且用WPS也打不开XML文件,报错:XML格式错误。

(5)用例的摘要、预设条件、描述步骤、预期结果都可以用1、2、3编号来进行换行。

          当在Excel中填写1.XXX 2.YYY等等,

          导入TextLink中显示的是    1.XXX 

                                                  2.YYY

            但只识别1、2、3编号,不能识别诸如(1)、二 ....这类编号来进行换行

(6)编号最多只能实现8个换行,当编号在9之后,就不换行了。

                                                                                          

最后附上此工具的源码(转载自。。。)未来有时间一定自己修补一下工具

Dim objexcel,objworkbook,objsheet,objxml_inter,objxml,totalrow,row,id,excelStr

'========================================
'创建Excel对象,关闭Excel对象--函数
'=========================================
Function getExcel(excelname, excelpath)
Set objexcel = CreateObject("excel.application")
Set objworkbook = objexcel.Workbooks.Open(excelpath)
Set objsheet = objworkbook.Sheets(excelname)
End Function

Function clsExcel()
objworkbook.Close
End Function
'============================================

Function dealStr(excelStr)
    For id=2 To 8
        excelStr = Replace(excelStr,id&"、","<br/>"&id&"、")
        excelStr = Replace(excelStr,id&".","<br/>"&id&".")
    Next
    dealStr=excelStr
End Function


'========================
'获取Excel单元格数据,并将XML的格式写入到对应的单元格,之后通过创建XML对象生成XML文件
'========================
Function getExcelData()
row=2
objxml_inter=""
Do While Not (objsheet.cells(row,2).value="")

'internalid
objxml_inter=objxml_inter&CStr("<testcase internalid=""")  '
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,1))) '内部用例编号
objxml_inter=objxml_inter&CStr(""" name=""")

'caseName
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,2))) '用例名称
objxml_inter=objxml_inter&CStr(""">")


objxml_inter=objxml_inter&CStr("<node_order><![CDATA[0]]></node_order>")

'externalid
objxml_inter=objxml_inter&CStr("<externalid><![CDATA[")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,1))) '外部用例编号
objxml_inter=objxml_inter&CStr("]]></externalid>")

'summary
objxml_inter=objxml_inter&CStr("<summary><![CDATA[<p>")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,3))) '摘要
objxml_inter=objxml_inter&CStr("</p>]]></summary>")

'preconditions
objxml_inter=objxml_inter&CStr("<preconditions><![CDATA[<p>")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,6))) '前置条件
objxml_inter=objxml_inter&CStr("</p>]]></preconditions>")

'execution_type    '执行方式
objxml_inter=objxml_inter&CStr("<execution_type><![CDATA[1]]></execution_type>")

'importance    '重要性
objxml_inter=objxml_inter&CStr("<importance><![CDATA[2]]></importance>")

'steps
objxml_inter=objxml_inter&CStr("<steps>")

'step
objxml_inter=objxml_inter&CStr("<step>")

'step_number
objxml_inter=objxml_inter&CStr("<step_number><![CDATA[1]]></step_number>")

'action
objxml_inter=objxml_inter&CStr("<actions><![CDATA[<p>")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,7))) '测试步骤
objxml_inter=objxml_inter&CStr("</p>]]></actions>")

'expectedresults
objxml_inter=objxml_inter&CStr("<expectedresults><![CDATA[<p>")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,8))) '预期结果
objxml_inter=objxml_inter&CStr("</p>]]></expectedresults>")

'execution_type
objxml_inter=objxml_inter&CStr("<execution_type><![CDATA[1]]></execution_type>")

objxml_inter=objxml_inter&CStr("</step>")
objxml_inter=objxml_inter&CStr("</steps>")

objxml_inter=objxml_inter&CStr("</testcase>")

'CStr(objsheet.cells(x,1)),CStr(objsheet.cells(x,2))
'MyFile.Write(objxml_inter)
'WScript.Echo x-1
row=row+1
Loop
totalrow = row-2
End Function



'========================
'创建XML文件
'========================
Sub CreateXML
Dim fileObj, XmlFile
Set fileObj = CreateObject("Scripting.FileSystemObject")
Set XmlFile = fileObj.CreateTextFile(XMLname, True)
'xml title
objxml=CStr("<?xml version=""1.0"" encoding=""GBK""?>")
objxml=objxml&CStr("<testcases>")
objxml=objxml&objxml_inter
objxml=objxml&CStr("</testcases>")
XmlFile.Write(objxml)
XmlFile.Close
End Sub

excelpath = Inputbox("请输入Excel文件正确的路径名和文件名:","TestLink 1.9.10小助手: Excel转换XML工具")

If excelpath = "" Then
    MsgBox "文件名不能为空!"
    WScript.Quit
ElseIf InStr(excelpath,".xls") < 1 Then
    MsgBox "文件名格式不对!"
    WScript.Quit
End    If


excelname = InputBox("请输入Excel中所要操作的表格名称:","TestLink 1.9.10小助手: Excel转换XML工具")

If excelname = "" Then
    MsgBox "文件名不能为空!"
    WScript.Quit
End If

XMLname = InputBox("请输入转换之后的XML文件保存路径和名称:","TestLink 1.9.10小助手: Excel转换XML工具")
If XMLname = "" Then
    MsgBox "文件名不能为空!"
    WScript.Quit
ElseIf    InStr(XMLname,".xml") < 1 Then
    MsgBox "文件名格式不对!"
    WScript.Quit
End    If

'初始化excel对象
Call getExcel(excelname, excelpath)
'读入Excel数据
Call getExcelData()
'写入数据, XML
CreateXML
'关闭Excel对象
Call clsExcel()

'提示信息
MsgBox "完成从Excel到XML的数据转换,总共"+CStr(totalrow)+"条!"


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值