用QTP调用外部vbs读写XML的例子

上一篇 / 下一篇  2007-11-02 16:58:14 / 个人分类:QTP

目前,企业中对XML的应用越来越广泛,作为自动化测试的测试工程师,也应该掌握XML的读写操作。                                    以下我使用XML DOM技术演示一个例子,用以读取XML指定节点的节点内容值。

读取函数原型 GetXml strXmlPath,nodeName
这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看
首先,新建一个vbs文件(取个名字叫readXml.vbs),输入代码:

CODE:

'==================================================================
  Author : songfun  
 
' Descrīption : Read XML
==================================================================
 Dim strXML
 GetXml "c:\search.xml","TestResult" '这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看
MsgBox strXML

Function GetXml (ByVal strXmlFilePath,ByVal xmlNodeName)
Dim xmlDoc,xmlRoot

Set xmlDoc = CreateObject("Microsoft.XMLDOM") '创建XML DOM对象
xmlDoc.async = False '控制加载模式为同步模式(xml树加载完毕后再执行后续代码)
xmlDoc.load strXmlFilePath '载入xml文件
If xmlDoc.parseError.errorCode <> 0 Then
MsgBox "XML文件格式不对,原因是:" & Chr(13) & xmlDoc.parseError.reason                   
Exit Function
End If
Set xmlRoot = xmlDoc.documentElement
xmlRecursion xmlRoot,xmlNodeName '调用xml递归函数传入指定的根和节点名
GetXml = True 'xmlRecursion (xmlRoot)
End Function
Function xmlRecursion(byval xmlNode,byval strNodeName)                                           If xmlNode.nodeName = strNodeName And xmlNode.hasChildNodes Then
If xmlNode.childNodes.item(0).nodeName = "#text" Then                                             strXML = strXML & xmlNode.nodeName & ":" & xmlNode.childNodes.item(0).nodeValue & Chr(13)                                                                                                                         End If                                                                                                                       End If                                                                                                                 If xmlNode.hasChildNodes Then
For Each childNodeItem In xmlNode.ChildNodes
If childNodeItem.hasChildNodes Then
xmlRecursion childNodeItem,strNodeName

Next
End If
End Function接着,自己构造一个xml文件(取个名字叫search.xml),如:

CODE:

<?xml version="1.0" encoding="GB2312"?>

<ROOT>
<TestCase>
<TestNumberOne>1</TestNumberOne>
<TestNumberTwo>2</TestNumberTwo>
<TestNumberThree>+</TestNumberThree>
<TestResult>3</TestResult>
</TestCase>
<TestCase>
<TestNumberOne>3</TestNumberOne>
<TestNumberTwo>2</TestNumberTwo>       
<TestNumberThree>-</TestNumberThree>
<TestResult>1</TestResult>            
</TestCase>         
<TestCase>
<TestNumberOne>3</TestNumberOne>          
<TestNumberTwo>7</TestNumberTwo>        
<TestNumberThree>*</TestNumberThree>            
<TestResult>21</TestResult>
</TestCase>                                                                                          <TestCase>
<TestNumberOne>2</TestNumberOne>  
<TestNumberTwo>5</TestNumberTwo> 
<TestNumberThree>/</TestNumberThree>
<TestResult>0.4</TestResult>                                                                  </TestCase>
</ROOT>

然后,在QTP的expert view中调用刚才写的vbs文件:

 executefile "c:\readXml.vbs"

点“Run”,就能看到这个效果了。

当然,如果你不用调用外部文件的方式,也可以,如下图。




TAG: QTP

 

评分:0

我来说两句

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 27562
  • 日志数: 69
  • 文件数: 1
  • 书签数: 1
  • 建立时间: 2007-10-18
  • 更新时间: 2009-05-05

RSS订阅

Open Toolbar