gpt4 book ai didi

xml - 如何处理 QTP/UFT 中对象所需的失败

转载 作者:行者123 更新时间:2023-12-02 05:08:28 25 4
gpt4 key购买 nike

我正在使用 Microsoft XML DOM 和 HTTP 在 UFT 中测试 Web 服务

当我触发请求 XML 时,我通过两种方式获得响应

方法1成功时

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SearchResourceResponse xmlns="http://www.ICLNBI.com/ICLNBI.xsd">
<MessageElements xmlns="">
<MessageStatus>SUCCESS</MessageStatus>
<MessageAddressing>
<from>ICL</from>
<to>QPortal</to>
<messageId>1234</messageId>
<action>SearchResource</action>
<timestamp>2013-07-29T17:05:17.860Z</timestamp>
<ServiceName>SearchResource</ServiceName>
<ServiceVersion>2.0</ServiceVersion>
</MessageAddressing>
</SearchResourceResponse>
</soap:Body>
</soap:Envelope>

方法 2 失败时

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body/>
</soap:Envelope>

我正在捕获 <MessageStatus>SUCCESS</MessageStatus>通过使用 xpath

set ObjXml = Createobject("Microsoft.XMLDOM")

Set ObjNode= ObjXml.SelectSingleNode("/soap:Envelope/soap:Body/*/MessageElements/MessageStatus")

ResultText=ObjNode.text

当它成功时,它工作得非常好,当它失败并且响应出现如方式 2 所示时,我收到一个类似 Object required 的错误,并且它不会进一步继续。

是否有任何方法可以使如果未找到对象,它不应该退出功能,并且应该返回失败状态并继续进一步

VB scipt iam 使用的是

Set ObjNode= ObjXml.SelectSingleNode("/soap:Envelope/soap:Body/*/MessageElements/messageStatus")
ResultText=ObjNode.text

If ResultText="SUCCESS" or ResultText="Success" Then

TcStatus = "Passed"

Else if

ResultText="FAIL" or ResultText= "FAILURE" Then

TcStatus = "Passed"

但是它在第 1 步中失败了:(我们可以处理这个吗?

最佳答案

我怀疑您在 SelectSingleNode 上遇到了错误,也许这只是您问题中的拼写错误?

我怀疑您在尝试访问 ObjNode.Text 时确实遇到了失败。这是因为如果 SelectSingleNode 找不到请求的节点,它将返回 Nothing。所以你只需要检查返回值即可决定是否访问.Text。

Set ObjXml = Createobject("Microsoft.XMLDOM")

'Presumably you have a step to load the XML here.

Set ObjNode = ObjXml.SelectSingleNode("/soap:Envelope/soap:Body/*/MessageElements/MessageStatus")
If ObjNode Is Nothing Then
MsgBox "Oh no! Failure!"
Else
ResultText = ObjNode.text
End If

哦,如果该元素从未出现在文档中的其他位置,您可以将 XPath 缩短为 //MessageStatus

关于xml - 如何处理 QTP/UFT 中对象所需的失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23557187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com