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、先获取文件,这里需要输入绝对的文件路径和名称,如下图:  

  Excel导入TestLink_第1张图片

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

  Excel导入TestLink_第2张图片

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

  Excel导入TestLink_第3张图片

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

  Excel导入TestLink_第4张图片

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


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

Excel导入TestLink_第5张图片

Excel导入TestLink_第6张图片


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

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


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

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

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

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

Excel导入TestLink_第7张图片


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

Excel导入TestLink_第8张图片


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

导入效果图:Excel导入TestLink_第9张图片



     放大看:

Excel导入TestLink_第10张图片


Excel导入TestLink_第11张图片



至此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&"、","
"&id&"、") excelStr = Replace(excelStr,id&".","
"&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("") objxml_inter=objxml_inter&CStr("") 'externalid objxml_inter=objxml_inter&CStr("") 'summary objxml_inter=objxml_inter&CStr("") objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,3))) '摘要 objxml_inter=objxml_inter&CStr("

]]>
") 'preconditions objxml_inter=objxml_inter&CStr("") objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,6))) '前置条件 objxml_inter=objxml_inter&CStr("

]]>
") 'execution_type '执行方式 objxml_inter=objxml_inter&CStr("") 'importance '重要性 objxml_inter=objxml_inter&CStr("") 'steps objxml_inter=objxml_inter&CStr("") 'step objxml_inter=objxml_inter&CStr("") 'step_number objxml_inter=objxml_inter&CStr("") 'action objxml_inter=objxml_inter&CStr("") objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,7))) '测试步骤 objxml_inter=objxml_inter&CStr("

]]>
") 'expectedresults objxml_inter=objxml_inter&CStr("") objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,8))) '预期结果 objxml_inter=objxml_inter&CStr("

]]>
") 'execution_type objxml_inter=objxml_inter&CStr("") objxml_inter=objxml_inter&CStr("
") objxml_inter=objxml_inter&CStr("
") objxml_inter=objxml_inter&CStr("
") '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("") objxml=objxml&CStr("") objxml=objxml&objxml_inter objxml=objxml&CStr("") 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)+"条!"


你可能感兴趣的:(学习总结报告)