多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

用QTP调用外部vbs读写XML的例子-自动化测试

更新时间:2022-06-02 09:33:44 作者:多测师 浏览:164

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

用QTP调用外部vbs读写XML的例子-自动化测试

       读取函数原型 GetXml strXmlPath,nodeName,这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看。

       首先,新建一个vbs文件(取个名字叫readXml.vbs),输入代码:

CODE:

'==================================================================

' Author : songfun

'

' Description : 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

End If

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”,就能看到这个效果了。当然,如果你不用调用外部文件的方式也可以。

       以上内容为大家介绍了自动化测试中的用QTP调用外部vbs读写XML的例子,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部