0

SoapUI Pro V 4.5.2 で、HTTP テスト リクエストを使用してデータ ドリブン テストを作成しました。CSV ファイルはタブ区切りで、テキストは引用符で囲まれていません。リクエストは HTTP、レスポンスは XML です。データには、DataSource 内の各応答の入力変数とアサーションが含まれています。私の主張のいくつかには二重引用符が含まれています。つまり、"123 Any St." です。

アサーションを実行すると、次のような応答が返されます。

私の質問はこれに似ています: Xpath は一重引用符と一致しますか?

しかし、私は XSLT ベースの検証を使用していません。HTTP 要求で XPath Match アサーションを使用しています。

問題は、三重の二重引用符を無効にする方法、HTTP 要求のコンテキストでそれらを回避する方法、またはアサーション データに何かを追加してこれらのアサーションを通過させる方法です。応答から二重引用符を削除するため、アサーション データはオプションではないことに注意してください。

4

2 に答える 2

1

トリックを行ったコードは次のとおりです。

    def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)

    def holder = groovyUtils.getXmlHolder(messageExchange.responseContentAsXml)

    String val = holder.getNodeValue('//Location[1]/Address[1]/Line1[1]')

    def addressLine1 = context.expand( '${DataSource#AddressLine1}' )

    def vala = val.replaceAll('"""','"')

    def addressLine1a = addressLine1.replaceAll('"""','"')

    assert addressLine1a == vala, 'Assertion failed'

replaceAll コマンドは、アサーションの前に 3X 二重引用符を 1X 二重引用符にトリムする文字列操作です。

于 2013-08-22T12:36:48.177 に答える