2017-05-10 5 views
0

の物件移転の "XPathの選択" に変数を挿入する方法: 含まSOAPUI 4.6.1 私はテストケースを持っている、と協力SOAPUI

    1. テスト要求(1)
    2. のGroovyスクリプトをプロパティ転送
    3. テスト要求(2)

    私の目標は、XPath EXPRESへのGroovyスクリプトの結果から変数を渡すことです物件移転の何のために? テスト要求(1)レスポンス

    は、スキームのリストがあります:

    <...> 
    <...> 
        <...> 
        <scheme_list> 
        <scheme> 
        <node1> 
         ... 
        </node1> 
         ... 
        <nodeN> 
         ... 
        </nodeN> 
        </scheme> 
    
        <scheme> 
        <node1> 
         ... 
        </node1> 
         ... 
        <nodeN> 
         ... 
        </nodeN> 
        </scheme> 
    
        <scheme> 
        <node1> 
         ... 
        </node1> 
         ... 
        <nodeN> 
         ... 
        </nodeN> 
        </scheme> 
        </scheme_list> 
        </...> 
    </...> 
    </...> 
    

    のGroovyスクリプトが私の条件に該当する他のすべてから1つのスキームを、見つけました。 - スクリプトの結果は、この方式の数です:財産移転

    ... 
    return i 
    

    、私は私が要求(2)をテストすることが分かっスキームのすべてのノードを渡す必要があります。だから、私はこのスキームの数をとり、それをXpath式に渡す必要があります。

    私はそれは簡単だろうと思った:

    Source: //scheme_list/scheme[i] 
    Target: //scheme 
    

    やソリューション私はインターネットで見つかった:

    Source: //scheme_list/scheme['+i+'] 
    Target: //scheme 
    

    しかし、残念ながら、それは動作しません。私の変数 "i"はGroovy Scriptにあり、別のテストステップProperty Transferのようにどこかに渡すことはできません。

  • 答えて

    1

    多くのQ & Aを見てみると、私はいろいろな解決策を試しましたが、私は自分自身を見つけました。 パスはスクリプト名で、結果は結果である

    //scheme_list/scheme[${path#result}] 
    

    1の条件は、あなたは、XPathにスクリプトから変数を渡すことができ、あなたが

    だからあなたのスクリプトの結果として、必要な変数を返すということです。

    もっと簡単な解決策がある場合は、お気軽にご相談ください。

    +0

    あなたのスクリプトと同じように、スクリプトに戻り値を(プロパティステップの)プロパティに格納させるようにしてください。その後、そこから物件を引き取ります。または、プロパティ転送のステップ全体を無視し、Groovyスクリプトコードを使用して転送することができます。 ---- testRunner.testCase.testSteps ["StepName"]。setPropertyValue( "PropertyName"、propertyValue) – canpan14

    関連する問題