从对新请求SoapUI的响应中获取详细信息 [英] Pulling details from response to new request SoapUI
本文介绍了从对新请求SoapUI的响应中获取详细信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用的是SoapUI 3.6.1。 我需要从回应中拉出细节,并将它们插入到下一个请求中。 我试着通过‘财产转移’来做到这一点。 在第一个请求中,我得到了一些细节,在回应中我可以看到"部分"。 此"节"可以包含许多"控件",并且每个"控件"都有一些值。 我得到的回复是:
...
<a:Section>
<a:Controls>
<a:Control>
<a:Code>11</a:Code>
<a:Id>11</a:Id>
<a:Label>bkBranded</a:Label>
<a:Mandatory>true</a:Mandatory>
<a:SortOrder>223</a:SortOrder>
<a:Type>RadioButton</a:Type>
<a:Values>
<a:Value>
<a:Code>bkBrandedWindow</a:Code>
<a:SortOrder>1</a:SortOrder>
<a:Value>Yes</a:Value>
</a:Value>
<a:Value>
<a:Code>bkBrandedWindow</a:Code>
<a:SortOrder>2</a:SortOrder>
<a:Value>No</a:Value>
</a:Value>
</a:Values>
</a:Control>
...
主要条件是仅获取强制(TRUE)且只有一个可用‘Value’的‘Controls’。 我需要在下一个请求中获得的详细信息如下:
...
<Values>
<Value>
<ControlCode>8003</ControlCode>
<Id>8003</Id>
<Value>123</Value>
<ValueCode>bkBranded</ValueCode>
</Value>
<Value>
<ControlCode>455</ControlCode>
<Id>455</Id>
<Value>1/2</Value>
<ValueCode>bkOther</ValueCode>
</Value>
....
这意味着我需要来自响应的‘Code’、‘ID’、‘Value’、‘Value code’。 也许有可能使用‘if..Else’语句或smth Else。 提前谢谢。
推荐答案
- 在测试用例中创建一个名为ValuesXML的新属性
- 使用原始请求、源数据添加步骤
- 创建房产转移步骤
- 添加新调动
- 从您的响应中选择源作为XML
- 选中"使用XQuery"复选框
- 选择目标作为属性ValuesXML
- 将以下代码添加到源窗口
- 使用目标请求添加一个步骤,您希望在该步骤中修改数据
- 在该子句应在的XML请求中,将${#TestCase#ValuesXML}
- 开始!
应放在属性转移的"源"中的代码
<Values>
{
for $z in //Control
where $z/Mandatory eq "true"
return
<Value>
<ControlCode>{data($z/Code/text())}</ControlCode>
<Id>{data($z/Id/text())}</Id>
<Value>
{
let $values :=
for $x in //Value
order by $x/SortOrder
return $x/Value
return $values[1]
}
</Value>
<ValueCode>{data($z/Label/text())}</ValueCode>
</Value>
}
</Values>
注意:为了正确读取源数据,您可能必须在XQuery表达式中的标记名前面添加"a:"。这还需要您声明"a"命名空间,这很容易通过"声明"按钮完成。
这篇关于从对新请求SoapUI的响应中获取详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文