用QTP调用外部vbs读写XML的例子
上一篇 /
下一篇 2007-06-18 16:07:48
/ 个人分类:QTP
目前,企业中对XML的应用越来越广泛,作为
自动化测试的测试工程师,也应该掌握XML的读写操作。
51Testing软件测试网(zSe W6P{以下我使用XML DOM技术演示一个例子,用以读取XML指定节点的节点内容值。
i
j
mpR0读取函数原型 GetXml strXmlPath,nodeName
D4k6s,Q]q0这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看
5UUnc;g0首先,新建一个vbs文件(取个名字叫readXml.vbs),输入代码:
CODE:51Testing软件测试网'cg*H6fA!L9u+J
'==================================================================51Testing软件测试网T?0[\8ri&O)[:s!O
' Author : songfun51Testing软件测试网DZ0z:KY;oA
'
Di
@J,A0' Descrīption : Read XML51Testing软件测试网3]G(b`
d
Hl?"{+W
'==================================================================51Testing软件测试网?e!c;N H`,^A
Dim strXML
:L
SB#HU^T2[0
2rp2c#q yt'gQ^0GetXml "c:\search.xml","TestResult" '这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看51Testing软件测试网 D*Y-BE,b7v a)Q:N
MsgBox strXML
&c?w8M Y0
*Q m*s2Jq~` Q051Testing软件测试网HWH)s
|;Hs7r,p
Function GetXml (ByVal strXmlFilePath,ByVal xmlNodeName)51Testing软件测试网3F'q!{/NI6w`
Dim xmlDoc,xmlRoot51Testing软件测试网|BS\|(m
5oZ/nYQ+N.oN0Set xmlDoc = CreateObject("Microsoft.XMLDOM") '创建XML DOM对象51Testing软件测试网&u\.~8m4G@e
xmlDoc.async = False '控制加载模式为同步模式(xml树加载完毕后再执行后续代码)51Testing软件测试网a+w7^@9Tb.U
xmlDoc.load strXmlFilePath '载入xml文件
H
nkOS0If xmlDoc.parseError.errorCode <> 0 Then
Z:Ip3FV&GJ
Te0MsgBox "XML文件格式不对,原因是:" & Chr(13) & xmlDoc.parseError.reason51Testing软件测试网s7\+pN0{R_Y
Exit Function51Testing软件测试网I0`;i2t2cge
End If51Testing软件测试网Kyy4s GT0D5Je
Set xmlRoot = xmlDoc.documentElement
ILg#E'[0xmlRecursion xmlRoot,xmlNodeName '调用xml递归函数传入指定的根和节点名51Testing软件测试网v%{'{4{pM
fY
GetXml = True 'xmlRecursion (xmlRoot)
0H-c2Y;zO^pZ051Testing软件测试网]B6C c,w
N?G;] w
End Function
Q3r
|4rl0P,KSB:m051Testing软件测试网b6e
| yb!h&|&X
Function xmlRecursion(byval xmlNode,byval strNodeName)
lX qF-CUi,A4L-_0If xmlNode.nodeName = strNodeName And xmlNode.hasChildNodes Then
U%kv2C&G%xoi0If xmlNode.childNodes.item(0).nodeName = "#text" Then
*VF'w)|9t]/z8J0strXML = strXML & xmlNode.nodeName & ":" & xmlNode.childNodes.item(0).nodeValue & Chr(13)
4z0{rP~dX0End If51Testing软件测试网v+M:n}z_h6b1g
End If
NXe0a2Ap0If xmlNode.hasChildNodes Then
(Ti0Y4u1o9@0For Each childNodeItem In xmlNode.ChildNodes51Testing软件测试网1pF"e:]wd'z
If childNodeItem.hasChildNodes Then51Testing软件测试网mMYd4p
v
xmlRecursion childNodeItem,strNodeName
Y3_|,It5tB ip0End If
s
k'q|%x)SQ(w0Next
8G|[8v.t0End If
0X~\q!\:Xb@0End Function
接着,自己构造一个xml文件(取个名字叫search.xml),如:
CODE:
f`/jV9L FhB0<?xml version="1.0" encoding="GB2312"?>51Testing软件测试网i'En`sc'u.C)hi9q
/K
_6l
r*J-Z.`0<ROOT>
sGEl,J0<TestCase>51Testing软件测试网#f"\!RC-|9?}
<TestNumberOne>1</TestNumberOne>51Testing软件测试网&j/Z b4T4|
<TestNumberTwo>2</TestNumberTwo>
Y$D${&x'We0<TestNumberThree>+</TestNumberThree>
5}
YcN$?#Q0<TestResult>3</TestResult>
sOr#pXg IL ^?5c0</TestCase>
u\9elEh.gB3u2K+ld0<TestCase>51Testing软件测试网!nxz8^ xsR]|
<TestNumberOne>3</TestNumberOne>
W2`'cM5E8g+~f_0<TestNumberTwo>2</TestNumberTwo>
'O{+zv
i3g-L0<TestNumberThree>-</TestNumberThree>51Testing软件测试网;@V'x dG!zMO$@:g
<TestResult>1</TestResult>51Testing软件测试网$D6hqL}2vOJ-O,X{
</TestCase>51Testing软件测试网W;ub@:B
<TestCase>51Testing软件测试网aR/M%M
A-sNR'K5t
<TestNumberOne>3</TestNumberOne>51Testing软件测试网Fa%m^;W9l
<TestNumberTwo>7</TestNumberTwo>
4N%eq5[
r;k$E0<TestNumberThree>*</TestNumberThree>51Testing软件测试网 p%V^z&c
<TestResult>21</TestResult>
r'\^.ad
h
]0</TestCase>51Testing软件测试网C @U%Y1c
<TestCase>51Testing软件测试网MF(E-xQ$H,x6S
<TestNumberOne>2</TestNumberOne>
4SD0S$G%i+I2J0<TestNumberTwo>5</TestNumberTwo>51Testing软件测试网(ja5O4W.VbjQ6b)z
<TestNumberThree>/</TestNumberThree>51Testing软件测试网)zk!w)V1Yh3W5Z
G-v
<TestResult>0.4</TestResult>
c.v`a-mF0</TestCase>51Testing软件测试网?7cy;{+yks
</ROOT>
然后,在
QTP的expert view中调用刚才写的vbs文件:
51Testing软件测试网2Fs;c5e+?1Nz Sexecutefile "c:\readXml.vbs"
51Testing软件测试网p#r4R'e!e0w5T'C C51Testing软件测试网 R|9][
x;M!g点“Run”,就能看到这个效果了。
51Testing软件测试网g8p&r4iMt当然,如果你不用调用外部文件的方式,也可以,如下图。
51Testing软件测试网 n,],H6iB5YMmL["c51Testing软件测试网P ch|U'M4O2UoM8C51Testing软件测试网(L cG%Te'|
相关阅读:
- 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