TestLink测试用例:Excel转换XML工具<二>实现代码

简介:

以下是通过VBScript实现的Excel数据转换成XML格式,主要用于实现Testlink1.9.3~1.9.10的测试用例导入。代码实现如下:

根据到处的测试用例xml,定义一下我的Excel的格式如下:

编号 用例名称 摘要 重要性 测试方式 前提 步骤 期望结果 实际结果
1 2 3 4 5 6 7 8 9

 



如果还没有开始写用例的,可以一依据这个模板,在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[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)+"条!"
复制代码

 

脚本保存本地,选择编码方式为unicode,后缀名为.vbs

 

2014-7-11-log:解决导入用户提示外部用例ID相同的问题,直接取excel表中的用例编号,所以excel表中的用例编号是不能相同的,应该是唯一的。












本文转自一米一阳光博客园博客,原文链接:http://www.cnblogs.com/candle806/archive/2012/04/23/2466750.html    ,如需转载请自行联系原作者



相关文章
|
2月前
|
前端开发 测试技术 Python
【Selenium全攻略】掌握这一工具,实现自动化测试的所有梦想
本文分享了使用Selenium进行UI自动化测试的全过程,包括开发环境部署、代码实现、思路分析和难点解析。作者通过一个实际案例,讲述了如何利用Selenium处理前端生成报告失败的问题,以及在UI自动化中定位元素和处理元素不唯一的情况。同时,文章强调了解决问题思路的重要性,鼓励读者开拓思维,寻找不同的解决方案。
114 4
【Selenium全攻略】掌握这一工具,实现自动化测试的所有梦想
|
2月前
|
前端开发 jenkins 测试技术
自动化测试介绍,为何 Apifox 是进行自动化测试的最佳工具
自动化测试利用专用软件执行测试用例,比手动测试更高效准确。Apifox是一款集API文档、调试与自动化测试于一体的工具,提供一体化解决方案,简化API变更管理。其强大的测试功能支持丰富的断言及测试场景组合,便于模拟真实业务流程。Apifox还提供详尽的测试报告与分析功能,有助于快速定位问题。此外,它能轻松集成到CI/CD流程中,并支持定时任务及多分支管理,极大提升了测试效率和团队协作。相较于其他工具,Apifox以其全面的功能和友好的界面脱颖而出。
|
14天前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
31 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
5天前
|
jenkins 测试技术 持续交付
提升软件测试效率的实用技巧与工具
【10月更文挑战第12天】 本文将深入探讨如何通过优化测试流程、引入自动化工具和持续集成等策略,来显著提高软件测试的效率。我们将分享一些实用的技巧和工具,帮助测试人员更高效地发现和定位问题,确保软件质量。
16 2
|
13天前
|
测试技术
黑盒功能测试工具UFT的使用
黑盒功能测试工具UFT的使用
23 0
黑盒功能测试工具UFT的使用
|
17天前
|
XML 网络安全 数据格式
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(一)
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(一)
53 2
|
1月前
|
测试技术
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
54 4
|
17天前
|
XML 网络安全 数据格式
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(二)
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(二)
26 0
|
17天前
|
安全 网络安全 数据库
Kali渗透测试:使用工具Metasploit攻击操作系统(一)
Kali渗透测试:使用工具Metasploit攻击操作系统(一)
63 0
|
17天前
|
安全 Linux 网络安全
Kali渗透测试:使用工具Metasploit攻击操作系统(二)
Kali渗透测试:使用工具Metasploit攻击操作系统(二)
101 0