用QTP调用外部vbs读写XML的例子
上一篇 /
下一篇 2007-06-18 16:07:48
/ 个人分类:QTP
目前,企业中对XML的应用越来越广泛,作为
自动化测试的测试工程师,也应该掌握XML的读写操作。
51Testing软件测试网2H.c)T#m5Kn以下我使用XML DOM技术演示一个例子,用以读取XML指定节点的节点内容值。
LD"N*eM0读取函数原型 GetXml strXmlPath,nodeName
51Testing软件测试网c5TLS7S ];Nndc7k这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看
7DV1i
Z2CY2A0首先,新建一个vbs文件(取个名字叫readXml.vbs),输入代码:
CODE:51Testing软件测试网6K}j6hKGf9w+Wi
'==================================================================51Testing软件测试网$fH5^b1d#^ Tw
' Author : songfun
!fM2oaU{a0'
Xf_:dG*iW$Kes0' Descrīption : Read XML
3yK2jcfX:sC0'==================================================================51Testing软件测试网-uz!}#U5i'z)f
Dim strXML51Testing软件测试网G.s)vE$J9K2s2K
;`KC4N?0GetXml "c:\search.xml","TestResult" '这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看51Testing软件测试网$bjLTOB
MsgBox strXML51Testing软件测试网-WN{R_%HI
51Testing软件测试网J?X3Bv'Ed-az
3^
vBrS0Function GetXml (ByVal strXmlFilePath,ByVal xmlNodeName)
SW8L_@MhG0Dim xmlDoc,xmlRoot51Testing软件测试网&C3rL'p L\!w?X5j
51Testing软件测试网JUZ gpkC
Set xmlDoc = CreateObject("Microsoft.XMLDOM") '创建XML DOM对象
1@BbY [?[U0xmlDoc.async = False '控制加载模式为同步模式(xml树加载完毕后再执行后续代码)51Testing软件测试网PCQ`[G&FS vgN
xmlDoc.load strXmlFilePath '载入xml文件51Testing软件测试网M|]PR'C&sR2r
If xmlDoc.parseError.errorCode <> 0 Then51Testing软件测试网,Wu p,~xM'jZ+N
MsgBox "XML文件格式不对,原因是:" & Chr(13) & xmlDoc.parseError.reason51Testing软件测试网jl5J*\;F+d
Exit Function51Testing软件测试网_5eOB
r;B%R
End If51Testing软件测试网*z3OJtQy-~
Set xmlRoot = xmlDoc.documentElement51Testing软件测试网3g$iZx!j/H
xmlRecursion xmlRoot,xmlNodeName '调用xml递归函数传入指定的根和节点名
s'pZ
JS-][0GetXml = True 'xmlRecursion (xmlRoot)51Testing软件测试网"\_eI Lq3i
+\dm9sL OE0End Function
%K!N:b
a%MK&|8_K051Testing软件测试网c1yej ?$]1Veo
Function xmlRecursion(byval xmlNode,byval strNodeName)51Testing软件测试网.s7m~(^}T$u/^v
If xmlNode.nodeName = strNodeName And xmlNode.hasChildNodes Then51Testing软件测试网#b'wQWs/Of Ny
If xmlNode.childNodes.item(0).nodeName = "#text" Then51Testing软件测试网4D#h(U%g%j2r
strXML = strXML & xmlNode.nodeName & ":" & xmlNode.childNodes.item(0).nodeValue & Chr(13)51Testing软件测试网|\"nk9Yi0x
End If51Testing软件测试网$R]PtP'[.^E#X
End If51Testing软件测试网I F[W$I:UnS}MF
If xmlNode.hasChildNodes Then51Testing软件测试网Wq*A)?-d!Q/n_)W
For Each childNodeItem In xmlNode.ChildNodes51Testing软件测试网&\7N'[&M~6i cTM!U
If childNodeItem.hasChildNodes Then
2SOj
a
a;LRy6}0xmlRecursion childNodeItem,strNodeName
J,gGr'P^hm8F0End If51Testing软件测试网B @\\_
vOg8\
Next
8m5k
\4fFgf0End If51Testing软件测试网U.X-KSNh*BB
End Function
接着,自己构造一个xml文件(取个名字叫search.xml),如:
CODE:51Testing软件测试网.zU8td-s2k
o
r
<?xml version="1.0" encoding="GB2312"?>
;s*ym,om^ ]Y051Testing软件测试网GAK5U"l2MBfaN
<ROOT>51Testing软件测试网 R)a3A/Ja Qst!OYl
<TestCase>51Testing软件测试网[(N2\5K_
<TestNumberOne>1</TestNumberOne>51Testing软件测试网tNW$[K2N7N.@*|.K
<TestNumberTwo>2</TestNumberTwo>51Testing软件测试网w wY+j`4Y@#Ac~
<TestNumberThree>+</TestNumberThree>
)O%m-W(H*I5xCmT0<TestResult>3</TestResult>51Testing软件测试网'wE u9ii
</TestCase>
&q/K4pC M:@q2`{!D0<TestCase>
M9Sd3\+YO0<TestNumberOne>3</TestNumberOne>
t'feLC)Y ?6v0<TestNumberTwo>2</TestNumberTwo>
Z%~ l/n;W`0<TestNumberThree>-</TestNumberThree>51Testing软件测试网t3puwMH8a5r%y5n#j
<TestResult>1</TestResult>51Testing软件测试网2Nk%|r&YP
</TestCase>
OQ9rq
P$U0<TestCase>51Testing软件测试网h/E,a@"if x/}
<TestNumberOne>3</TestNumberOne>
2sw6N5Pw p.h-~V1mO0<TestNumberTwo>7</TestNumberTwo>51Testing软件测试网I@_\p^ Cf}
mk
<TestNumberThree>*</TestNumberThree>51Testing软件测试网*LCI.w ?&D
o
<TestResult>21</TestResult>
J:^'w5q2T Y,r0</TestCase>
4Hkg`~ YC m0<TestCase>
0g*w6t_
|5BL``0<TestNumberOne>2</TestNumberOne>
)H]Jw K!vy'o2G0<TestNumberTwo>5</TestNumberTwo>51Testing软件测试网Za,ogS6[ X/L2K dv
<TestNumberThree>/</TestNumberThree>
,S-|s2_&p3f-_.y^r0<TestResult>0.4</TestResult>
i @gx2wRG0</TestCase>
q
xOI:r
~0</ROOT>
然后,在
QTP的expert view中调用刚才写的vbs文件:
51Testing软件测试网ljA&Le{executefile "c:\readXml.vbs"
51Testing软件测试网h pQv5W`51Testing软件测试网tH#h:mG7f!|,eP&D点“Run”,就能看到这个效果了。
}.z[gn1lC0当然,如果你不用调用外部文件的方式,也可以,如下图。
51Testing软件测试网uQz&P#G:MNp/B WpYIP{E8EZ?(LZ`Uk0(xrSm:xKrW0
相关阅读:
- QTP与Oracle数据库链接脚本 (panqy163, 2007-6-12)
- 测试运行过程中改变QTP窗口状态 (panqy163, 2007-6-12)
- ado读取excel文件中数据的2种方式 (panqy163, 2007-6-12)
- 数据驱动在QTP的运用 (panqy163, 2007-6-13)
- QTP导入EXCEL文件 (panqy163, 2007-6-13)
- 一个对象在同一个页面上出现多次时,可以使用附加属性index来解决. (eramyang, 2007-6-13)
- 收藏一篇资料--学习QTP,非原创。 (superls, 2007-6-13)
- 数据驱动在QTP的运用 (fishy, 2007-6-15)
- 编码规范和Action模版 (winfood, 2007-6-15)
- 从QTP开始 (ofjh, 2007-6-16)
收藏
举报
TAG:
QTP