Extrahieren von xml-node-Inhalt ohne Knoten selbst in variable in jmeter

In meinem JMeter Szenario, ich bin das testen von SOAP-webservices. Ich senden der ersten Anfrage an webservice-S1 und verwenden Sie dann Antwort von ihm zu bauen, die Anfrage zu S2.
Die Antwort von S1 kommt in der form:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
    <s:response xmlns:s="http://custom.namespace.com/namespace">
    ...
        <s:responseDetails>
            <s:detail1>some info</s:detail>
            <s:detail2>another info<s:detail2>
            ...
        </s:responseDetails>
    </s:response>
</soap:Body>
</soap:Envelope>

Ich alles in <s:responseDetails> zu bauen, die Anfrage zu S2, aber verpackt in verschiedenen xml-element:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s="http://custom.namespace.com/namespace">
<soap:Body>
    <s:request>
        <s:details>
            <s:detail1>some info</s:detail>
            <s:detail2>another info<s:detail2>
            ...
        </s:details>
    </s:request>
</soap:Body>
</soap:Envelope>

Beachten element <s:details> im Antrag statt <s:responseDetails>.

Begann ich mit XPath extractor in der Hoffnung zu verwenden XPath-Ausdruck, um alles unter <s:responseDetails> tag in JMeter variable:

  • //*[local-name()='responseDetails']/node() - gibt mir eine Reihe von JMeter Variablen mit verschiedenen Kinder <s:responseDetails>, während ich will, dass Sie in eine variable
  • //*[local-name()='responseDetails'] - gibt mir der gesamte Knoten <s:responseDetails> die ich nicht verwenden kann, weil die Anwesenheit von root-tag <s:responseDetails>, die muss ich ersetzen mit <s:details>

Was ist der richtige Ausdruck, um alles, was im inneren <s:responseDetails> in variable, so dass ich später nutzen kann,

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s="http://custom.namespace.com/namespace">
<soap:Body>
    <s:request>
        <s:details>
            ${details}
        </s:details>
    </s:request>
</soap:Body>
</soap:Envelope>

Oder vielleicht gibt es einen anderen Weg um mein problem zu lösen?

InformationsquelleAutor pavel_kazlou | 2012-09-03
Schreibe einen Kommentar