SOAP応答に含まれる値に対して前のJDBC応答ステップの値を検証するGroovyスクリプトアサーションを作成しています。SOAPUI実際の結果の周囲の角括弧でアサートが失敗する
スクリプトを実行すると、両方の値が同じに戻りますが、実際の結果値(SOAP応答から)が角括弧で囲まれているため、アサートが失敗することがわかります。私はこれは、文字列と1つではないものと何か関係があると思いますか?
アサートが確実に通過するように、実際の結果から角括弧を除去するか、期待される結果値に追加する方法を教えてください。
以下は私のアサートスクリプトです。あなたはそれで単一の要素を持つ配列を取得している場所として期待どおりに単一の値を期待しているので、結果は001 実際の結果である期待
は[001]
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)
def pxml = new XmlSlurper().parseText(context.response)
//grab the expected result from jdbc response
def expectedCodes = context.expand('${JDBC Request#ResponseAsXml#//*:TW304_PRODHIST.PRODUCT_1}')
//grab the actual result from the SOAP response
def actualCodes = pxml.'**'.findAll{it.name() == 'CurrHospProductCode'}*.text()
assert expectedCodes == actualCodes
log.info expectedCodes
log.info actualCodes
ありがとうございます。 [0]を追加する最初の応答は、テストパスをうまく行いました。私は 'findAll'を' find'で置き換えようとしましたが、同じ問題がそこに存在します。しかし、私はあなたの最初の答えに基づいてこれを今答えたものとしてマークすることができます。 – Matt
これは、 'text()'の前に '*'があるためです。 'find'を使うと' * 'も取り除くことができます。 – Rao
はい、そうです。すべてが理にかなっています。これに私に答えてくれてありがとう。 – Matt