2012-03-09 8 views
2

私はSoapUI 3.6.1を使用しています。 私は応答から詳細を取り出し、次の要求に挿入する必要があります。 私はこれを「プロパティ移転」によって行います。 最初のリクエストで私はいくつかの詳細を取得しており、応答で私は 'セクション'を見ることができます。 この 'セクション'には多くの 'コントロール'が含まれ、すべての 'コントロール'にはいくつかの値があります。 私の応答私は取得しています:応答から新しい要求への詳細を引き出すSoapUI

   ... 
       <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> 
        ... 

主な条件は必須(真)のみ「コントロール」し、利用可能な「価値」の一つだけを取得することです。私は次のリクエストで取得する必要があり 詳細は以下のようなものです:それは私が応答から「コード」、「ID」、「バリュー」、「バリュー・コード」を必要とする意味

... 
<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> 
.... 

。 「If..Else」ステートメントやその他の文を使用する可能性があります。 ありがとうございます。

答えて

3
  1. ValuesXML
  2. があなたの元の要求とステップを追加呼ばれる、あなたのテストケースに新しいプロパティを作成し、ソースデータ
  3. は、プロパティ転写工程
  4. を作成
  5. 新しい転送の追加]を選択しますあなたの応答からのXMLとしてのソース
  6. "XQueryの使用"チェックボックスをチェックしてください
  7. プロパティとして選択ターゲット値XML
  8. $ {#のTestCase#ValuesXML}
  9. を入れて、あなたはWHERE句があるべきXML要求では、変更したデータ
  10. をしたいターゲット要求、とのステップを追加ソースウィンドウ
  11. に以下のコードを追加します。
  12. GO!財産移転の「ソース」に行くべき

コード、

<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"の名前空間を宣言する必要があります。これは "宣言"ボタンで簡単に実行できます。

+0

最初にソート順の値を小さくしたいと思っていました。私の専門分野ではないXQueryがかなり必要でした...また、Proバージョン4.5を使用していますので、SoapUIで問題がある場合はお知らせください。 –

関連する問題