从对新请求SoapUI的响应中获取详细信息 [英] Pulling details from response to new request SoapUI

查看:15
本文介绍了从对新请求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。 提前谢谢。

推荐答案

  1. 在测试用例中创建一个名为ValuesXML的新属性
  2. 使用原始请求、源数据添加步骤
  3. 创建房产转移步骤
  4. 添加新调动
  5. 从您的响应中选择源作为XML
  6. 选中"使用XQuery"复选框
  7. 选择目标作为属性ValuesXML
  8. 将以下代码添加到源窗口
  9. 使用目标请求添加一个步骤,您希望在该步骤中修改数据
  10. 在该子句应在的XML请求中,将${#TestCase#ValuesXML}
  11. 开始!

应放在属性转移的"源"中的代码

<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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆