2016-12-28 2 views
0

現在、設定値に対する応答の値と一致するアサーションスクリプトがあります。以下を参照してください。SoapUIアサーションで両側の0.05以内のフィールド値を一致させる

// get the xml response            
def response = messageExchange.getResponseContent()             
// parse it            
def xml = new XmlSlurper().parseText(response)            
// find your node by name            
def node = xml.'**'.find { it.name() == 'total-premium' }            
// assert            
assert node.toString().matches("(0|27.11|0)\\d*"), 'Expected Result: 0 or 27.11 or 0 Actual Result: ' + node  

私がしたいことは、0.05以下の値を一致させることです。したがって、この特定のスクリプトでは、total-premiumの値が27.06と27.16のいずれかの値であれば、アサーションをtrueにする必要があります。

アサーションコードでは、フィールドtotal-premiumの数値がmatches("(0|27.11|0)\\d*")の3つの値と一致しています。

しかし、代わりに私がtotal-premiumは、私がフィールドtotal-premiumの値が0.05プラスマイナス私は手動でこのスクリプトに入力した値であっても、ラインassert node.toString().matches("(0|27.11|0)\\d*"), 'Expected Result: 0 or 27.11 or 0 Actual Result: ' + nodeを渡したいことができた11個の値を入力します。この例では27.11です。

概要は1000件あり、Excelを使用して各テストケースのコードとアサーションを作成し、それをSoapUIにインポートします。だから私は自動的にExcelアルゴリズムの入力値に応じてスクリプトの一致を持っています。

+0

入力内容とアサーションで何が起こっているかを表示できますか?現時点では明らかではありません。 – Rao

答えて

1

JUnitpublic static void assertEquals(double expected, double actual, double delta)を使用できます。

import org.junit.Assert 
// ... your code goes here ... 
// new assert 
if(node.toDouble() != 0.0) 
    Assert.assertEquals(27.11, node.toDouble(), 0.05) 
+0

コードを追加し、このエラーが発生しました 'メソッドのシグネチャがありません:静的java.lang.Double.parseDouble()は引数型に適用されます:(groovy.util.slurpersupport.NodeChild)values:[35.7]可能な解決策:parseDouble(java .lang.String) ' – Ross

+0

@Rossは' .toDouble() 'だけ使うことができます - 私の修正を見てください。 – SiKing

+0

ありがとう – Ross

関連する問題