TestLink學習七:TestLink測試用例Excel轉換XML工具


TestLink對於測試用例的管理來說,是蠻強大的,但是在導入導出這塊,功能有點弱,本文針對測試用例的導入,轉載了一個Excel轉換成xml工具。

1、根據到處的測試用例xml,定義一下我的Excel的格式如下:

編號 用例名稱 摘要 重要性 測試方式 前提 步驟 期望結果 實際結果
1 2 3 4 5 6 7 8 9

2、如果還沒有開始寫用例的,可以一依據這個模板,在excel中編寫用例,以下腳本是按照單元格的順序讀取的,所以這里的格式要調整,腳本中也要做相應的調整。

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[")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,5))) '執行方式:手工1,自動的2
objxml_inter=objxml_inter&CStr("]]></execution_type>")

'importance
'objxml_inter=objxml_inter&CStr("<importance><![CDATA[1]]></importance>")
objxml_inter=objxml_inter&CStr("<importance><![CDATA[")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,4))) '重要性:高3中2低1
objxml_inter=objxml_inter&CStr("]]></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.13小助手: 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.13小助手: Excel轉換XML工具")

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

XMLname = InputBox("請輸入轉換之后的XML文件保存路徑和名稱:","TestLink 1.9.13小助手: 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)+"條!"

 

腳本保存本地,選擇編碼方式為unicode,后綴名為.vbs

注意:excel表中的用例編號是不能相同的,應該是唯一的

遺留問題:有多行步驟的時候,只能生成一行,即三個actions和expectresult,這個只能生成一個

 

下載文件

 

 

轉自:http://www.cnblogs.com/candle806/archive/2012/04/09/2439217.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM