UFT API - 如何从API响应中捕获动态数组消息密钥并在excel中写入

时间:2014-12-15 14:51:09

标签: hp-uft

我遇到过一种情况,我需要捕获服务响应并将其存储在excel文件中以获取不同的数据组合。

如果只有一条消息的服务响应,我已经编写了自定义代码并更新了excel中的响应。但消息是在xml响应中的array []中定义的。根据我使用的输入数据,服务响应可能有多个消息。这是我的测试失败的地方。

任何人都可以帮我解决这个问题吗?

错误消息: 消息无法获取属性:OutputEnvelope,带有XPath:/ [local-name(。)='Envelope'] [1] /[local-name(.)='Body'][1 ] / [本地名称()= 'getRequestContextOut'] [1] / [本地名称()= '消息'] [1] / [本地名称(。 )='消息'] [4] / [local-name(。)='messageKey'] [1]

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点 1st:您可以声明输入变量并将每个变量指向Array下的相应键。当你进行数据链接时,UFT会问你是的,你说UFT会为你创建一个循环,这样无论数组下的项目数量,它都会计算组数(如Flight / customer / orderNumber /)和循环根据统计数据。此时,您需要做的就是将这些动态数组键写入Excel文件。

第二:你也可以通过编程方式完成。下面是它的工作原理 首先声明输入变量并转到目标数组,将其链接到变量,使其保存xml nodeList。然后你可以使用xml Dom访问childNodes的值,这将是这样的:
     XmlNodeList Lst = VariableThatHoldNodeListArray;
     XmlNodeList myTargetNodes = Lst.GetElementsByTagName(" YourTagHere");
     对于(int i = 0,i< myTargetNodes.count,i ++)
           {
         this.context.UserLogger.info(myTargetNode.item(ⅰ).innerText);
     }

我建议你去UFT帮助部分,有一些宝贵的资源,你会感到惊讶,我从那里学到了大部分知识,因为即使我知道C#编写自定义代码,我也不知道是什么课可用的是对象的参考,在帮助中它将列出所有可用的对象和方法。希望这有帮助。如果您还有其他问题请与我联系