0

ウィンドウを使用してProperty Transfert、最初のSoapリクエストの応答から取得したXMLノード(子ノードを含む)を2番目のSoapリクエストに転送し、両方のリクエストが同じTestCaseにある場合、それはうまく機能します。

TestCase 1:

Source : [First Soap Request] Property : [Response]

declare namespace ns='http://xxx.com';
//ns:xxxxx[1]/ns:return[1]

-------------------------------------------
Target : [Second Soap Request] Property : [Request]

declare namespace ser='http://xxx.com';
//ser:xxxxx[1]/ser:someobject[1]

ただし、2つのリクエストが異なるTestCaseにある場合は、最初にXMLノードをTestSuiteプロパティに保存してから、このプロパティを新しいSoapリクエストに転送する必要があると思います。

TestCase 1:

Source : [First Soap Request] Property : [Response]

declare namespace ns='http://xxx.com';
//ns:xxxxx[1]/ns:return[1]

-------------------------------------------
Target : [TestSuite1] Property : [myVariableToTransfert]

TestCase 2:

Source : [TestSuite1] Property : [myVariableToTransfert]

-------------------------------------------
Target : [Second Soap Request] Property : [Request]

declare namespace ser='http://xxx.com';
//ser:xxxxx[1]/ser:someobject[1]

これは機能しません!

TestSuiteからプロパティとして取得した場合、2番目のリクエストで有効なXMLを取得できないようです。値がnullの場合もあれば、CDATAタグでラップされている場合や、XMLがエンティティ化されている場合もあります(たとえば、「<」は「&lt」です)。両方のリクエストが同じTestCaseにある場合のように、実際のXMLとして値を取得できません。

「テキストコンテンツの転送」、「転送された値のエンティティ化」、「子ノードの転送」オプションを試してみましたが、成功しませんでした。

XMLノードをTestCaseのリクエストから2番目のTestCaseのリクエストに転送するにはどうすればよいですか?

4

2 に答える 2

0

詳細な説明は次のとおりです。

テストスイート1と以下の手順を作成します

  test case 1
  DataGen step 
  test case 2

DataGenステップ内で、エディターを開き、[+]ボタンをクリックして新しいプロパティを追加し、[タイプ]としてスクリプトを選択します(プロパティに名前を付ける必要があります。名前はyourpropであると想定します)。

画面の下側に、スクリプトエディタが表示されます。そして、以下のようにスクリプトを作成します(WebサービスとXMLに応じて変数を変更する必要があることに注意してください)

def testXML = context.expand( '${Test Request#Response#declare namespace ns1=\'http://namespace/'; //ns1:WebServiceNameResponse[1]/ns1:nodeName[1]}' )

これで、yourpropという名前のDataGenを介してsoapUIプロパティが作成されました。このプロパティは、次のテストケースのテストスイート内で使用できます。

これがお役に立てば幸いです。ご満足いただけない場合や問題が発生した場合は、最善を尽くしますのでお知らせください。

于 2012-10-22T12:59:45.190 に答える
0

テストスイートで応答値をカスタムプロパティとして設定すると、これをさらにテストするために使用できます..値を文字列データとして保存することに注意してください.整数データを保存する場合は、さらに使用する前に整数に変換する必要があります. testRunner.testCase.testSuite.getPropertyValue("").toInteger() と同様

于 2012-10-29T09:17:56.010 に答える