SoapUI Assertion匹配任何一方0.05内的字段值

时间:2016-12-28 13:54:25

标签: xml soapui assertions

我目前有一个断言脚本,它将响应中的值与设定值相匹配。见下文:

^(?=(.*\d){8})[a-zA-Z\d]{8,20}$

我希望它能够匹配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 值在27.06和27.16之间,我需要断言为真。

目前,断言代码将字段total-premium中的数值与total-premium中的三个值匹配。

但是,即使字段matches("(0|27.11|0)\\d*")中的值为0.05加上或减去该值,我也不希望输入11个值total-premium而不是assert node.toString().matches("(0|27.11|0)\\d*"), 'Expected Result: 0 or 27.11 or 0 Actual Result: ' + node行。我手动输入这个脚本。对于此示例,total-premium

为了简要概述,我有大约1000个测试用例,我使用Excel为每个测试用例创建代码和断言,然后导入到SoapUI中。所以我根据Excel算法输入的值自动匹配脚本。

1 个答案:

答案 0 :(得分:1)

您可以使用JUnit public 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)